Текст
                    Под общей редакцией
акад. АН СССР СВ. Емельянова,
д-ра физ.-мат. наукВ.В. Калашникова,
д-ра техн. наукМ. Франка,
д-ра техн. наук А, Явора
МОСКВА БЕРЛИН
"МАШИНОСТРОЕНИЕ" "ТЕХНИК"
1988


ББК 32.817 Т38 УДК 681.51.001.57 Авторы: Е. Ф. Аврамчук, А. А. Вавилов, С. В. Емельянов, В. В. Калашников, Б. В. Немчинов, Н. Я. Ривес, Б. Ф. Фомин, М. Франк, А. Явор Перевод немецкой части на русский язык канд. техн. наук Б. Ф. Фомина Рецензент акад. АН УССР И. Н. Коваленко Технология системного моделирования/ Е. Ф. Аврамчук, Т38 А. Л. Вавилов, С. В. Емельянов и др.; Под общ. ред. С. В. Емельянова и др. — М.: Машиностроение; Берлин: Техник, 1988. — 520 с: ил. ISBN 5-217-00150-Х Книга, написанная международным коллективом авторов — специалистов ВНР, ГДР, СССР, посвящена вопросам теории и практического применения системного моделирования. Основное внимание уделено актуальным проблемам создания технологии системного моделирования. Предложено комплексное решение методологических, математических задач, а также задач создания программных средств, возникающих на раз- личных этапах построения модели, для распространенных на практике классов сложных систем. Освещены вопросы повышения эффективности программных средств моделирования, проблемной ориентации и средств моделирования, организации имитационных экспериментов. Для инженерно-технических работников, занимающихся вопросами системного моделирования в различных отраслях народного хозяйства. . 1502000000—140 Т 038@1)-88 ,40-88 ББК 32-817 ISBN 5-217-00150-Х ©Издательство «Машиностроение», 1988 © VEB Verlag Technik, Berlin, 1988
ОГЛАВЛЕНИЕ Предисловие 5 Введение, Методологиче* ские вопросы системного моделирования 8 B.L Модели и моделирование .*.... 8 8.2. Исследование систем на машинных моделях . . 11 8.3. Математическая поддержка процесса моделирования 19 8.4. Программная поддержка процесса моделирования 25 8.5. Технология системного моделирования ... 27 Часть I АЛГОРИТМИЧЕСКИЕ МОДЕЛИ СЛОЖНЫХ СИСТЕМ 29 Глава 1. Общие вопросы моделирования сложных систем 30 1.1. Сложные системы . . 30 1.2. Технология построения концептуальных моделей сложных систем . . 44 1.3. Алгоритмические модели 52 Глава 2. Агрегативные модели 55 2.1. Кусочно-линейный агрегат 55 2.2. Схема сопряжения. Агрегативная система... 63 2.3. Частные случаи агре- гативных систем 65 2.4. Примеры построения агрегативных моделей . . . 70 - 2.5. Оценка агрегативных систем как моделей сложных систем 77 Глава 8. Сети Петри и их расширения 79 3.1. Описание структур моделируемых проблемных ситуаций в виде сетей Петри 79 3.2. Представление имитационных моделей систем в виде сетей событий, являющихся расширениями сетей Петри 99 Глава 4. Модели системной динамики 124 4.1. Общая структура моделей системной динамики 124 4.2. Основные понятия. Потоковая стратификация . . 127 4.3. Схемы и потоковые диаграммы моделей . . . 132 4.4. Построение моделей системной динамики ... 139 Часть II ЗАДАЧИ ТЕОРИИ МОДЕЛИРОВАНИЯ 153 Глава 5. Стратифицированный подход к построению формальных структур моделей 154 5.1. Концепция стратифицированных моделей ... 154 5.2. Системные графы линейных составных систем управления 160 5.3. Минимальные формы линейных составных многокомпонентных систем и их получение с использованием схемы системных графов 173 Глава 6. Структурные свойства сложных систем 193 6.1. Структурная управляемость динамических систем с параметрическими связями 193 3
6.2. Эквивалентные преобразования схем сопряжения агрегативных моделей 237 6.3. Структурные преобразования агрегативных моделей 244 Глава 7. Анализ динамических свойств моделей сложных систем 265 7.1. Регенерирующие процессы 265 7.2. Анализ регенерирующих процессов 267 7.3. Описание агрегативных моделей с помощью регенерирующих процессов 276 7.4. Направленные имитационные эксперименты 280 Глава 8, Организация статистических исследований 286 8.1. Статистические задачи в моделировании . . . 286 8.2. Особенности статистических исследований при моделировании .... 293 8.3. Схема организации статистических исследований при моделировании . . 300 8.4. Вопросы программной реализации технологии статистических исследований при моделировании . . 301 Часть III ИНСТРУМЕНТАЛЬНАЯ ПОДДЕРЖКА ТЕХНОЛОГИИ СИСТЕМНОГО МОДЕЛИРОВАНИЯ 309 Глава 9, Программная реализация событий и управление модельным временем 310 9.1. Алгоритмы продвижения модельного времени 310 9.2, Представление состояния при дискретном моделировании 321 Глава 10, Языки моделирования 331 10.1. Назначение языков моделирования 331 4 10.2. Классификация языков и систем моделирования, их основные характеристики 334 Ю.З. Примеры реализации языков моделирования (возможности и ограничения) 337 10.4. Универсальные языки программирования . . 354 Глава 11, Агрегат и вная имитационная система 356 И.1. Общие сведения об агрегативной имитационной системе 356 11.2. Диалоговая система АЛИСА 357 11.3. Библиотека агрегатов 359 11.4. Внутреннее программное обеспечение . . . 361 11.5. Эксперимент в АИС 365 11.6. Внешнее программное обеспечение 368 11.7. Язык КОМПАС . . 371 Глава 12, Проблемная ориентация имитационных систем 380 12.1. Характерные особенности и основные компоненты проблемно-ориентированных имитационных систем 380 12.2. Проблемно-ориентированная имитационная система ТОМАС 390 12.3. Построение проблемно-ориентированных средств моделирования иа базе структурных преобразований моделирующих алгоритмов 418 Глава 13, Моделирующие центры 437 13Л. Концепция моделирующих центров .... 437 13.2. Базовая система языковых и программных средств моделирующего центра 444 13.3. БСМЦ СОД/СИМ. . 451 13.4. Программное обеспечение вычислительной лаборатории МЦ .... 468 13.5. ППП СПС/СИ .... 485 Список принятых сокращений 501 Список литературы 503
ПРЕДИСЛОВИЕ В предлагаемой читателю книге речь идет о моделировании сложных систем с помощью вычислительных машин. Это направление зародилось около 30 лет назад и нашло широкое применение в сфере анализа производственных, вычислительных, организационных, экономических систем и др. Многочисленные публикации отразили различные этапы становления и развития указанного направления. Так, первоначально значительное внимание уделялось вопросам воспроизведения на компьютерах случайных величин и процессов. Затем акцент переместился на программные вопросы: способы формирования моделирующих алгоритмов, методы организации квазипараллелизма, развитие языковых средств и др. Наряду с этим велись работы по формализации моделей сложных систем и развитию соответствующей теории. В последнее время большое внимание уделяют вопросам использования моделей в качестве инструмента исследования сложных систем, что позволяет свести воедино как указанные выше вопросы моделирования, так и вопросы организации имитационных экспериментов. Однако сразу же выяснилось, что хотя соответствующие проблемы в той или иной степени рассматривались в предшествующих работах, их комплексное изучение потребовало новых подходов и решений. Потребовалось также существенное развитие методологической основы моделирования. Новые задачи порождаются также необходимостью повышения технологичности инструмента моделирования в связи с расширением сферы его применения и повышением уровня сложности исследуемых систем. В данной книге сделана попытка отразить результаты исследований, ведущихся в ВНР, ГДР, СССР и направленных на повышение технологичности моделирования, рассматриваемого как инструмент изучения сложных систем. База для таких исследований создавалась постепенно. Здесь следует отметить основополагающие работы Н. П. Бусленко по теории агрегативных моделей. Ряд его результатов вошел в настоящую книгу. Более того, значительная часть книги представляет собой развитие идей Н. П. Бусленко или написана под его влиянием. Работы И. Н. Коваленко по формализации сложных систем в виде кусочио-линей- 5
ных агрегатов и по применению метода малого параметра при оценке надежности высоконадежных систем (что является ярким примером направленных имитационных экспериментов) также сыграли важную роль в формировании проблематики книги. Следует указать на весьма активную работу в области повышения технологичности моделирования, проводимую под руководством Т. Орена, Б. Зиглера и М. Эльзаса. Результаты их работ также служат серьезным аргументом в пользу интенсификации работ по моделированию в целях его скорейшего превращения в удобный и эффективный инструмент исследований. Авторский коллектив книги состоит из девяти человек, представляющих исследовательские группы из ВНР, ГДР, СССР, что позволило включить в нее достаточно богатый и разнообразный материал. Вместе с тем это создало и немалые трудности по его стыковке, обусловленные как различием точек зрения авторов, так и различием в форме представленного материала. По мнению авторов, читателю будет полезно ознакомиться с разными подходами, а иногда и с разными точками зрения. Следует со всей определенностью сказать, что материал книги ни в коей мере не исчерпывает всего спектра исследований в области моделирования, в том числе проводимых в ВНР, ГДР, СССР. Распределение материала между авторами книги следующее: Е. Ф. Аврамчук — гл. 4—6; А. А. Вавилов — гл. 5, 13; С. В. Емельянов — введение, гл. 1, 6; В. В. Калашников — введение, гл. 1, 2, 6, 7, 11, 12; Б. В. Немчинов — гл. 1, 2, 6, 11; Н. Я. Ривес — гл. 8; Б. Ф. Фомин — введение, гл. 1, 3—6, 10, 13; М. Франк — гл. 12; А. Явор — гл. 9, 10. Б. Ф. Фомин, кроме того, перевел материал, представленный М. Франком, с немецкого на русский язык. Книга построена следующим образом. В введении изложены методологические основы моделирования и определены главные проблемы, подлежащие решению. Эти проблемы условно могут быть разбиты на три категории: связанные с построением модели сложной системы, ее математическим анализом и программной реализацией процесса моделирования. Соответственно основное содержание книги разбито на три части, освещающие различные подходы к решению указанных проблем. Последняя глава содержит описание моделирующего центра — одну из возможных реализаций методологической, математической и программной поддержки процесса моделирования, предоставляемой пользователям разных уровней. Работа по созданию книги не могла бы быть осуществлена без помощи, оказанной авторскому коллективу дирекцией Международного научно-исследовательского института проблем управления, за что мы выражаем ей свою искреннюю признательность. Хотелось бы особо отметить вклад в развитие моделирования вообще и влияние на тематику книги в частности выдающихся ученых, чл.-кор. АН СССР Н, П. Бусленко и А. А. Вавилова, б
безвременно ушедших из жизни. Оба они были замечательными людьми, учиться у них и работать с ними было огромное удовольствие. Работа в области моделирования носит коллективный характер. Не составляет исключения и работа, результаты которой отражены в настоящей книге. В ней принимали участие сотрудники институтов, в которых мы работаем, а также сотрудники организаций, в которых использовались результаты этой работы. Следует отметить, что процесс внедрения часто существенно влиял на исходные постановки задач и подходы к их решению. Мы благодарим наших коллег, обсуждавших рукопись или отдельные ее результаты, высказавших различные замечания, дискутировавших с нами разнообразные проблемы: М. Бенко, А. Виг, Т. Н. Воскресенскую, Г. Зальтцера, А. Зидова, А. И. Клебанова, В. Круга, Н. Ю. Кузнецова, П. Лоренца, Н. Н. Ляшенко, Б. Г. Малофеева, В. С. Манусевича, Н. Н. Моисеева, Ю. Г. Полляка, К. Рудольфа, A. А. Самарского, В. С. Семенихина, В. М. Симонова, М. М. Соловьева, Л. П. Средникову, П. Тобиаша, Г. Шварце, X. Штана, B. Б. Яковлева и многих других. Особо признательны мы А. С. Ба- чурину, И. Н. Бежикиной, Б. И. Галицкой, А. Е. Исаеву, Т. Л. Ка- чановой, И. А. Марек, М. И. Николаеву, С. Нойте, П. Е. Отва- гину, С. Т. Петрову, А. А. Плеханову, А. Н. Плоткину, Ю. Г. Фомину, В. М. Шнайдману, С. Штромайеру, предоставившим свои материалы для использования их в книге. К сожалению, нет возможности перечислить всех, кто совместно с нами участвовал в решении конкретных прикладных задач, как вошедших в книгу, так и оставшихся за ее рамками, но оказавших влияние на ее содержание. Мы признательны академику АН УССР И. Н. Коваленко за нелегкий труд по рецензированию рукописи и за ценные замечания, высказанные им. Авторский коллектив
ВВЕДЕНИЕ МЕТОДОЛОГИЧЕСКИЕ ВОПРОСЫ СИСТЕМНОГО МОДЕЛИРОВАНИЯ В.1. МОДЕЛИ И МОДЕЛИРОВАНИЕ Решение современных задач управления отраслями народного хозяйства, проектирования и исследования технических, экономических, организационных и других систем требует привлечения специалистов разных профилей. Их эффективное сотрудничество возможно лишь при условии наличия общей методологии, в рамках которой проводится исследование. Такая методология носит название «системный анализ». Один из важнейших инструментов системного анализа — моделирование на ЭВМ. Метод моделирования с успехом применяют в таких областях, как автоматизация проектирования, организация работы вычислительных комплексов, организация работы транспорта, сфера обслуживания, анализ различных сторон деятельности человека (охрана окружающей среды, управление водными ресурсами, экологические проблемы, энергетика и т. п.), автоматизированное управление производственными и другими процессами. Важно подчеркнуть, что моделирование используется при проектировании, создании, внедрении, эксплуатации систем, а также на различных уровнях их изучения — начиная от анализа работы элементов и кончая исследованием систем в целом при их взаимодействии с окружающей средой. Быстрое развитие вычислительной техники позволило резко увеличить сложность используемых моделей. Появилась возможность строить модели, учитывающие значительное разнообразие действующих факторов, а не «подгонять» их под существующие математические методы и средства. Процесс моделирования включает такие этапы, как создание модели, программирование, проведение экспериментов с моделями, обработка и интерпретация результатов моделирования. Однако эти этапы часто проводятся кустарно, изолированно друг от друга. В значительной степени это обусловлено тем, что математические и программные средства, «поддерживающие» отдельные этапы, развиты пока еще недостаточно и не всегда нацелены на решение фундаментальных задач моделирования. Ниже будут рассмотрены некоторые проблемы, возникающие при использовании моделирования как инструмента исследования систем, и предложены возможные пути их решения. Излагаемые 8
здесь подходы следует воспринимать лишь как возможные альтернативы. В области естественных наук наиболее распространенными являются два вида моделирования — физическое и математическое. Процесс физического моделирования состоит в изучении системы посредством анализа некоторого макета, сохраняющего физическую природу системы. Примером является модель летательного аппарата, исследуемая в аэродинамической трубе. Параметры эксперимента при этом выбирают из соотношений подобия. Однако модели физического типа имеют ограниченную сферу применения. Не для всяких явлений и объектов могут быть построены физические аналоги. Достаточно указать на радиолокационные станции, вычислительные центры, организационные системы, производственные процессы и т. п. Математическое моделирование основано на том факте, что различные изучаемые явления могут иметь одинаковое математическое описание. Хорошо известным примером служит описание одними и теми же уравнениями электрического колебательного контура и пружинного маятника. Математическая модель концентрирует в себе записанную в форме математических соотношений совокупность наших знаний, представлений и гипотез о соот«* ветствующем объекте или явлении. Поскольку знания эти никогда не бывают абсолютными, а в гипотезах иногда намеренно не учитывают некоторые эффекты (например, влияние силы трения в механике, потери на тепло в электротехнике и т. п.), модель лишь приближенно описывает поведение реальной системы. Основное назначение модели — сделать возможными некоторые выводы о поведении реальной системы. Наблюдения над реальной системой (натурные эксперименты) в лучшем случае могут дать материал лишь для проверки той или иной гипотезы, той или иной модели, поскольку они представляют собой источник информации ограниченного объема о прошлом этой системы. Модель допускает значительно более широкие исследования, результаты которых дают нам информацию для прогнозирования поведения системы, характера ее траектории. Правда, чтобы обеспечить эти и другие возможности, приходится решать проблему соответствия (адекватности) модели и системы, т. е. проводить дополнительное исследование согласованности результатов моделирования с реальной ситуацией. Создавая модель, исследователь «познает» систему, т. е. выделяет ее как объект изучения из окружающей среды и строит ее формальное описание в соответствии с поставленными целями, задачами и имеющимися возможностями. В дальнейшем он анализирует систему через поведение модели, ее свойства, состояния, возможные изменения, разрешенные и запрещенные формы существования и т. п. 9
Математические модели строят на основе законов и закономерностей, выявленных фундаментальными науками: физикой, химией, экономикой, биологией и т. д. В конечном счете ту или иную математическую модель выбирают на основе критерия практики, понимаемого в широком смысле. После того как она сформулирована, необходимо исследовать ее поведение. С усложнением анализируемых объектов использование для этой цели аналитических методов возможно лишь в мало интересных для практики случаях. Выход состоит в переходе к машинным реализациям математических моделей (машинным моделям). При этом на машину возлагается как работа по воспроизведению динамики изучаемой модели (имитация ее траекторий), так и по проведению экспериментов с ней. Математические машинные модели делят на аналоговые и цифровые в соответствии с типами вычислительных машин, на которых они реализованы. Аналоговое моделирование основано на указанных выше возможностях описывать разнородные явления и процессы одними и теми же уравнениями. Эти уравнения воспроизводятся обычно с помощью специально подобранных (в соответствии с уравнениями) электрических схем. Искомые характеристики для исследуемой системы получаются путем измерения на модели соответствующих электрических величин. Переработка информации в такой модели носит параллельный характер и реализуется в форме электрического процесса, происходящего в собранной схеме. Далее речь будет идти только о цифровых моделях, т. е. реализуемых на цифровых электронных вычислительных машинах (ЭВМ). Такие модели представляют собой записанные на соответствующих носителях алгоритмы переработки входной информации в выходную, называемые моделирующими. Входной информацией являются параметры модели, ее начальные состояния и т. п., а выходной — траектории этой модели. Моделирующий алгоритм строится на основе математической модели сложной системы. Последняя может быть как алгоритмической, так и неалгоритмической. Примером алгоритмической модели является конечный автомат, заданный с помощью одношаговой функции перехода, которая собственно и определяет алгоритм пересчета состояний автомата, т. е. воспроизведения его траектории. Строго говоря, для утверждения того, что автомат задан алгоритмически, следовало бы и функцию перехода определить алгоритмически, но эта сторона математической модели для нас не является определяющей, и далее всюду рассматриваемые функции будут считаться вычислимыми [27]. Примером неалгоритмической модели является система обыкновенных дифференциальных уравнений, в которой для получения решения (траектории) необходимо использовать какой-либо метод интегрирования. Данная модель преобразуется в алгоритмиче- 10
скую при использовании численного метода интегрирования. Такое преобразование приводит, вообще говоря, к изменению свойств модели, что в принципе должно учитываться при исследовании. Поскольку мы говорим о цифровых моделях, то они при необходимости должны приводиться к алгоритмическому виду. Использование неалгоритмических описаний часто является данью традициям, связанным с разработанностью таких разделов математики, как теория дифференциальных уравнений (обыкновенных и в частных производных). Вряд ли есть основание считать, что, скажем, уравнение теплопроводности точнее отражает физическую суть явления, нежели соответствующая ему разностная схема. Здесь уместно привести высказывание А. Н. Колмогорова [23]: «Весьма вероятно, что в очень многих случаях разумно изучение реальных явлений вести, избегая промежуточный этап их стилизации в духе представлений математики бесконечного и непрерывного, переходя прямо к дискретным моделям. Особенно это относится к изучению сложно организованных систем, способных перерабатывать информацию. В наиболее развитых таких системах тяготение к дискретности работы вызвано достаточно разъясненными в настоящее время причинами». Подведем некоторые итоги. В процессе моделирования исследователь имеет дело с тремя объектами: системой (реальной, проектируемой, воображаемой); математической моделью системы; машинной (алгоритмической) моделью. В соответствии с этим возникают задачи построения математической модели, преобразования ее в машинную и программной реализации машинной модели. В процессе решения этих задач исследователь получает более полное и структуризованное представление об изучаемой системе, разрабатывает различные варианты модели, отвечающие разным сторонам функционирования системы и их структурных преобразований. Таким образом, на этой стадии по сути начинается процесс анализа модели. Однако основные проблемы исследования систем на машинных моделях сводятся к получению качественной картины поведения модели, а также необходимых количественных характеристик. При этом исследователь вправе использовать не только информацию, содержащуюся в машинной модели, но и информацию, полученную им на этапе создания модели. Возникающие здесь проблемы обсуждаются в следующем параграфе. В.2. ИССЛЕДОВАНИЕ СИСТЕМ НА МАШИННЫХ МОДЕЛЯХ Традиционная схема моделирования может быть представлена в виде сравнительно независимых групп блоков (рис. В.1). Блоки /—3 соответствуют этапу формирования математической модели и перевода ее в моделирующую программу. Блок 4 «ответственен» за проведение имитации. В блоке 6 производится об- 11
л 42 Предметная область цели моделиробания >-- 1 1 \1 » 2 НО. Рис. В.1. Технологическая схема имитационного моделирования: / — построение математической модели; 2 — разработка моделирующего алгоритма; 3 — построение машинной модели; 4 — имитационные эксперименты с моделью; 5 — планирование имитационных экспериментов; 6 — обработка данных; 7 — отображение результатов работка результатов моделирования. В блоках 4—7 реализуется план имитационного эксперимента. Результаты имитационных экспериментов могут влиять на вид модели лишь после завершения серии прогонов ее на ЭВМ. Например, если в процессе эксперимента выяснится, что выходные результаты слабо зависят от того или иного параметра, то это может послужить причиной упрощения модели, состоящего в исключении данного параметра и соответствующем уменьшении размерности. Традиционно используемые программные средства для поддержки работы блоков /—3 строятся с использованием языков программирования и моделирования. Применение языков программирования (типа ФОРТРАН, АЛГОЛ, ПЛ/1 и др.) порождает ряд проблем, из которых главной являются трудоемкость и связанная с этим недостаточная гибкость. В процессе исследования систем часто приходится модель уточнять, варьировать, упрощать ее или, наоборот, усложнять. Ясно, что если каждый раз при этом приходится составлять новые программы, то процесс моделирования не будет эффективным. Требуемую гибкость можно обеспечить, если использовать формальные схемы, описывающие классы моделей из определенной предметной области, поскольку программировать тогда нужно функционирование данной схемы, а не описываемой ею частной модели. Чем уже проблемная ориентация используемой схемы, тем менее трудоемка работа по перепрограммированию. В идеале можно добиться полной параметризации системы, и тогда формирование конкретной модели будет состоять лишь в задании ее параметров, причем на языке, естественном для рассматриваемой предметной области. В этом случае пользователь по сути будет иметь дело с пакетом моделей. Формально математическая модель системы в языках моделирования не используется, так как языки позволяют непосредственно переходить от содержательных описаний моделируемой системы к машинным моделям. Если все же необходимо сформи- 12
ровать математическую модель, то сделать это на базе языкового описания достаточно сложно. Содержательное описание существенно облегчает пользователю общение с программой, позволяя составлять модель с использованием понятий из хорошо известной ему предметной области. Но оно же может служить препятствием для расширения класса моделируемых систем и применения для их анализа математических методов, ибо последние требуют знания особенностей именно математической модели. При формализации исследуемой системы существует определенная свобода в выборе элементов модели, состояний, признаков и т. п. Естественно, что даже две абсолютно эквивалентные модели (с точки зрения отображения требуемых характеристик) могут приводить к моделирующим программам различной сложности. Поэтому программа, выбранная пользователем, который является специалистом в предметной области, а не в области программирования, может оказаться неэффективной. Точно так же, если пользователь выбирает уже готовые параметризованные модули элементов, то вопрос об эффективности не только не снимается, но и усугубляется тем, что модули могут обладать избыточностью, приводящей к дополнительной потере эффективности. Обратимся теперь к блокам 5—7 (см. рис. В.1). С одной стороны функции этих блоков определяются пользователем сообразно с его практическими потребностями, а с другой стороны — существующими методами обработки результатов. Поскольку обычно в имитационном эксперименте исследуется не один показатель, а некоторый их набор, то и выходные данные, как правило, представляют собой большие массивы информации. Статистическая обработка таких Массивов в целях получения усредненных характеристик аналогична обычной статистической обработке случайных величин или процессов [19]. Следует, однако, помнить, что традиционно большинство статистических процедур основаны на использовании предположения о независимости и нормальности случайных величин, которые в имитационных экспериментах обычно не выполняются. Поэтому стремятся так преобразовать наборы данных, чтобы можно было воспользоваться хорошо обоснованными и зарекомендовавшими себя методами. При машинной имитации имеются возможности для повышения точности и достоверности оценок — генерация специальным образом подобранной последовательности случайных чисел, определяющей динамику модели; применение методов понижения дисперсии, позволяющих повышать точность оценок, и др. Однако эти методы 'часто носят эвристический характер, и, таким образом, получаемые с их помощью рекомендации нельзя считать вполне убедительными. Основной причиной отмеченных недостатков является «несистемность» схемы, представленной на рис. В.1. В частности, та информация о системе, которая получается на этапах создания 13
модели (блоки 1,2), часто не используется при обработке результатов и планировании экспериментов (блоки 5, 6), если модель рассматривается как «черный ящик». Имитационный эксперимент, проводимый по указанной схеме, подобен натурному. Однако при этом необходимо учитывать следующие существенные различия между двумя типами экспериментов. При натурных экспериментах исследованию подвергается существующая система, что предопределяет отсутствие вопросов об адекватности и соответствии результатов экспериментов истинным данным. Вместе с тем полученные результаты имеют ограниченное применение ввиду малых возможностей натурных экспериментов по изменению системы. При имитационных экспериментах изучению подвергается модель, которая лишь в общих чертах воспроизводит поведение реальной системы. Образно говоря, модель является «карикатурой» или, точнее, «дружеским шаржем» на изучаемую систему. Поэтому первоочередным является вопрос адекватности, решение которого частично заменяется сравнением выходных данных модели с наблюдениями, полученными на реальном объекте, а частично — математическим исследованием модели (в том числе и с помощью ЭВМ). Так как соответствие между моделью и системой неполное, то требуется проводить исследование классов моделей. В самом деле, даже если речь идет о получении характеристик какой-либо конкретной системы (например, цеха или завода), то при составлении математической модели и моделирующего алгоритма ряд явлений, происходящих в системе, заведомо огрубляется, некоторые параметры известны неточно (например, вследствие недостатка статистических данных) и т. д. Таким образом, принципиально отсутствует возможность построения модели, точно соответствующей исследуемой системе. Тем не менее задача остается: по одной или нескольким моделям из заданного класса (как говорят, по представителям класса) вывести суждение о классе в целом. Ситуация еще больше обостряется, если с самого начала изучают класс систем. Например, задача проектирования новой системы состоит, строго говоря, в выборе приемлемого варианта из некоторого множества. При моделировании по схеме на рис. В.1 указанные трудности могут быть преодолены лишь путем перебора конечного числа вариантов. Такой перебор, разумеется, не является полным и, следовательно, в принципе не может дать обоснованного ответа на поставленные вопросы. Кроме этого, существует ряд задач, которые принципиально не могут быть решены в рамках указанной схемы. Например, оценки вероятностей редких событий (отказ высоконадежных систем, перегрузки сетей электроснабжения и т. п.) невозможно получить путем прямой имитации из-за чрезмерных затрат машинного времени. К подобного рода задачам относятся также оценки скоростей вхождения в стационарный режим стохастических систем, чувствительности таких систем к вариациям пара- 14
метров и т. д. Здесь, разумеется, имеются в виду не эвристические, а строго обоснованные оценки. Отметим также, что чисто аналитические методы здесь мало чем могут помочь из-за сложностей изучаемых моделей. Следовательно, часто используемое или подразумеваемое сведение процесса моделирования лишь к имитации в значительной степени неприемлемо для принятия ответственных решений при анализе крупномасштабных систем, когда необходимо комплексное исследование возникающих проблем, требующее применения как количественных, так и дескриптивных методов. Выходом является рассмотрение в единых рамках построения модели, организации имитационных экспериментов и создания программного обеспечения моделирования. Остановимся на этом более подробно. Процесс построения модели состоит из ряда самостоятельных этапов, среди которых мы выделим два; построение формальной (аналитической и/или алгоритмической) модели на основе знаний о моделируемой системе и формирование машинной модели из построенной формальной. Первый этап, как говорилось ранее, является предметом фундаментальных дисциплин. Расширение классов формальных моделей прежде всего связано с успехами этих дисциплин по изучению соответствующих технических, физических, экономических, биологических и других систем. Несмотря на большое разнообразие содержательных моделей, можно указать лишь несколько используемых формальных схем, что обеспечивает возможность классификации математических моделей и применения этой классификации для регламентации работы пользователя по выбору той или иной схемы. Второй этап — преобразование формальной модели в машинную — является предметом рассмотрения специалистов по моделированию. Основными возникающими при этом проблемами являются задачи упрощения и модификации формальной модели и оценки погрешности, вносимой этими операциями [31—33]. Процесс построения моделей должен быть тесно увязан с организацией машинных экспериментов в целях получения дополнительных знаний о системе, которые нельзя получить из натурных экспериментов, так как последние или невозможны, или слишком дороги. Здесь необходимо обратить внимание на одно важное обстоятельство. Поскольку на этапе построения модели получены определенные знания о ее структуре и характере поведения, естественно использовать их на этапе экспериментирования. Будем называть такие эксперименты вычислительными [14, 34]. Роль вычислительного эксперимента в процессе моделирования чрезвычайно велика. С развитием программных средств моделирования она становится центральной. От того, какие характеристики и какие свойства модели изучаются, зависит способ проведения 16
этого эксперимента. В свою очередь, вид вычислительного эксперимента может определять совокупность моделей, подлежащих исследованию. В самом деле, для оценки той или иной характеристики в ряде случаев целесообразно трансформировать модель в более простую, а иногда эта характеристика может получаться косвенным образом с другой модели, вид которой диктуется используемым набором математических методов. Примеры этому будут даны ниже, в гл. 5—7. Вычислительный эксперимент, вообще говоря, объединяет в себе две составляющие: аналитическую и имитационную. Первая — связана с математическими моделями и математическими методами их исследования, представляя собой более или менее традиционный математический анализ модели. Для его проведения наличие программы имитации не обязательно. Он работает на «предымитационном» этапе. Разумеется, проведение математического анализа не исключает применения ЭВМ. Более того, сложность изучаемых объектов требует такого применения, но, подчеркнем это, ЭВМ используется здесь не в качестве имитатора. В результате выявляются различные важные свойства изучаемых моделей (управляемость, регенерируемость, марковость и т. п.), выбирается совокупность моделей для последующего имитационного исследования и адекватные методы их анализа (численный метод интегрирования, метод оценки стационарных характеристик и т. д.). Иногда результаты аналитического исследования оказываются достаточными для получения требуемых выводов относительно модели, и тогда на этом анализ данной модели заканчивается. Как правило, такой финал связывается с неудачно выбранным видом модели, неполным учетом действующих факторов и т. п., и, следовательно, требуется дальнейшая корректировка модели и исследование получившегося нового варианта. Если же на аналитическом этапе модель была признана удовлетворительной, то возникает потребность более полного ее исследования с помощью имитации. Роль аналитических методов при проведении имитационных экспериментов не только не снижается, но, напротив, возрастает. Как уже говорилось, в результате аналитических исследований формируются модели для дальнейшего изучения и получения на них совокупности данных, которые прямым или косвенным образом связаны с требуемыми показателями работы модели, а также очерчивается круг методов, пригодных для обработки данных, получаемых в процессе имитации. Эти методы учитывают структурные и поведенческие свойства изучаемых моделей. Имитационный эксперимент, содержание которого определяется предварительно проведенным аналитическим исследованием (т. е. являющийся составной частью вычислительного эксперимента) и результаты которого достоверны и математически обоснованы, назовем направленным. 16
В идеале все имитационные эксперименты должны быть направленными в указанном выше смысле, т. е. учитывать особенности структуры и динамики машинных моделей как формальных объектов. Однако ввиду сложности моделируемых систем такое положение практически недостижимо, и сейчас можно реально требовать лишь увеличения доли направленных экспериментов при моделировании, без которых обоснованная оценка многих важных показателей либо невозможна, либо приводит к нерациональным затратам вычислительных ресурсов. Основными задачами в организации таких экспериментов являются задачи анализа структурных и динамических свойств машинных моделей как формальных объектов и разработка алгоритмических процедур работы с ними на основе выявленных свойств. Требования к программному обеспечению моделирования достаточно подробно освещены в литературе [6, 7, 28] и сводятся в основном к следующему: простота и удобство программирования, эффективность, мобильность, возможность генерирования случайных чисел и процессов, удобство ввода-вывода и интерпретации результатов моделирования, полнота средств отладки и др. Особенность моделирования проявляется здесь в «специализации» указанных требований: предоставление возможностей по направленному выбору модели, ее упрощению или усложнению, оценке структурных и динамических свойств, чувствительности, устойчивости и других характеристик, используемых при оценке качества работы модели организации экспериментов с ней. Если моделирование рассматривать как единый процесс построения и исследования модели, имеющий соответствующую программную поддержку, то это приведет к изменению схемы, показанной на рис. В.1. Теперь во главу угла ставится понятие математической модели, результаты исследования которой используются как на этапе построения машинной модели для упрощения и повышения эффективности и скорости работы моделирующего алгоритма, так и на этапе проведения вычислительных экспериментов в целях повышения достоверности и точности результатов моделирования. На предлагаемой схеме моделирования (рис. В.2) основная цепочка (реальная система — математическая модель — моделирующий алгоритм — машинная модель — имитация — обработка результатов) осталась той же, что и на рис. В.1. Однако теперь определяющей является теория математических моделей. Теория математических моделей разделяется условно на две составляющие: структурную и динамическую. Результаты структурной теории используются для преобразований моделей и моделирующих алгоритмов, результаты динамической теории — для организации имитационных экспериментов, обработки результатов моделирования. Реализация схемы моделирования, представленной на рис. В.2, естественно ставит новые проблемы перед разработчиками средств 17
1 \1 А 1 I [7 I /^Предметная о$ласть\ | \ацела моделиробания J Рис. В. 2. Технологическая схема системного моделирования: / — теоретические исследования; 2 — методы структурного и поведенческого анализа моделей; 3 — аналитическое исследование моделей; 4 — построение математической 'модели; 5 — разработка моделирующего алгоритма; 6 — построение машинной модели; 7 — имитационное исследование; 8 — отображение результатов моделирования. Эти проблемы условно можно разделить на три группы: математические, программные, технологические. Первая группа связана с разработкой и адаптацией математических методов, поддерживающих структурные и динамические исследования моделей. В настоящее время эти методы развиты совершенно недостаточно. Кроме того, от указанных методов требуется определенная универсальность: они должны быть рассчитаны не на отдельные модели, а на достаточно широкие их классы. Вторая группа проблем вызвана необходимостью создания эффективно работающего программного обеспечения всего процесса моделирования, включающего этапы построения модели, ее преобразования, имитации и исследования. Технологические проблемы обусловлены необходимостью поддержать переход от представлений пользователя о системе и целях ее исследования к формальным понятиям модели, методам и приемам ее анализа. Во многом способ решения указанных проблем предопределяется видом используемой математической модели, к которой предъявляются противоречивые требования универсальности, простоты, удобства, эффективности и т. д. Тем не менее, тот факт, что в основе всего процесса моделирования лежит формальная схема, дает возможность развивать регулярные методы поддержки различных этапов моделирования. Успешное решение перечисленных проблем возможно лишь в комплексе, а не в отрыве друг от друга. Такая их увязка позволяет говорить о «Системном моделировании» как о целостной совокупности методов построения и исследования моделей на базе имитации и их технологической и программной поддержки. Именно в этом смысле далее будет использоваться термин «Системное моделирование». 18
В.З. МАТЕМАТИЧЕСКАЯ ПОДДЕРЖКА ПРОЦЕССА МОДЕЛИРОВАНИЯ Выше был выделен ряд узловых задач моделирования, к которым относятся: проверка адекватности модели; построение и преобразования (эквивалентные и неэквивалентные) алгоритмических моделей; упрощение и усложнение изучаемых моделей; повышение точности и достоверности результатов моделирования; обеспечение возможности исследования и получения характеристик для классов моделей; организация направленных имитационных экспериментов, а также возможности структурного анализа моделей. Данный список, очевидно, может быть продолжен. При решении указанных задач несомненно должны использоваться математические методы. Однако на практике математическая поддержка процесса моделирования используется явно недостаточно, что отнюдь не всегда обосновано. Наиболее широкое применение нашли статистические методы — факторный и регрессионный анализ, точечные и интервальные оценки, методы проверки гипотез, дисперсионный анализ и др. Достаточно полный обзор применяемых в моделировании статистических методов можно найти в книге [19]. Эти методы используют при тестировании датчиков псевдослучайных чисел, калибровке самих моделей, обработке результатов моделирования, упрощении моделей и т. д., см. [19, 31 ]. Однако формальные основания для применения указанных методов существуют далеко не всегда [9, 15, 19, 25, 39]. В традиционных методах математической статистики часто используются предположения о независимости, одинаковой распределенности и нормальности изучаемых совокупностей случайных величин [2, 17, 18, 24]. Данные предположения, как правило, не выполняются, и это обстоятельство может приводить к потере точности и достоверности результатов моделирования, а в конечном счете — к потере доверия к аппарату моделирования. Хотя в моделировании существуют приемы сведения данных к виду, пригодному для использования традиционных методов статистики [19, 31], эти методы часто носят эвристический характер либо приспособлены для изучения частной модели. К важнейшей задаче моделирования относится проверка адекватности модели, которая, вообще говоря, является предметом рассмотрения фундаментальных наук. В идеальной ситуации, когда известны законы, справедливые для изучаемой модели, заключения об адекватности могут быть сделаны по результатам проверки выполнения этих законов в процессе моделирования. Для сложных систем возможность проведения такой проверки предоставляется редко. Поэтому обычно выводы об адекватности модели делают на основе проверок соответствий машинной и исходной математической моделей, поведений моделируемой и реальной систем, а также правильности интерпретации результатов моделирования. Соответствие модели и системы прежде всего 19
гарантируется структурным подобием. Проверка адекватности модели в указанном смысле осуществляется путем привлечения эвристик, доступной информации о моделируемой системе, применения статистических методов для проверки гипотез и оценки параметров, на основе ретроспективного статистического оценивания функционирования модели, анализа чувствительности модели по отношению к ее параметрам. При проверке адекватности и калибровке модели иногда используют явные зависимости, найденные в упрощенных предположениях аналитическими методами. Ясно, что такая проверка далеко не полная, а соответствующие явные зависимости находятся лишь в исключительных с практической точки зрения ситуациях. В условиях неопределенности исходных данных используют методы анализа чувствительности, когда вывод о пригодности модели делается по результатам сравнения накопленной в процессе моделирования неопределенности выходных характеристик модели с заданными для нее допустимыми границами. Существующий уровень математических исследований позволяет ставить вопрос об их более широком использовании в процессе моделирования сложных систем. В настоящее время известны различные типы математических моделей сложных систем, конкретный вид которых обусловлен областью их приложения, степенью охвата реально действующих факторов, подробностью отображения реальных механизмов и т. д., а также разницей в целях исследования. Уже в силу того, что любая модель сложной системы трактуется как совокупность взаимодействующих элементов, в описании модели выделяются две составляющие: одна относится к описанию взаимодействия, а другая — к описаниям функционирования отдельных элементов. Первую составляющую можно назвать описанием структуры модели, а вторую — описанием динамики элементов, хотя, разумеется, такое деление достаточно условно. Даже при анализе одной и той же сложной системы обычно используют несколько различных формализации как структуры, так и динамики, которые соответствуют различным «срезам», «стратам», уровням детализации представления исходной модели, набору исследуемых задач и т. п. Применение спектра формализации во многом предопределяет успех исследования моделей сложных систем. Другим фактором, способствующим успеху исследования, является возможность формулировки разнообразных по прикладному смыслу проблем в виде одной математической задачи. К примеру, проблемы повышения точности моделирования (понижения дисперсии оценок), оценки чувствительности, укрупнения состояний могут быть формализованы в виде задачи оценки непрерывности модели [11], например, в следующей форме. Пусть анализируемая модель преобразует набор исходных данных X в набор выходных данных У. Вследствие погрешности 20
статистических оценок, намеренного искажения входных данных для упрощения вида модели, изменения этих данных в целях изучения чувствительности модели и т. п. изучается другая модель, преобразующая данные X' в данные У. Если отклонение X от X' измеряется некоторой метрикой ц, а отклонения Y от У — метрикой v, то задача анализа непрерывности состоит в исследовании условий справедливости соотношения \х (X, X') -+¦ -+¦ 0 =>- v (У, У) -*¦ 0 и получении количественных оценок в нем. Если удается найти общий метод анализа непрерывности, то он автоматически применим (с соответствующей интерпретацией результатов) для решения перечисленных выше задач. Математические методы, поддерживающие исследование систем на машинных моделях, должны обладать значительной общностью и быть пригодными при анализе достаточно широкого класса моделей. Этим, по-видимому, можно объяснить устойчивый глубокий интерес к алгебраическим методам, проявляемый в общей теории систем II, 16, 351 и ее частных разделах (теория линейных систем, теория автоматов и др.). Подобные методы позволяют вскрыть закономерности, присущие классам сложных систем, могут служить основой алгоритмов анализа таких систем. Традиционно в моделировании при анализе динамики использовались статистические методы. Представляется, что дальнейшее существенное продвижение в этом направлении может быть связано с применением качественных и асимптотических методов [3, 12, 20—22, 30, 37], позволяющих расширить возможности моделирования по анализу ситуаций, которые традиционной схемой моделирования не охватывались. Поясним данное положение. Для понимания поведения системы нет необходимости подробно объяснять важность факта наличия того или иного общего свойства (эргодичности, устойчивости, ограниченности, возвратности и т. п.). Одна из главных целей качественных и асимптотических методов как раз и состоит в исследовании указанных общих свойств, позволяющих более определенно планировать и проводить исследование модели ^ибо прекращать ее изучение в случае, когда требуемые свойства отсутствуют. Качественные и асимптотические методы оперируют достаточно общими категориями: стохастическая монотонность [37], регенерация [9, 12, 25, 35], обновление [3, 4], метрическая транзитивность [30] и т. д. Условия наличия того или иного свойства и соответствующие оценки также могут быть получены в общих терминах Например, работы [3, 12] содержат условия устойчивости, которые справедливы для произвольных обновляющихся и регенерирующих процессов, в работе [3] описаны также асимптотические законы, выполняющиеся для процессов обслуживания общего вида. Неотъемлемой компонентой качественного и асимптотического анализа является получение сопутствующих количественных оценок. Например, при нахождении формы предельных распре- 21
делений необходимо определить и их параметры. При анализе устойчивости важно знать модуль устойчивости, а при анализе ограниченности целесообразно оценить «хвосты» соответствующих распределений и т. п. Методы качественного и асимптотического анализа раскрывают лишь общие соотношения, касающиеся поведения систем. Получение же количественных оценок представляет большие трудности вследствие сложности рассматриваемых систем. Для преодоления этих трудностей перспективным представляется включение качественных и асимптотических методов в общую схему моделирования (см. рис. В.2), что приводит к реализации направленных имитационных экспериментов (см. п. 7.3). В отличие от метода чистой имитации направленные имитационные эксперименты проводятся с моделью, тип которой известен (иначе говоря, модель не рассматривается как «черный ящик»), а список оцениваемых величин, а также соответствие между ними и исследуемыми свойствами определяется качественными и асимптотическими методами [13, 38]. Показательным примером является оценка на модели малых вероятностей с использованием асимптотических методов [20—22 ]. Пусть необходимо оценить малую вероятность ру например вероятность отказа резервированной системы за фиксированный промежуток времени. Существуют многочисленные практически важные задачи, когда эта вероятность принимает значения 10~10— 10~8. Сложная зависимость р от параметров модели, как правило, не позволяет получить для нее точные формулы. В традиционных для моделирования методах используется обычная статистическая оценка 1 N где N — число независимых прогонов моделей; <рЛ = 1, если отказ произошел во время n-го прогона, срп = 0 — в противном случае. Если б — допустимая относительная погрешность определения /?, то требуемое число N пропорционально величине (б2р)_1. Если выбрать б = Ю-1, р = 10~8, то получим, что необходимое число прогонов составляет около 1010, что неприемлемо. Решением является организация направленного имитационного эксперимента с использованием результатов асимптотического анализа. Предположим, что можно получить (при наличии определенных ограничений) следующее представление р: 00 р = Е ер1, где 8 — некоторый малый параметр, например вероятность отказа в течение времени ремонта. Пусть коэффициенты cj являются средними значениями некоторых функционалов. Тогда вместо 22
исходной модели М, имитирующей работу резервированной системы и работающей почти все время вхолостую, можно построить последовательность вспомогательных моделей Mj, j = 1, 2, ..., которые являются определенными модификациями и служат для получения статистических оценок Cj, j = 1, 2, ..., соответственно. Эти модификации состоят фактически в изменении функций распределения длительностей ремонта и отказов в исходной модели М. Таким образом, направленный эксперимент реализует следующую схему оценки р: М-. Mk-+6h- р = ? г.8/. В этой схеме асимптотическое разложение р и исходная модель используются для построения вспомогательных моделей Mj, j = 1, ,.., k в целях получения коэффициентов разложения Cj. Время, необходимое для нахождения ру не зависит от значения р (или в), а зависит лишь от k — числа членов упомянутого разложения. Описанный эксперимент позволяет получать оценки, не доступные ни чисто аналитическим методам (вследствие сложности модели), ни методу имитации (вследствие непомерных затрат машинного времени). Данный подход был реализован в пакете АМОС [26]. Он применим к тем моделям, для которых доказана справедливость разложения вероятности р приведенного выше вида, и коэффициенты Cj имеют соответствующую статистическую интерпретацию. Для более подробного ознакомления с описанными методами мы рекомендуем читателю книги И. Н. Коваленко [20, 22]. Несомненно, что реализация новых направленных экспериментов повысит эффективность и надежность инструмента моделирования. В значительной степени эти перспективы связаны с развитием качественных и асимптотических методов. Вернемся к анализу структурных свойств моделей. Необходимость его проведения вызывается следующими практическими обстоятельствами, которые тесно связаны с вопросами обеспечения требований, предъявляемых к средствам программной поддержки моделирования. 1. В основе традиционного подхода к построению модели сложной системы лежит представление ее в виде совокупности взаимодействующих элементов. Такой подход позволяет использовать сравнительно небольшое множество стандартных элементов для построения разнообразных моделей. Естественно распространить его и на построение моделирующих алгоритмов и программ, формируя последние из набора стандартных фра- 23
гментов, отвечающих функционированию указанных выше элементов. Однако программы, получаемые таким путем, неэффективны из-за необходимости пересылок данных, проверок и т. п., являющихся следствием обеспечения удобной пользователю формализации. Повысить их эффективность можно, преобразуя программы так, чтобы устранить отмеченные причины неэффективности. Данные преобразования могут быть основаны на структурных преобразованиях исходных моделей. 2. При формировании модели и ее идентификации может возникнуть необходимость замены нескольких ее элементов и схемы взаимодействия. Данные преобразования могут быть вызваны желанием упростить либо напротив усложнить модель. 3. Опыт создания конкретных моделей показывает, что заказчик в начале разработки недостаточно хорошо представляет себе, как должна выглядеть модель, какие параметры окажутся существенными в процессе моделирования, а какие нет. Модель уточняется в процессе ее опытной эксплуатации. Все это требует оперативного изменения и моделирующего алгоритма. Таким образом, пользователь сможет составлять модели, не заботясь об эффективности моделирующей программы, если с помощью программного обеспечения можно будет проводить структурные преобразования составленных им моделей и генерировать моделирующую программу из преобразованной модели. Преобразования могут быть эквивалентными и неэквивалентными. Эквивалентные преобразования состоят в изменении числа состояний, переменных, связей и в конечном итоге обеспечивают удобство программирования и общения пользователя с моделью Неэквивалентные преобразования, направленные на экономию вычислительных ресурсов ценой исключения из модели каких- либо факторов или зависимостей, могут быть связаны с уменьшением степени адекватности. При проведении неэквивалентных преобразований окончательный вид модели выбирают на основе компромисса между сложностью модели, полнотой характеристик, получаемых на ней, и точностью этих характеристик. При этом можно руководствоваться двумя простыми принципами [31]. В соответствии с первым рекомендуется выбирать модель минимальной сложности при заданной точности или модель максимальной точности при заданной сложности. Второй принцип гласит, что модель корректна, если соразмерны погрешности различной природы — систематическая погрешность (обусловленная упрощением описания системы), внесенная погрешность (порождаемая неточностью параметров описания и неполнотой исходных данных) и случайная погрешность (объясняемая случайной природой результатов моделирования). 24
В.4. ПРОГРАММНАЯ ПОДДЕРЖКА ПРОЦЕССА МОДЕЛИРОВАНИЯ Опыт, накопленный в области моделирования, потребность в моделировании все более сложных систем и возможности современных ЭВМ обусловили появление новых взглядов на архитектуру и функции программного обеспечения системного моделирования. Появление имитационных систем — закономерное следствие общей тенденции развития программного обеспечения вычислительных машин, которая заключается во все более полной автоматизации действий по программированию и подготовке задач к решению на ЭВМ. В свое время стремление пользователей переложить на ЭВМ как можно большую часть рутинных операций привело к появлению универсальных и различных проблемно-ориентированных языков программирования, среди которых были многочисленные языки моделирования. Следует заметить, что некоторые языки моделирования, например СИМУЛА-67, СИМСКРИПТ-2 и др., нисколько не уступают по своим алгоритмическим возможностям универсальным языкам и называются проблемно-ориентированными лишь постольку, поскольку содержат ряд специальных средств, ориентированных на программирование моделей. Построение на базе языков моделирования систем программирования позволило во многом облегчить разработку и реализацию моделей. Кроме того, многие языки моделирования содержат стандартные средства для подготовки и выполнения машинных прогонов, накопления, обработки и представления результатов имитации. Однако набор этих стандартных средств обычно довольно ограничен (генераторы псевдослучайных чисел, автоматический расчет средних и дисперсий, печать таблиц и графиков). По мере увеличения сложности разрабатываемых моделей выяснилось, что языки моделирования и системы программирования лишь частично решают проблему построения и эксплуатации моделей сложных систем, так как программирование достаточно сложных моделей даже с использованием специальных языков моделирования мало отличается от разработки аналогичного по сложности комплекса программ любого другого назначения. Модели сложных систем, как правило, содержат много модулей, соответствующих различным элементам и подсистемам моделируемого объекта. Возникает задача организации межмодульного интерфейса, которая значительно усложняется, если модель не помещается в оперативной памяти. Использование языков моделирования в этом случае задачи не решает, поскольку возникающая проблема является типичной для системного программирования. Модель сложной системы не всегда удается концептуально выдержать в рамках одного языка моделирования. Отдельные элементы и подсистемы могут быть описаны, например, обыкновен- 25
ными дифференциальными уравнениями, другие — конечными автоматами, третьи — в терминах теории массового обслуживания и т. д. В этом случае использование какого-либо одного языка моделирования может привести к потере точности описания реальных систем или к усложнению программ [5]. Программирование моделей сложных систем осложняется тем, что их разработка и эксплуатация обычно выполняются разными лицами. Поэтому к модели как к конечному программному продукту предъявляются высокие требования. Разработчик должен организовать удобное взаимодействие пользователя с моделью, для чего необходимо программировать специальные модули, обеспечивающие ввод-вывод информации в удобной для пользователя форме. Модель должна быть составлена с учетом возможности ее дальнейшей модификации, поэтому разработчик должен предусмотреть обоснованные стандарты на организацию межмодульного интерфейса в модели. Требование быстрого и правильного составления модели обусловливает необходимость: замены программирования конструированием из готовых элементов; разработки проблемно-ориентированных библиотек элементов; отдельной трансляции элементов для выявления синтаксических ошибок в их описаниях; автономной отладки элементов; автоматической компоновки элементов в моделирующий алгоритм. Как уже упоминалось раньше, если следовать технологии разработки модели из элементов путем конструирования, то получаемые программы будут неэффективными. Для повышения их эффективности необходимо, чтобы язык описания моделей допускал выполнение формальных преобразований над алгоритмами. Нетривиальными для сложных моделей становятся процедуры подготовки машинных экспериментов, сбора, хранения и обработки результатов машинных экспериментов. Появляется необходимость в использовании готовых или разработке новых прикладных программ, реализующих более сложные по сравнению со стандартными возможностями языков моделирования процедуры планирования машинных экспериментов и обработки данных. Пользователь может потребовать от разработчика предусмотреть стандартные средства для подключения таких программ к модели, что обеспечит пользователю возможность самостоятельного выбора этих программ при имитации. Для моделей производственных систем [10] в настоящее время актуальной становится задача организации обмена информацией между базами данных АСУ и моделью. Для реализации такого обмена также необходима разработка специальных программных средств. 26
Таким образом, собственно модель сложной системы дополняется множеством программ, обеспечивающих ее эффективное использование. Имитационные системы представляют собой сложные программные комплексы, качественная разработка, надежное сопровождение и эксплуатация которых требуют соответствующей организационной основы. Выполнение перечисленных работ целесообразно концентрировать в моделирующих центрах (МЦ). МЦ можно рассматривать в качестве развивающейся специфической структуры вычислительного центра (ВЦ). В ведении этой структуры находятся теоретическая разработка и реализация научно обоснованных программ построения и использования прогрессивных технологий решения сложных задач системного анализа на ЭВМ. В.5. ТЕХНОЛОГИЯ СИСТЕМНОГО МОДЕЛИРОВАНИЯ До последнего времени моделирование использовалось в основном при исследованиях уникальных задач. Это стимулировало развитие теории моделирования, а также универсальных средств программирования и машинного экспериментирования с моделями. В последние годы к специалистам по моделированию стали поступать массовые заказы, в частности заказы от машиностроительных отраслей производства, что требует развития технологии моделирования. Поясним это следующим примером. В 1973—1977 гг. на комбинате «Фриц Хаккерт» (ГДР) методами моделирования разрабатывалась автоматизированная транспортная и складская система крупного металлообрабатывающего цеха [10]. Требовалось исключить простои оборудования, связанные с дефицитом подачи заготовок на обработку. Проверялась концепция организации системы. В результате моделирования была обоснована система, обеспечивающая удвоение выпуска продукции в цехе за счет резкого сокращения времени пребывания заготовок в производственном цикле. Заметим, что этот, один из первых значимых примеров применения моделирования в производстве выполнялся около трех лет. Естественно, что при массовом использовании методов моделирования в технических проектах следует добиваться резкого сокращения сроков разработки моделей, обеспечивающих различные этапы проектирования. Решение этой задачи возможно при соответствующем уровне развития технологии моделирования. Технология машинного моделирования является основой целенаправленной деятельности, смысл которой состоит в обеспечении возможности фактического эффективного выполнения на ЭВМ исследований функционирования сложных систем. С ее помощью организуются действия исследователя на всех этапах его работы с моделями, начиная от изучения предметной области и выделения моделируемой проблемной ситуации и кончая по- 27
строением и реализацией планов машинных экспериментов для анализа поведения системы. Говоря о технологии моделирования, следует отметить два важных аспекта: во-первых, методологическую составляющую технологии как науки, занимающейся выявлением закономерностей, применение которых на практике позволяет находить наиболее эффективные и экономичные приемы моделирования систем на вычислительных машинах; во-вторых, прикладные цели и задачи технологии как искусства, мастерства, умения достигать в ходе машинного моделирования сложных систем практически полезных результатов. Методологическая составляющая технологии моделирования связана с разработкой совокупности приемов построения алгоритмических описаний систем, целенаправленного преобразования полученных описаний в ансамбли взаимосвязанных машинных моделей, составлением применительно к таким ансамблям сценариев и планов работы, направленных на достижение прикладных целей моделирования. Прикладные задачи технологии связаны с созданием и использованием эффективных стандартных приемов и соответствующих программных и инструментальных средств, с помощью которых теоретические результаты могут быть освоены в возможно более широких областях применений.
Часть I АЛГОРИТМИЧЕСКИЕ МОДЕЛИ СЛОЖНЫХ СИСТЕМ Важный этап технологии системного моделирования состоит в формировании алгоритмической модели системы или множества таких моделей, применимых для анализа исследуемой проблемной ситуации, т. е. совокупности показателей работы системы, режимов ее работы, действующих факторов и др. В основе построения алгоритмических моделей лежат методы структуризации сложных систем и формализации их динамики. В первой части книги рассмотрен ряд моделей и методов, широко используемых в практике анализа сложных систем: сети кусочно-линейных агрегатов, моделирующие дискретные и дискретно-непрерывные системы; сети Петри, применяемые при структуризации причинных связей и моделировании систем с параллельными процессами; сети событий, служащие для стратификации и алгоритмизации динамики дискретных и дискретно-непрерывных систем; потоковые диаграммы и конечно-разностные уравнения системной динамики, являющиеся моделями непрерывных систем. Каждый метод рассмотрен с позиций его использования в задачах анализа, прогноза и проектирования систем на ЭВМ. Даны практические рекомендации и приведены примеры рабочих методик составления машинно-ориентированных моделей для различных прикладных областей.
ГЛАВА 1 ОБЩИЕ ВОПРОСЫ МОДЕЛИРОВАНИЯ СЛОЖНЫХ СИСТЕМ 1.1. СЛОЖНЫЕ СИСТЕМЫ 1.1.1. Вводные замечания Термин «система» появился в научной литературе давно и является фактически таким же неопределенным, как «множество» или «совокупность». Наиболее широко этот термин первоначально использовался в механике, где обозначал материальную систему, т. е. совокупность материальных точек, подчиненных определенным связям [1]. Подобные системы рассматриваются в основном в задачах динамики. Законы динамики были получены длительным индуктивным путем. Выдвигаемые гипотезы проверялись на многочисленных опытах. Проверялись также и многочисленные следствия выдвигаемых гипотез. Все это было реализовано благодаря возможности ставить «чистые опыты», т. е. устранять многочисленные мешающие факторы — сводить трение к минимуму, ставить опыты в вакууме, проводить достаточно точные измерения и т. п. Кроме того, условия опытов могли быть воспроизведены с весьма большой точностью в другое время и в другом месте. Новый этап начался с момента, когда ученые приступили к исследованию систем, названных впоследствии «сложными», динамика которых во многом зависит от человека, принимаемых им решений. Процессы, протекающие в сложных системах, описываются большим числом параметров — большим в том смысле, что соответствующие уравнения и соотношения, как правило, аналитически разрешены быть не могут. Эти системы уникальны, т. е. даже аналогичные по назначению системы имеют ярко выраженные специфические свойства, во многом определяющие их поведение. Продолжительность экспериментов с такими системами обычно велика — она часто оказывается сравнимой со сроком их жизни. Иногда проведение активных экспериментов с системой вообще недопустимо. К тому же, практически невозможно ставить чистые опыты — системы приходится изучать во всем многообразии действующих факторов. Приведем несколько примеров, поясняющих уже сказанное и дающих необходимую базу для дальнейшего. 30
1.1.2. Производственно-организационная система строительства плотины ГЭС Этот пример взят из практики гидроэнергетического строительства. С такой задачей столкнулись строители Курпсайской ГЭС на реке Нарын [4, 6]. Процесс строительства плотины ГЭС состоит из следующих основных этапов: добычи щебня из карьеров; производства бетона на бетонных заводах (БЗ); перевозки бетона с БЗ на плотину; разгрузочных работ и укладки бетона; работ на плотине. Система в целом описывается следующим образом. Добытый в карьерах камень перерабатывается в щебень и доставляется на БЗ для приготовления бетона. Для различных строительных работ используется бетон разных марок. Каждый из БЗ имеет возможность готовить бетон любой марки (марки бетона различаются процентным содержанием цемента и добавок), однако для перестройки производства с выпуска бетона одной марки на выпуск бетона другой марки уходит определенное время. Бетон выпускается в секциях БЗ порциями, которые загружаются в бетоновозы и по автотрассе отправляются на место строительства. Разгрузка, вообще говоря, проводится в различных местах, различными механизмами и разными способами, зависящими, кроме всего прочего, и от этапа строительства (с ростом плотины меняется состав разгрузочных механизмов, правила подъезда к ним н т. д.). Порожние бетоновозы возвращаются на БЗ, и цикл повторяется. Чтобы дать представление о размерности задач подобного рода, скажем, что на строительстве обычно работают несколько БЗ A—3), выпускающих бетон примерно 10 марок, автохозяйство стройки насчитывает несколько сотен автомобилей, работают до десятка разгрузочных механизмов, протяженность автотрассы колеблется от единиц до нескольких десятков километров при достаточно большой ее загрузке «посторонним» транспортом, создающим помехи при перевозке бетона. Так, в рассматриваемой ситуации строительство (створ плотины Курпсайской ГЭС) удалено от обеспечивающих предприятий (БЗ, карьера, автохозяйства) на расстояние около 40 км (рис. 1.1). Это связано с тем, что указанные предприятия ранее были рассчитаны на обеспечение строительства другой ГЭС (Токтогульской), находящейся в непосредственной близости от них. К месту строительства от обеспечивающих предприятий ведет автотрасса общесоюзного значения, проложенная в горной местности. К моменту начала строительства Курпсайской ГЭС перед строителями возник ряд альтернатив, основные из которых мы перечислим: а) перенос БЗ непосредственно к створу строящейся ГЭС; б) прокладка новой дороги (специально для строительства) в горных условиях; в) реконструкция существующей дороги в целях увеличения ее пропускной способности; Рис. 1.1, Схема расположения обеспечивающих предприятий на строительстве Курпсайской ГЭС: / — место строительства новой плотины; 2 — дорога к месту строительства; 3 — автохозяйство; 4 — бетонный завод; 5 — городок строителей; б — карьер 31
г) использование вместо самосвалов подвижных бетономешалок; д) применение присадок к бетону для замедления времени его «схватывания» на период перевозки. Варианты а и г рассматривались строителями как малореальные, допустимые к рассмотрению лишь в крайнем случае. Вариант б казался дорогостоящим н длительным, однако он не отбрасывался, так как при строительстве обычно неизбежны прокладки новых трасс и туннелей. При решении вопроса, какую из альтернатив взять за основу, необходимо было провести их сравнение, учитывая при этом экономические, вероятностно- временные показатели, различные дорожные условия (климат, профиль дороги, видимость н т. п.). Таким образом, эффективность сооружения отдельных туннелей, расширения участков дороги, строительства новых участков и т. п. необходимо оценивать с учетом не только существующих условий, но и гипотетических. Наличие большого числа взаимосвязанных элементов таких, как транспорт, участки дороги, тоннели, БЗ, погрузочно-разгрузочные механизмы и др., функционирующих в условиях неопределенности, делают решение поставленной задачи сложным. Отметим, что изучение «изолированных» элементов не дает информации о работоспособности всей системы в целом. Лишь анализ работы подсистем с учетом их взаимодействия может привести к пониманию функционирования системы как целого [2]. Вместе с тем ясно, что эксперименты с подобной системой в целях определения законов ее поведения невозможны, во всяком случае в достаточно полном объеме. В силу уникальности каждой стройки результаты экспериментов, полученные в одних условиях, как правило, оказываются малополезными в других. Но даже в экспериментах ограниченного объема исследователь должен считаться с реальными условиями, в которых работает система. В самом деле, постановка «чистых экспериментов» (например, при поступлении бетоновозов на БЗ по расписанию или работа в идеальных погодных условиях) была бы неправильной с методологической точки зрения, так как поправки на реальные условия в данном случае, вообще говоря, ни в каком смысле не являются малыми. Представим теперь, что указанные выше альтернативы рассмотрены и принята какая-либо из них. После этого возникают новые проблемы, связанные с повышением эффективности и качества работ, сокращением сроков возведения плотины, выявлением предельных возможностей данной системы, а именно: определение долгосрочных, краткосрочных и оперативных планов строительства, состава автопарка и организация его работы, работ БЗ, режима работ на разгрузке, составление графика укладки бетона и т. п. Решение комплекса указанных проблем приводит к необходимости построения не одной, а ряда различных моделей, отражающих как различные стороны поведения системы, так и различные уровни ее изучения. Например, для оценки эффективности реконструкции дороги нужна достаточно подробная модель движения транспорта. В то же время при исследовании вопроса об эффективности работы бетоноукла- дочного комплекса, включающего подсистему перевозок, можно ограничиться обобщенными характеристиками работы транспорта, например выбрать модель перевозок типа «вход-выход», полученную из подробной модели. Отметим следующую «системную» особенность рассмотренной задачи. На всех этапах проектирования и анализа исследуются подсистемы, которые, с одной стороны, взаимодействуют в рамках единой системы, а с другой, — имеют собственные цели и характеризуются своими критериями. Одной из основных задач исследования является нахождение таких технических, организационных илн административных решений, которые бы согласовывали локальные цели и критерии или по меньшей мере устраняли противоречия между ними. Очевидно, что найти их удается, как правило, только на основе неформальных приемов и методов. В самом деле, часто трудно четко сформулировать критерий, по которому определяется качество функционирования системы в смысле достижения поставленной цели. Саму цель редко удается выразить на языке математики так, чтобы она действительно была адекватна пониманию ситуации лицами, ответственными за принятие решений. Кроме того, цель может претерпевать изменения в зависимости от развития процесса. 32
В рассматриваемом примере руководство строительством будет принимать решения об организации процесса перевозок, основываясь, с одной стороны, на результатах формализованных исследований, а с другой, — на своем практическом и жизненном опыте. Моделирование дает возможность подкрепить опыт специалистов путем, например, использования разнообразных откликов на определенное техническое, организационное или административное решение. Тем самым лица, ответственные за принимаемые решения, получают инструмент прогнозирования и анализа систем. 1.1.3. Региональная водохозяйственная система Пример взят из реального проекта развития водохозяйственной системы бассейна реки Терек [5]. Чтобы дать представление о размерности и сложности системы, опишем сначала ее в том виде, в котором водохозяйственная система в бассейне Терека существует в настоящее время. Самая крупная река бассейна — Терек — в верховьях носит горный характер, среднее течение проходит по предгорной равнине и в устье она разветвляется на рукава. Основной потребитель стока бассейна реки Терек — орошаемое земледелие. Орошаемые площади в основном расположены в равнинной части бассейна. Дефицит воды возникает с апреля по июнь, так как в это же время должен получать воду второй основной потребитель стока Терека — рыбное хозяйство. Ежегодный паводок на Тереке создает опасность наводнений в низовьях реки вследствие большого количества речных наносов. Решение проблем обеспечения водой всех потребителей в регионе технически осуществляется путем строительства системы водохранилищ сезонного регулирования на Тереке и его притоках. При этом решаются следующие задачи: регулирование стока; использование водохранилищ в режиме, подчиненном использованию воды для ирригации и рыбного хозяйства. Водохозяйственная система бассейна реки Терек содержит И створов1 и четыре водохранилища, из которых только одно существует в настоящее время, а остальные намечено построить. В бассейне имеются 40 оросительных систем, которые «привязаны» к основным водохозяйственным створам, для каждой из них указаны створы водозабора и возврата воды. Нерестовые транзиты предусмотрены для трех створов, в одном из этих створов предусмотрены водозаборы для нужд рыбного хозяйства. Водохранилища в системе используются для покрытия дефицитов стока реки с противопаводковыми целями, а также для ликвидации дефицита воды в оросительных системах. Эта и подобные ей системы работают в условиях случайностей — размеры паводков, погодные условия, потребности водопользователей и т. п. При проектировании и эксплуатации водохозяйственных систем важно уметь решать следующие общие задачи: оценка основных показателей работы системы и формирование правил управления при проектировании новых водохозяйственных систем, проверка реализуемости разработанного водохозяйственного плана; формирование и оценка множества допустимых вариантов построения водохозяйственного плана (оценка водохозяйственных балансов, возможных мест расположения и объемов водохранилищ и т. п.); оценка изменений в уже существующих водохозяйственных системах, связанных с искажением гидрологической информации под влиянием хозяйственной деятельности, включением новых пользователей в состав водохозяйственного комплекса, строительством новых водохозяйственных объектов и т. п.; оперативное управление водохозяйственной системой. 1 Точки русла, к которым условно «привязаны» определенные пользователи системы. ^ П/р С« В. Емельянова 33
Можно перечислить также ряд конкретных задач, решение которых в значительной степени может помочь процессу управления водохозяйственной системой: оценка среднего объема водоподачи на оросительные системы, среднего расхода для нерестового транзита и рыбохозяйственных водоемов, надежности водоподачи для основных водопользователей, обеспеченности отдачи из каждого водохранилища системы; построение правил управления системой в виде диспетчерских графиков; выбор наиболее рационального способа распределения воды в створах; выбор варианта структуры системы для обоснования плана развития водного хозяйства бассейна. Как и в предыдущем примере, решение перечисленных задач может потребовать рассмотрения самых разнообразных моделей, отражающих разные стороны функционирования системы и разные уровни ее рассмотрения. Точно так же здесь нельзя сформулировать единый критерий эффективности работы системы, отражающий реальные цели ее функционирования. Более того, каждая из взаимодействующих подсистем может иметь собственные цели, входящие в противоречие с целями других подсистем. Здесь моделирование также дает необходимую информацию о последствиях принимаемых решений и управлений, помогает отыскать требуемое управление, является одним из инструментов проектирования системы. 1.1.4. Гибкий автоматизированный участок механообработки корпусных деталей Станкостроителями Ленинградского ПО им. Я. М. Свердлова была поставлена задача исследования возможностей использования в качестве основного технологического оборудования гибких автоматизированных участков (ГАУ) обработки корпусных деталей однотипных многоцелевых станочных модулей (МСМ) со сменными инструментальными магазинами. Решение этой задачи должно было позволить правильно оценить потребности рынка в станках данного вида, определить направления работ по усовершенствованию конструкции МСМ, получить достаточно надежные предварительные оценки показателей эффективности ГЛУ, оснащенных МСМ со сменными магазинами. Решение задачи намечалось провести таким образом, чтобы в результате получить: оценки основных показателей эффективности ГАУ корпусных деталей при различных формах организации технологического процесса; мобильность при переналадке на выпуск деталей нового типа; живучесть при выходе из строя отдельных рабочих позиций; возможность наращивания производственных мощностей; степень загрузки оборудования; уровень концентрации операций на отдельных рабочих позициях и др.; алгоритмы оперативного планирования и управления ГАУ с различными вариантами организационно-технологической структуры; базовый комплект математического, программного и методического обеспечения для проведения комплексных исследований различных вариантов ГАУ, оборудованных МСМ со сменными инструментальными магазинами, на этапах их технического и рабочего проектирования. Результаты решения этой задачи проверялись при проектировании первого опытного участка обработки корпусных деталей, использующего МСМ с автоматической заменой инструментальных магазинов, для турбостроительного объединения «Ленинградский металлический завод». Наиболее перспективные для создания ГАУ корпусных деталей производственные структуры должны обладать следующими признаками: Структурообразующие факторы Значения факторов Принцип подбора деталей Группирование широких семейств деталей Специализация производства По семействам деталей 34
Рабочие позиции Число операций Временная связь Наличие накопителей Технологический маршрут Межстаночный транспорт Степень автоматизации Управление Однотипные МСМ с автоматической заменой инструментальных магазинов Многопозиционная обработка Без синхронизации Есть накопители Свободный, гибкий Единая транспортная система сложной (непрямоточной) структуры Автоматическое производство Централизованное При полном наборе этих признаков с наибольшей вероятностью обеспечиваются необходимые условия для введения резервных производственных мощностей, использования локальных ресурсов участка, мобилизации дополнительных возможностей оперативного планирования и технологического регулирования. Схематическое изображение основных технологических операций и материальных потоков ГАУ обработки корпусных деталей приведено на рис. 1.2. Кружками на этом рисунке обозначены операции: / — расконсервация инструмента. Используется режущий и вспомогательный инструмент. Режущий инструмент характеризуется нормируемым временем (стойкостью). В течение этого времени инструмент пригоден для обработки конкретного материала при заданном режиме резания. Ресурс стойкости вспомогательного инструмента не определяется; 2 — хранение инструмента на неавтоматизированном складе. При хранении инструмент группируется по типоразмерам; 3 — составление комплектов и настройка инструмента. Комплекты из вспомогательного инструмента и закрепленного на нем режущего инструмента, настроенного на заданные размеры, называются инструментальными наладками; 4 — хранение инструментальных наладок на автоматизированном складе. Ячейки склада приспособлены для хранения поддонов с наладками. Поддоны имеют фиксированную емкость. Наладки образуют комплекты, которые могут занимать несколько ячеек склада; 5 — сборка и разборка инструментальных магазинов. Эти операции осуществляются вручную на специально оборудованных постах, обслуживаемых операторами в так называемые людные смены. Сборка магазинов проводится по картам заполнения. При разборке магазина снимаются все наладки; 6 — мойка, проверка, перезаточка инструмента. При перезаточке восстанавливается ресурс стойкости режущего инструмента. Инструмент, признанный при проверке негодным, покидает участок; . 7 — разборка инстру- -*—( s )•* ~ ( 7 ментальных наладок. Организуется так же, как 5; 8 — хранение инструментальных магазинов в оперативном накопителе; 9 — обработка корпусных деталей на однотипных МСМ с автоматически заменяемыми инструментальными магазинами. Предлагалось рассмотреть три различные модификации конструкции МСМ: с одним Рис. 1.2. Функционально- технологическая схема ГАУ
сменным инструментальным магазином, с двумя (одинаковыми) сменными магазинами, с одним стационарным и одним сменным магазинами. Каждый модуль имеет позицию обработки и две буферные позиции — входную и выходную. Все перемещения детали на модуле осуществляются автоматически. Обработка обычно представляется в виде последовательностей фрезерных, расточных и сверлилыю-резьбонарезных операций. Обработка проектируется в расчете на использование минимального числа замен инструмента и поворотов стола с деталью. Всякий раз учитываются необходимая точность обработки и эксплуатационные характеристики МСМ. При обработке предусматриваются черновые, получистовые и чистовые переходы. На этапе технологической подготовки производства используются структуры из элементарных нормализованных и типовых обрабатываемых поверхностей (ЭОП). Как правило, ЭОП может быть обработана не единственным способом. Любому допустимому способу обработки должны соответствовать определенный вид и количество необходимых инструментов, число рабочих ходов, переходов, установок и операций. Допустимые варианты обработки ЭОП задаются с помощью типовых технологических схем (ТТС); 10 — обработка корпусных деталей на вспомогательном оборудовании, В число вспомогательных операций входят: вибростабилизация деталей после металлоемких черновых обработок; мойка, сушка и пассивация деталей; контроль и измерение обработанных поверхностей. На каждой установке вспомогательного оборудования не может находиться более одного стола-спутника с заготовкой; /; — сборка, переустановка и разборка деталеустановок. Так же как 5 и 7, эти операции выполняются рабочими в людные смены на специально оборудованных постах. Сборка заключается в установке на стол-спутник соответствующего приспособления и закреплении на этом приспособлении корпусной детали. Переустановка состоит в изменении положения детали на столе-спутнике. При переустановке может потребоваться замена приспособления. При разборке деталь и приспособление снимаются со стола-спутника. Стол либо остается на данном рабочем месте, либо отправляется в оперативный накопитель; 12 — хранение деталеустановок в оперативном накопителе; 13 — хранение заготовок, готовых изделий и приспособлений. Материальные потоки на рис. 1.2 обозначены двумя цифрами: первая цифра — тип потока, вторая — способ транспортирования единиц потока. Типы потоков: 1 — режущего инструмента; 2 — инструментальных наладок; 3 — вспомогательного инструмента; 4 — столов-спутников с закрепленными на них деталями; 5 — свободных столов-спутников; 6 — приспособлений; 7 — заготовок; 8 — готовых деталей. Способы транспортирования: 1 — транспортной тележкой, приспособленной для перевозки инструментальных магазинов; 2—местным транспортом или вручную партиями; 3 — краном-штабелером в специальных поддонах; 4 — транспортной тележкой, предназначенной для перевозки столов-спутников; 5 •— краном. Некоторое представление о характеристиках потоков в пределах ГАУ дают следующие цифры: номенклатура корпусных деталей, для обработки которых целесообразно использовать МСМ со сменными магазинами (например, станки гаммы ЛР-400ПМФ4М), составляет 10—12 % общей номенклатуры корпусных деталей; размеры деталей достигают 1X1X1,5 м3, а стола-спутника— 1,25X1,25 м2; для обработки одной детали может потребоваться до ста и более типоразмеров инструмента; число одновременно применяемых магазинокомплектов не должно превышать 20—25; количество используемых в составе ГАУ МСМ с автоматической заменой инструментальных магазинов обычно равно 2—10; число людных смен — одна или две; необходимое время на обработку одной корпусной детали на одном станке составляет от 30 мин до 19 ч (по данным турбостроительного объединения «Ленинградский металлический завод»). 36
Технологический маршрут каждой конкретной детали-представителя формируется на основе операционной технологии ее механообработки и задается списком позиционных переходов (деталеопераций) и необходимых для их выполнения комплектов инструмента. Возможности формирования и синхронизации потоков деталей и магазино- комплектов в ГАУ определяются следующими факторами [9]: Содержание факторов для потоков деталей Обозначение Технологический маршрут обработки деталей: для каждой детали устанавливается только один маршрут, разработанный при условии максимальной технологически допустимой концентрации операционных переходов в каждой применяемой деталеопераций а обработка каждой детали может проводиться по какому-то одному маршруту из допустимого набора альтернативных маршрутов в Порядок обработки всех деталей одной партии на станках: строго фиксированный — каждая очередная деталеопераций выполняется на определенном станке с свободный — каждая очередная деталеоперация может выполняться на любом доступном станке из множества взаимозаменяемых станков d Способ назначения деталей из одной и той же партии на очередную обработку: последовательный — детали одна за другой проходят обработку на одних и тех же станках е параллельный — для каждой очередной детали станок назначается независимо. Критерием является лучшая загрузка оборудования / последовательно-параллельный — каждая партия разбивается на заказы. Детали одного заказа обрабатываются по последовательной схеме. Каждый заказ может иметь свою последовательность обработки g Содержание факторов для потоков магазинокомплектов Способ формирования магазинокомплектов: магазинокомплекты имеют постоянный состав h магазинокомплекты составляются для конкретных деталеопераций, входящих в маршруты деталей-представителей i магазинокомплекты составляются из инструментальных наладок, пригодных для выполнения технологически совместимых и подобных деталеопераций k магазинокомплекты имеют переменный состав / Структура расписания движения магазинокомплектов (РДМ): каждый мггазинокомплект используется только на одном определенном МСМ п каждый магазинокомплект может быть последовательно использован на нескольких МСМ п Приведенные факторы сведены в табл. 1.1. Анализ приведенных в табл. 1.1 вариантов должен проводиться по критерию эффективности, допускающему оценку: степени соответствия фактических сроков выпуска деталей плановым; стоимости незавершенного производства на участке; текущих затрат на выполнение производственной программы. Варианты, помеченные в табл. 1.1 цифрой 1, — нереализуемы. Варианты, помеченные цифрой 2, — заведомо неэффективны. К ним относятся варианты 21 с нерациональным использованием ресурсов инструментов, входящих в магазинокомплекты; варианты 22 со сложными трассами движения магазинокомплек- 37
Таблица 1.1. Возможные варианты организационно-технологических структур производства в условиях ГАУ 1 чур; Обозначение фактора а Ь с d с d е t 8 е f g г f 8 е f 8 h i m 1 1 1 3 21 21 1 1 1 23 23 23 n 1 1 1 1 22 3 1 1 1 1 22 23 k m 1 1 1 21 21 21 1 1 1 3 3 3 n 1 1 1 22 22 22 1 1 1 22 22 22 / m 1 1 1 3 3 3 3 1 1 3 3 3 n 1 1 1 3 3 3 1 1 1 3 3 3 тов между модулями и недопустимо большой нагрузкой на транспортные средства; варианты 23 с большим числом типов магазинокомплектов постоянного состава. Наиболее интересными вариантами в табл. 1.1 являются варианты, обозначенные цифрой 3. Из них выберем для анализа три основные схемы: 1 — (ad—fti); 2 — (ad—lm)\ 3 — (bd—hktn). В рамках первой схемы сравним по эффективности варианты (ade—him) и (adg—hin). При выборе второй схемы необходимо провести сравнительную оценку трех вариантов: (ade—lm), (adf—/m), (adg—/m). Здесь важно учитывать следующее. При обработке корпусных деталей наиболее предпочтительны маршруты с минимальным числом перемещений деталей между станочными позициями. Наличие альтернативных маршрутов обычно обусловлено ограничениями на состав операций, выполняемых МСМ, и особенностями организации СИО. При действии фактора / состав магазинокомплектов непосредственно связан с составом и структурой деталеопераций, запланированных к выполнению на МСМ. В случае, когда действует фактор а, маршрут может быть реализован без обращения к альтернативным вариантам. Использование третьей схемы связано с проверкой эффективности вариантов (bde—hkm), (bdf—hkm) и (bdg—hkm). Необходимо иметь в виду, что: число типов магазинокомплектов не должно превышать суммарное число позиций для сменных магазинов на всех МСМ участка; закрепление магазинокомплектов на МСМ приводит к наиболее простой организации потоков. 38
Таблица 1.2. Спецификация основных блоков модели СОПУ Блок модели Расчет оптимального расписания загрузки технологического оборудования ГАУ Расчет графика поступления заказов на формирование магазиноком- плектов Расчет графика поступления заказов на сборку деталеустановок Расчет расписания работы постов сборки и разборки инструментальных магазинов и наладок Расчет расписания работы постов сборки-разборки деталеустановок Программное управление транспортными средствами и технологическим оборудованием производственного звена Коррекция ССЗ загрузки технологического оборудования Программное управление работой СИОП и ССРД Ни. входная Оперативное плановое задание; данные о текущем состоянии заказов Расписание загрузки технологического оборудования; принципы формирования магазиноком- плектов; данные о текущем состоянии инструмента в производственном звене ГАУ Расписание загрузки технологического оборудования; маршруты деталей-представителей Состав магазинокомплек- тов и график их поставки на МСМ; данные о текущем состоянии инструмента в СИОП; сменность работы СИОП; число постов сборки и разборки магазинов и наладок График поставки мага- зинокомплектов на МСМ; сменность работы ССРД; число постов сборки-разборки деталеустановок ССЗ загрузки оборудования; данные о технологическом процессе Данные об отклонении хода производственного процесса от ССЗ; сведения о технологических помехах ССЗ на работу оборудования, постов сборки- разборки и транспортных средств в СИОП и ССРД;. данные о технологическом процессе >мация выходная Расписание загрузки технологического оборудования ГАУ на 3—5 сут; сменно-суточное задание (ССЗ) Состав магазинокомплек- тов и график их доставки на МСМ Список деталеустановок и крайних сроков их поставки в производственное звено ГАУ Состав, сроки начала и конца сборки магазино- комплектов; состав комплектов инструментальных наладок, сроки начала их подготовки и отгрузки Состав и расписание работ для постов ССРД Управляющие сигналы (выдаются в моменты начала выполнения и при завершении транспортных операций и операций обработки) Скорректированный план- график загрузки технологического оборудования; информация о коррекции расписания (передается в СОПУ для регулирования работы СИОП и ССРД) Управляющие сигналы (выдаются в моменты начала и при завершении соответствующих операций) 39
Продолжение табл. 1.2 Блок модели Коррекция ССЗ на работу СИОП и ССРД Информация входная Данные о коррекции расписания загрузки технологического оборудования; данные об отклонениях хода процесса в СИОП и ССРД от ССЗ выходная Скорректированное расписание работы оборудования, транспорта и постов сборки-разборки в СИОП и ССРД Важно рассмотреть еще одну — четвертую схему, не вошедшую в число вариантов табл. 1.1. Речь идет о специальной организации потоков, при которой оборудование ГАУ действует по принципу конвейера. Обработка деталей в этом случае сводится к выполнению совокупности операций, реализуемых последовательно на всех однотипных позициях ГАУ без каких-либо изменений в порядке прохождения позиций (фактор с).Такая организация характерна для гибких автоматизированных линий (ГАЛ). Работа ГАЛ может стать эффективной при правильном подборе ритма и успешном решении проблемы синхронизации действий станков [8, 9, 10]. Если время цикла выполнения операций на рабочих позициях назначить постоянным, то содержание операций на этих позициях можно менять в каждом цикле. Длительность операций, включенных в маршруты обработки деталей, определяется планируемым ритмом работы линии. Наиболее предпочтительным вариантом организации инструментального обеспечения ГАЛ при этом будет, очевидно, вариант 1т. Оценка эффективности всех рассмотренных вариантов организации производства в ГАУ проводится на имитационной модели. Основными блоками такой модели могут быть: модель производственного звена ГАУ—отображает динамику взаимообусловленных материальных потоков корпусных деталей и магазинокомплектов, описывает работу секций основного и вспомогательного оборудования, функционирование межстаночного транспорта, изменение состояний оперативных накопителей; модель секции инструментального обеспечения производства (СИОП) — воспроизводит процессы составления и раскомплектации инструментальных магазинов и наладок, описывает изменения состояний складов инструмента и наладок, работу постов сборки-разборки магазинов и наладок, оборудования для мойки, проверки и перезаточки инструмента, средств транспортирования магазинов, наладок, режущего и вспомогательного инструмента; модель секции сборки-разборки деталеустановок (ССРД) — имитирует ход выполнения основных рабочих операций на постах сборки-разборки, а также процессы транспортирования и хранения заготовок, приспособлений, столов- спутников, готовых изделий. Задачи получения оценок показателей эффективности функционирования ГАУ и задачи построения алгоритмов оперативного планирования и управления производством в пределах участка для всех рассмотренных выше вариантов организационно-технологических структур могут быть решены только в том случае, если наряду с имитационными моделями производственного звена, СИОП и ССРД будет использована модель системы оперативного планирования и управления (СОПУ) ГАУ. Общее представление об этой модели дают табл. 1,2 и рис. 1.3. Оперативное регулирование основных звеньев ГАУ осуществляется по схеме с обратной связью. При малых отклонениях плановых и фактических 40
{Оперативное мани роба ние загрузки технологического оборудования Оперативное планирование ра&оты СИОП Оперативное планирование работы ССРД Внутрисменное управление радо той производственного звена Внутрисменное управление работой СЦОП СИОП tea JUL Внутрисменное управление раоотой ССРД Производственное\ звено "П F=*1 ССРД Рис. 1.3. Основные функции и информационные связи СОПУ ГАУ: у — информационные потоки; .^—s. — материальные потоки сроков выпуска продукции деятельность ГАУ будет хорошо согласована с темпами производства и структурами материальных потоков смежных с ГАУ подразделений предприятия. Алгоритмы внутрисменного регулирования и оперативного планирования должны быть нацелены на достижение минимальных значений отклонений и соблюдение естественных ограничений на текущие производственные затраты и стоимость незавершенного производства в пределах участка. 1.1.5. Характерные особенности сложных систем Перечислим особенности сложных систем. 1. Уникальность. В рассмотренных нами примерах описаны уникальные объекты (существующие аналоги таких объектов заметно отличаются друг от друга). 2. Слабая структурированность теоретических и фактических знаний о системе. Так как изучаемые системы уникальны, то процесс накопления и систематизации знаний о них затруднен. Так, данные, собранные при строительстве одной ГЭС, будут, вообще говоря, лишь частично полезными при строительстве другой станции. Сюда же следует отнести слабую изученность ряда процессов, связанную с обычными для сложных систем изменениями их технической и технологической баз, значительным влиянием человеческого фактора, невозможностью или ограниченностью «натурного эксперимента». Следствием этого, в частности, является необходимость использования ансамбля моделей при анализе системы. Различные 41
модели могут отражать как разные стороны функционирования системы, так и разные уровни отображения исследователем одних и тех же процессов, 3. Составной характер системы. Уже при содержательном описании примеров нам пришлось использовать понятие подсистемы как некоторой достаточно автономной части всей системы. Расчленение сложной системы на подсистемы, как правило, зависит от принятых технических решений, целей создания системы и взглядов исследователя на нее. Одну из основных черт сложных систем составляет взаимодействие выделенных подсистем. Поэтому для обеспечения функционирования всей системы как целого приходится тем или иным способом учитывать результат воздействия одной подсистемы на другую и их взаимодействие с внешней средой. 4. Разнородность подсистем и элементов, составляющих систему. При описании рассмотренных примеров было выявлено, что составляющие систему элементы и подсистемы разнородны в самых различных смыслах. Во-первых, это — физическая разнородность. Так, указанные в п. 1.1.1 бетонные заводы, транспортная подсистема и подсистема укладки бетона и их функционирование, вообще говоря, имеют различную природу. Во-вторых, это — разнородность математических схем, описывающих функционирование различных элементов. Например, если работа бетонных заводов и укладочных механизмов на уровне их взаимодействия с транспортом может быть представлена моделями массового обслуживания [4], то для описания процесса движения автотранспорта на дороге часто используют аппарат дифференциальных уравнений. В-третьих, это — разнородность математических схем, описывающих функционирование одних и тех же элементов на различных уровнях изучения. Так, если подробная модель движения автотранспорта (для учета возможных его задержек, выбора схемы организации движения и т. п.) описывается дифференциальными уравнениями, то та же модель на уровне изучения взаимодействия автотранспорта с бетонными заводами и укладочными механизмами может быть описана как простой элемент запаздывания. 5. Случайность и неопределенность факторов, действующих в системе. Примерами подобных факторов могут служить погодные условия (п. 1.1.2 и 1.1.3), паводки (п. 1.1.3), случайные отказы оборудования, транспорта, укладочных устройств (п. 1.1.2, 1.1.4) и т.д. Учет этих факторов приводит к резкому усложнению задач и увеличивает трудоемкость исследований (необходимость получения представительных наборов данных). 6. Многокритериалъность оценок процессов, протекающих в системе. Невозможность однозначной оценки диктуется следующими обстоятельствами: наличием множества подсистем, каждая из которых, вообще говоря, оценивается по своим критериям; множественностью показателей (иногда противоречивых), характери- 42
зующих работу всей системы (например, темпы укладки бетона, качество строительных работ — см. п. 1.1.2); наличием неформа- лизуемых критериев, используемых при принятии решений (в случае, когда решения основаны, например, на практическом опыте лиц, принимающих решения). 7. Большая размерность системы. Эта особенность системы обусловливает потребность в специальных способах построения и анализа моделей. Составной характер сложной системы диктует представление ее модели в виде тройки (Л, S, 7), где А — множество элементов (в их число включается также внешняя среда); S — множество допустимых связей между элементами (структура модели); Т — множество рассматриваемых моментов времени. Эти понятия могут быть формализованы разными способами, некоторые из них будут описаны далее. Обратимся к содержательному смыслу указанных понятий. В качестве Т обычно выбирают множество [О, Т0) или U0, Г0), Т0 ^ оо. Мы также ограничимся только этими случаями. Однако отметим, что иногда (например, при использовании автоматных моделей [Ц]) целесообразно в качестве Т выбирать счетное множество вида Т — {О, 1, 2, ...} или Т — {О, /i, 2/z, ...}, где h — фиксировано. В каждый момент t ? Т в множестве А выделяется конечное подмножество А* = = {А\, Л5, ..., А{) ? А элементов, из которых в этот момент состоит модель, а в множестве S — подмножество St cz S, указывающее на то, какие именно связи реализованы в момент t. Следовательно, допускается как переменность состава сложной системы, так и переменность ее структуры. Основной задачей теории сложных систем следует считать разработку методов, позволяющих на основе изучения особенностей функционирования и свойств отдельных элементов и подсистем, анализа механизмов взаимодействия между подсистемами получать характеристики системы в целом. Приведенная выше общая модель отвечает данной задаче — она построена в виде совокупности моделей элементов и связей между ними. Как уже отмечалось, для сложных систем характерно использование самых разнообразных видов моделей элементов. Удобно разделить такого вида модели на две категории: внешние и внутренние. Названия эти условны и имеют следующий смысл. Вследствие недостатка знаний о функционировании элемента, из-за необходимости понизить размерность модели, а также по другим причинам часто используют модели типа «вход-выход» или «стимул-реакция». При этом не интересуются динамикой состояний элементов, а лишь описывают их внешнее поведение. Примерами моделей подобного типа служат различные регрессионные модели, поверхности отклика, функциональные зависимости и т. п. Такие модели назовем внешними (черный ящик). В отличие от внешних для внутренних моделей характерным является описание механизмов, управляющих динамикой их со- 43
стояний, которое может базироваться на нашем представлении и гипотезах относительно истинного поведения моделей. В известном смысле идеальным случаем является формирование указанного механизма на базе уже выявленных и экспериментально проверенных закономерностей. Примерами могут служить модели, описываемые дифференциальными уравнениями, марковскими процессами и др. Как уже отмечалось, существенное влияние на формирование модели сложной системы определяют взгляды исследователя на систему и цели исследования. Типичной является ситуация изучения ансамбля моделей, относящихся к одной и той же системе, но позволяющих оценивать различные стороны ее функционирования. Модели этого ансамбля, как правило, обладают разной степенью общности, различной точностью и сложностью. В этой ситуации необходимо найти правила отбора математических моделей, включаемых в ансамбль, что вызвано потребностью иметь каталогизированные библиотеки моделей совместно с рекомендациями по применению моделей различных типов. Поскольку при исследовании системы с помощью ансамбля моделей анализируются разные стороны функционирования одной и той же системы, то при переходе от одной модели к другой нужно руководствоваться определенной логикой, отображающей целостность изучаемого объекта и общность его фундаментальных свойств. Выявление и обеспечение этой логики составляет суть проблемы стратификации. 1.2. ТЕХНОЛОГИЯ ПОСТРОЕНИЯ КОНЦЕПТУАЛЬНЫХ МОДЕЛЕЙ СЛОЖНЫХ СИСТЕМ Переход от содержательного описания сложной системы и исследуемой задачи к построению соответствующей математической модели неоднозначен. Тем не менее опыт показывает, что исследования почти всегда включают следующие этапы: содержательное описание системы; изучение проблемной ситуации (перечень объектов и ситуаций, подлежащих исследованию); составление функциональной схемы взаимодействия основных процессов, протекающих в системе; определение границ модели; обсуждение степени подробности представления элементов; формирование концептуальной модели; составление информационного обеспечения модели; построение формальной модели. Последовательное прохождение указанных этапов и составляет по сути технологию построения модели сложных систем. Можно отметить, что во многом схожая технология используется при создании программных продуктов [12]. Каждый выделенный этап характеризуется своим набором понятий, поэтому переход от одного этапа к последующему есть по сути трансформация модели, записанной в одних понятиях, в модель, базирующуюся на других понятиях (слово модель здесь 44
Рис. 1.4. Определение проблемной ситуации для моделирования строительства ГЭС: / — производство бетона; // — перевозка бетона к месту строительства новой плотины; /// — укладка бетона; 1 — бетонный завод; 2 — карьер; 3 — средства транспортирования бетона; 4 — организация дпижения средств транспорта; 5 — дорога; 6 — укладочные механизмы; 7 — организация и технология производства бетонных работ Рис. 1.5. Факторы, определяющие границы модели строительства ГЭС: 1 — карьер; 2 — характеристики транспорта; 3 — погодные условия; 4 — организация движения; 5 — характеристики постороннего транспорта; 6 — обеспечение строительства металлоконструкциями; 7 — организация и технология производства бетонных работ; / — /// — то же, что и на рис. 1.4 имеет весьма широкий смысл). Эта трансформация сопровождается не только изменением понятий, но и накоплением и упорядочиванием наших знаний о системе. В данном параграфе мы проследим технологическую цепочку вплоть до момента построения формальной модели. Последний этап — предмет рассмотрения следующих параграфов. Удобнее всего обратиться к уже рассмотренным примерам. Пример 1.1. Вернемся к примеру из п. 1.1.2 предыдущего параграфа. В нем достаточно полно дано содержательное описание объекта (см. рис. 1.1) и проблемной ситуации, возникшей на этапе подготовки строительства ГЭС и состоящей, в частности, в том, что организаторов строительства интересуют в основном группы вопросов, связанные с производством, перевозкой, укладкой (потреблением) бетона. Решение именно этих вопросов даст ответ на поставленные задачи составления и выполнения долгосрочных, краткосрочных и оперативных планов строительства, выбора состава автопарка, выбора схемы укладки бетона, организации движения и др. Понятия, с которыми оперируют на данном этапе, характерны для рассматриваемой проблемной области. Иначе говоря, это — профессиональные понятия исследователя системы. В результате вырисовывается следующая общая картина изучаемой проблемы (см. рис. 1.4). Центральными являются вопросы производства, перевозки и потребления бетона. Производетво бетона обеспечивают карьер и бетонный завод, а также транспорт, осуществляющий перевозки из карьера на бетонный завод. Для перевозки бетона определяющими являются структура транспортного хозяйства (количество и типы автотранспорта), организация дорожного движения, характеристики дороги. Процесс потребления (укладки) бетона зависит от количества укладочных мест, состава работающих укладочных механизмов, режима работы укладочных механизмов, графика ввода их в действие по мере роста плотины. Однако представление системы на рис. 1.4 лишь акцентирует внимание на объектах и процессах, требующих изучения или учета. Следующим этапом является описание взаимодействия основных изучаемых процессов, их характеристик, определение границ модели. Для рассматриваемого примера такое описание тезисно может быть дано в следующем виде (рис. 1.5). Основным объектом изучения в процессе производства бетона является бетонный завод (БЗ). С одной стороны, БЗ снабжается 45
щебнем из карьера, с другой стороны, БЗ — поставщик бетона для строительства. В данной ситуации снабжение БЗ щебнем узким местом быть не может и в дальнейшем из изучения исключается (на рис. 1.5 этот процесс изображен штриховой линией). Материальными носителями процесса перевозки являются дорога с находящимися на ней транспортными средствами. Здесь подлежит изучению и определению состав и характеристики автопарка, требуемого для перевозки бетона, и организации движения. Оба эти фактора влияют на процесс перевозки. Однако следует еще учесть и такие факторы, как погодные условия и наличие на дороге «постороннего» транспорта, — эти факторы являются внешними относительно изучаемой системы, т. е. они влияют на ее работу, а влияние системы на них не изучается (даже в случае наличия такого влияния). Далее, процесс укладки бетона зависит от поступающего потока бетона, металлоконструкций и организации процесса укладки. В изучаемой ситуации поступление металлоконструкций не является узким местом и также не рассматривается, В результате в модель включаются следующие объекты и процессы: БЗ, перевозка бетона, укладка бетона. Кроме того, учету подлежат такие факторы, как посторонний транспорт и погодные условия. За пределами рассмотрения остаются, например, экологические проблемы. Если бы потребовалось их рассмотрение, то нужно было бы предусмотреть механизмы, учитывающие влияние объекта и процесса его строительства на окружающую среду. После выделения основных элементов и процессов в модели необходимо решить вопрос о степени подробности их представления: следует определить, какие факторы и параметры учитываются и регистрируются в каждом из выделенных процессов. Перечень факторов и параметров зависит как от назначения модели, так и от исследуемых режимов ее работы. В рассматриваемом случае модель служит прежде всего для выяснения возможностей системы по производству, перевозке и укладке бетона. При этом, как уже отмечалось, необходимы исследования функционирования системы на промежутках времени различной продолжительности (для долгосрочного, краткосрочного и оперативного планирования). В соответствии с этим для изучаемой системы принята следующая детализация элементов. При рассмотрении функционирования БЗ необходимо учитывать состав очереди автотранспорта на погрузку, наличие у БЗ нескольких независимо работающих секций, производящих и выгружающих бетон, возможности выпуска (и соответственно погрузки) бетона различных марок, процесс управления переключением секций на выпуск бетона различных марок с учетом различия во времени их приготовления. Вообще говоря, временные характеристики приготовления бетона определяются протеканием соответствующих физических процессов в рамках технологии его изготовления. Однако эти процессы достаточно хорошо изучены и их можно не рассматривать в рамках данной модели и считать указанные характеристики известными. При рассмотрении укладки учитывается очередь транспорта на разгрузку, сама разгрузка, рабочий цикл разгрузочного механизма (прием бетона — движение к плотине — выгрузка бетона в тело плотины — движение к месту приема), отказы и ремонт разгрузочных механизмов. При описании процесса перевозки необходимо учитывать, как уже отмечалось, погодные условия, наличие постороннего транспорта, характеристики автотранспорта, перевозящего бетон, время его перевозки. Последняя характеристика, в частности, определяется структурой транспортного потока на дороге и организацией движения на ней. В общем случае зависимость длительности поездки от указанных факторов неизвестна, поэтому для ее определения необходима достаточно подробная модель дорожного движения, учитывающая закономерности движения транспорта на дороге: скорость свободного движения, правила обгона, интервалы безопасности, габаритные размеры машин и т. п. Такая модель тем более необходима, что исследование возможностей дороги по перевозке бетона, как указывалось, является одной из узловых задач. Получив временные характеристики движения на этой подробной модели, можно составить огрубленную модель, в которую найденные характеристики войдут как исходные данные. 46
B Рис. 1.6. Факторы, определяющие модель водо- ^у/^^ хозяйственной системы: x—v /" I д / — система створов; // — система водохранилищ; ( 7 J * I 1 \ II \ 1 — правила распределения воды; 2 — приток воды; ^-*^ Ч^ 1 ->^ 3 — диспетчерский график ^""VT В результате описанной детализации мы получаем концептуальную модель, содержащую перечень взаимодействующих элементов, процессов и перечень соответствующих характеристик, учитываемых при их функционировании. Далее следует проверить эти перечни на информационную обеспеченность. Имеется в виду возможность получения на основе требуемых показателей работы системы перечисленных характеристик, а также возможность задания исходных характеристик на базе имеющегося набора данных о системе. Например, время приготовления бетона на БЗ можно задать, исходя из имеющихся данных, а время перевозки бетона — нельзя. Необходимо также проверить, что информация, требуемая для работы каждого элемента, обеспечивается исходными данными и данными, полученными для других элементов. Следующим этапом является формализация модели, когда упомянутые выше данные трансформируются в понятия состояний и сигналов, передаваемых внутри модели или снимаемых с нее. Одна и та же концептуальная модель может превратиться в различные формальные модели в зависимости от учета или неучета некоторых особенностей функционирования, грубости описания процесса функционирования, применяемого математического аппарата, а также вкусов и привычек исследователя. Примеры разных типов формализации будут даны далее. Пример 1.2. Рассмотрим теперь пример региональной водохозяйственной системы, содержательное описание которой дано выше, в п. 1.1.3. Основными задачами, решаемыми как на этапе проектирования, так и на этапе эксплуатации, является выбор управляющих воздействий: для водохранилищ — размеров стоков (диспетчерского графика), а для створов— правила распределения воды. В соответствии с этим основными исследуемыми процессами являются процессы изменения уровней воды в водохранилищах и прохождения воды через створы. При этом следует учитывать такие внешние факторы, как притоки воды в реках, атмосферные осадки и пр. Таким образом, в изучаемой системе можно выделить объекты и процессы, представленные на рис. 1.6. Рассмотрим их взаимодействие. Вода (материальный поток) проходит через системы створов и водохранилищ в соответствии с их географическим расположением, принятыми правилами распределения, диспетчерскими графиками работы водохранилищ, а также под воздействием внешнего притока. Такое представление дает возможность исключить из непосредственного рассмотрения вопросы, связанные, скажем, с рыбоводством, мелиорацией и т. п., и изучать их опосредственно путем анализа различных правил распределения воды и диспетчерских графиков. Указанное представление привело к необходимости рассмотрения следующих элементов: створа (совместно с правилом распределения воды), водохранилища (совместно с диспетчерским графиком) и внешней среды (реализующей фактически тот или иной гидрологический ряд). При этом учитываются следующие показатели и параметры: . для створа — правила распределения воды во времени, число пользователей, их классификация с точки зрения приоритетности снабжения водой, возвращения использованной воды в тот же створ, количество пропускаемой воды; для водохранилища — уровень воды (максимальный и минимальный), режим работы (в соответствии с временным диспетчерским графиком); для внешней среды — изменение внешнего притока воды во времени, выпадение атмосферных осадков. Модель представляет собой соединение выделенных элементов в соответствии с реальной (или проектируемой) географией системы. Информационное 47
UtxniiHhiP данные 1 мооели \ ФункциониробанияХ 1 cony \ ¦ Л сноп \ п 1 1 \ *-— > Нештатные ситуации, помехи 1 \ i f~ Генератор Вариантоб ч 1 i l_ ^ Произбодстбенное збсно Вы if op схемы &ыд~ор параметроЗ * ИМ ССРД 1 ^ ^ г II ^П W^hn \-is *. \—** Mode/ib оцеики\ Рис. 1.7. Функциональная схема моделирующего комплекса: у — информационные потоки; =) — материальные потоки обеспечение модели базируется на существующих или статистических данных, собираемых относительно исследуемого объекта, правилах распределения воды и алгоритмах формирования диспетчерских графиков, являющихся результатом решения отдельной задачи управления либо выбираемых с учетом опыта работы с аналогичными системами. Формальная модель должна отражать все перечисленные особенности, а ее конкретный вид определяется выбранной математической схемой. Пример 1.3. Рассмотрим концептуальную модель ГАУ. Краткое описание участков такого типа содержится в п. 1.1.4. Задачи моделирования будем рассматривать в связи с проблемами проектирования ГАУ [1, 7, 9]. Ранее было установлено, что эффективность ГАУ зависит от правильного выбора организационно-технологической структуры производственного процесса, определяющей условия формирования и синхронизации основных материальных потоков в пределах участка. Известно также, что из большого числа допустимых вариантов организации технологического процесса в условиях ГАУ рассматриваемого типа только восемь считаются перспективными. Эти варианты группируются в три основные организационно-технологические структуры. Каждая структура должна быть подвергнута тщательному анализу на эффективность. На эффективность работы ГАУ существенное влияние оказывает качество алгоритмов оперативного контроля и управления, применяемых в составе СОПУ. Синтез алгоритмов является ответственной задачей проектирования. Алгоритмы оперативного планирования и внутрисменного регулирования должны допускать настройку на режимы работы в условиях использования различных организационно-технологических структур производственного процесса, и их необходимо настраивать на исходные данные, характерные для конкретных проектируемых участков. В этих алгоритмах должны быть предусмотрены специальные механизмы реагирования на различные нештатные ситуации и внешние возмущения. Подмножество переменных параметров алгоритмов должно обеспечивать возможности улучшения динамических свойств ГАУ за счет поиска областей эффективных значений в процессе машинных экспериментов с моделями ГАУ. Весь комплекс вопросов проектирования, улучшения и оценивания алгоритмов функционирования СОПУ должен поддерживаться моделированием. Сказанное здесь в дальнейшем используем как содержательную формулировку целей моделирования ГАУ. Реализация этих целей связана с необходимостью разработки и использования моделирующего комплекса (рис. 1.7). В состав ИМ комплекса входят модели производственного звена, СИОП, ССРД (см. п. 1.1.3). Эти три компоненты ИМ связаны между собой материальными потоками. Информация о состояниях компонент каждой модели поступает 48
в блок моделей СОПУ, где формируются сигналы управления активными элементами ИМ. Управляющие сигналы вызывают в ИМ изменения состояний компонент и обеспечивают в модели реализацию динамических процессов материального производства. Каждая компонента ИМ имеет модульную структуру. По назначению можно выделить следующие три группы модулей: 1) отображающих процессы выполнения производственных операций активными элементами модели (МСМ, вспомогательным оборудованием, транспортными средствами, операторами СИОП и ССРД и др.); 2) имитирующих процессы принятия решений при изменении состояний производственных элементов. Необходимая для этого информация поступает из блока моделей СОПУ. Исходными данными для принятия решений являются сведения о технологии обработки деталей и согласованные ССЗ подразделений ИМ; 3) монитор, координирующий действия компонент ИМ и осуществляющий информационный обмен между модулями ИМ и моделями СОПУ. ИМ должна допускать настройку на любой вариант исходных данных, задаваемый пользователем, любую схему формирования и синхронизации материальных производственных потоков в ГАУ, любые алгоритмы оперативного планирования и управления, допустимые для применения в условиях испытуемой организационно-технологической структуры производства. Режимы использования ИМ должны быть рассчитаны на возможность включения специальных защитных механизмов управления в различных экстремальных ситуациях и при действии технологических помех (например, при выходе из строя оборудования ГАУ). В связи с этим в ИМ должны быть предусмотрены средства, обеспечивающие настройку модели на имитацию нештатных ситуаций и воспроизведение откликов на внешние воздействия. Все функции настройки и реконструкции ИМ в моделирующем комплексе выполняет программа «Генератор вариантов», с помощью которой могут быть реализованы разработанные пользователем сценарии системного моделирования ГАУ. Назначение и состав задач СОПУ ГАУ объясняют рис. 1.2 и табл. 1.2. Функции СОПУ в моделирующем комплексе осуществляет блок моделей СОПУ. Этот блок представляет собой совокупность взаимосвязанных вычислительных алгоритмов (моделей), настраиваемых на заданные режимы использования от генератора вариантов. Характер информационного обмена между блоком моделей СОПУ и ИМ должен соответствовать: содержанию задач СОПУ, предусмотренных проектом создаваемого ГАУ; особенностям динамических процессов в ИМ, имитирующих динамику производства на проектируемом участке; способам анализа текущего состояния ИМ и оценке значения отклонения этого состояния от запланированного. Эти способы адекватны по содержанию механизмам контроля состояния производства, реализуемым в проекте ГАУ. Генератор вариантов, ИМ, блок моделей функционирования СОПУ и модель оценки в совокупности образуют в составе комплекса систему моделей, предназначенную для решения сформулированных выше задач проектирования ГАУ. Модель оценки предоставляет пользователю (на рис. 1.7— это ЛПР) средства целенаправленной организации сбора и обработки данных вычислительных экспериментов, согласованные с системой применяемых оценок эффективности функционирования ГАУ. Блок моделей СОПУ формирует выходную информацию и регламентирует способ ее передачи пользователю. Генератор вариантов выполняет функции информационного входа в систему моделей ГАУ. В целях обеспечения должного уровня автоматизации работы ЛПР с моделями в ходе подготовки и проведения вычислительных экспериментов в состав комплекса включаются программы выбора схемы формирования и синхронизации производственных потоков на участке и выбора параметров в системе моделей ГАУ. Эффективность действий ЛПР обусловлена достигнутым в моделирующем комплексе уровнем проблемной ориентации, поддерживаемым специальными средствами диалогового взаимодействия ЛПР с моделирующими программами и данными, размещенными в базе данных комплекса. Средства управления диалогом должны обеспечивать: 49
Исходные данные "т t 1—+*\ Т к 1 Т [ Нештатные 1 ситуации, \ fruepumop 6арионпю5 J ^ | 7* , | Мщ \ [«*— Вь/б~ор схемы Выб'ор поромегпрод J (ппп\ [ЛIIИ у*- р" * Модель оценки Рис. 1.8. Моделирующий комплекс, применяемый на этапах эскизного и технического проектирования ГАУ настройку модели оценки на соответствующий критерий эффективности и алгоритм его вычисления по результатам имитации; генерацию очередного варианта организационно-технологической структуры ГАУ и согласованных с выбранной структурой алгоритмов функционирования СОПУ. В начале диалога ЛПР сообщает моделирующей системе необходимые исходные данные: плановое задание по объему и номенклатуре, операционные технологии обрабатываемых деталей, количество МСМ, вспомогательного оборудования, позиций оперативных накопителей, состав операторов СИОП и ССРД, число безлюдных смен в каждые сутки рассматриваемого временного периода и т. п. На этой же стадии формирования модели ЛПР задает: режимы работы модели и характеристики нарушений производственного процесса; варианты организационно-технологической структуры ГАУ; структурные и числовые параметры для генерации алгоритмов оперативного планирования и внутрисменного регулирования, расчета технологических маршрутов деталей и составов мага- зинокомплектов. По окончании генерации варианта должна последовать фаза имитации. ИМ во взаимодействии с блоком моделей СОПУ будут при этом воспроизводить динамику производства в пределах участка. На основе полученных в ходе имитации траекторий изменения переменных состояния и характеристик ГАУ в соответствии с принятыми критериями и алгоритмами их расчета находят комплексные оценки эффективности каждого рассматриваемого варианта проекта. Машинные эксперименты заканчиваются после получения необходимых для проектирования данных. Выясним, каким образом может быть использована построенная нами концептуальная модель. Пусть необходимо выбрать организационно-технологическую структуру и алгоритмы функционирования СОПУ, обеспечивающие эффективную работу ГАУ. Если такая задача ставится в предварительном плане (этапы эскизного и технического проектирования), то использование в составе моделирующего комплекса (см. рис. 1.7) полной ИМ нерационально, а в некоторых случаях и невозможно, поскольку на начальных этапах проектирования обычно отсутствуют многие исходные данные, необходимые для параметризации модели. Более целесообразную схему решения данной задачи обеспечивает система моделей (Мт, Мк, Мцу Мщ), приведенная на рис. 1.8. Функции ИМ в этой системе выполняет Мщ- модель СИО ГАУ. Расчет расписания загрузки ресурсов ССРД и оборудования производственного звена участка по материальному потоку осуществляет модель Мц. Варианты технологических маршрутов обработки деталей-представителей в условиях различных возможных схем формирования и синхронизации материальных потоков находятся с помощью модели МТ. Корректировку оперативных планов-графиков загрузки оборудования при выходе из строя МСМ обеспечивает модель Мк. Предположим, что оборудование работает без сбоев. Этим условиям соответствуют следующие вычислительные процессы в системе моделей: по результатам работы модели МТ модель Мц рассчитывает план-график загрузки оборудования на весь плановый период. Одновременно с этим Мц 50
Рис. 1.9. Схематическое представление концептуальной модели, разработанной применительно к задачам проектирования алгоритмов оперативного управления и планирования ГАУ механообработки корпусных деталей: а — схема 1; б — схема 2; в — схема 3; Вг — решение задачи формирования технологических маршрутов; Вг — расчет вариантов составления магазинокомплектов; Вг — решение задачи определения алгоритмов оперативного планирования загрузки оборудования; /34 — расчет оценок эффективности алгоритмов оперативного планирования, внутрисменного регулирования, расчета РДМ; Вь — синтез алгоритмов управления инструментальными потоками и анализа характеристик функционирования СИОП; В6 — «Модель оценки»; 1 — операционная технология; 2 — ограничения на длительность н состав позиционных переходов; 3 — технологический маршрут (множество альтернативных технологических маршрутов); 4 — план по объему и номенклатуре; 5 — характеристики инструментальных магазинов; 6 — состав магазинокомплектов (множество вариантов составления магазинокомплектов); 7 — рекомендуемые размеры партий; 8 — характеристики работ; 9 — ограничения на ресурсы; 10 — описания областей эффективных значений параметров алгоритмов загрузки оборудования; П — описание областей эффективных значений параметроз алгоритмов оперативного планирования, характеристики работ, данные о ресурсах, описания стратегий регулирования; 12 — оценки загрузки оборудования; 13 — оценки использования ресурсов; 14 — оценки отклонений от директивных сроков выпуска деталей; 15 — оценки времени пролежива- ния деталей; 16 — массив РДМ; 17 — ограничения на ресурсы СИОП; 18 — оценки характеристик СИОП; 19 — эффективные алгоритмы управления инструментальными потоками; 20 — характеристики отказов МСМ и других нарушений производства; 21 — ограничения на выбор типов магазинокомплектов строит РДМ, которое впоследствии передает на вход Mju и, кроме того, получает оценки динамики потоков деталей, используемые далее в качестве входов блока «Модель оценки». Связь между Мц и М\ц определяется через РДМ. В М\ц действуют модули четырех типов: 1) модули-имитаторы задержек, связанных с выполнением технологических операций и действий над данными, обусловленных изменением состояний элементов материального потока и оборудования в ходе производственного процесса. Например, модуль «Транспортная тележка» воспроизводит задержку, соответствующую времени перемещения по заданному маршруту, и выполняет преобразование данных, связанных с изменением состояний МСМ, магазиноком- плекта и накопителя магазинов; 2) модули позиционного управления (диспетчеры), активирующие и пассивирующие модули-имитаторы; 3) модуль оперативного планирования, который при каждом включении анализирует РДМ на три—пять модельных суток вперед и строит скользящие 51
планы-графики работы секций сборки-разборки инструментальных наладок и магазинов; 4) модуль-монитор, координирующий работу всех компонент в Мщ. При отсутствии технологических помех задачи оперативного управления не возникают. Работа ГАУ строится по рассчитанному на основе М7, М\\ расписанию загрузки оборудования. Расписание может быть успешно реализовано, если СИО окажется в состоянии справиться с предъявляемым ей в форме РДМ заданием. Проверка этого факта осуществляется на Мщ. Та же самая схема может применяться и при наличии помех, если для каждой возмущенной ситуации в Мц имеются специальные алгоритмы оперативного планирования. При этом задача остается прежней, но всякий раз ее решение проводится как бы при новых исходных данных. В наиболее общем случае, когда нет ограничений на действие технологических помех, возникает необходимость в оперативном управлении (виутрисмен- ном регулировании). До появления возмущения вычислительный процесс развивается по ранее рассмотренной схеме. При наличии помехи (например, выходе из строя МСМ) необходимо скорректировать РДМ. Суть корректировки сводится к включению в уже имеющееся расписание дополнительных работ, выполнение которых было приостановлено помехой. Анализ возникшей на участке ситуации, формирование маршрутов обработки дополнительно возникших деталей, поиск и способы мобилизации необходимых ресурсов выполнения плана без существенных сдвигов предусмотренных сроков и при условии действия запрета на дополнительные заявки к СИО — все эти действия осуществляются MKi Мц, Мт в ходе корректировки расписания (рис. 1.9). 1.3. АЛГОРИТМИЧЕСКИЕ МОДЕЛИ Как уже говорилось, основное внимание в изложении будет уделено математическим моделям сложных систем, реализуемым на цифровых ЭВМ. В соответствии с этим динамика моделей представляется посредством последовательности происходящих событий. Для ее описания целесообразно рассмотреть дополнительные понятия, конкретизирующие объекты модели, введенные в п. 1.1, Будем характеризовать каждый элемент Aj ? si набором признаков Tij9 содержащих как состояния zj (величины, аккумулирующие информацию, необходимую для прогноза будущей динамики элемента), так и различные служебные величины vJy т. е. nJ = (г;> vj)- В каждом элементе Aj могут происходить события, обозначаемые eJt Время наступления очередного события полностью определяется текущим состоянием zj7 а его содержание — признаком nj. Из сказанного следует, что в состав состояния элемента Aj без ограничения общности можно ввести величину т^, равную интервалу времени до наступления очередного события в] (при условии, что другие системные события не помешают его наступлению). Опишем теперь динамику модели. Пусть в начальный момент времени /0 определены состав элементов si0 с: si и структура системы S0. Для каждого элемента Aj?s?° известны признаки я/ и время г} наступления события е7-. Найдем величину т1 = = min {т}:Л7- ? si0}, равную времени до наступления самого раннего события, и пусть j1 = argmin т} (возможной неоднозначностью номера /г пренебрежем). Будем считать, что ни состав системы si0у ни признаки элементов из si0, ни структура S0 не ме- 62
няются до момента времени tx = t0 + -с1. В момент tx в элементе А\х происходит событие eilf содержание которого задано признаком я/4. В этот момент происходит взаимодействие элементов, входящих в s&°, в соответствии со структурой S0. В результате взаимодействия формируется новый состав элементов st1, их признаки и новая структура S1. Формально это означает, что состав элементов si-1, признаки всех элементов из s&1 и структура S1 являются функцией события ei%, состава s&°t признаков всех элементов из ^°и структуры S°. Далее вновь определяется время т2 до наступления самого раннего события в элементах из $4>ху находится следующий момент времени t2 смены состава элементов и их признаков t2 ~ tt + т2 и т. д. Моменты t0i tlt t2, ... смены составов элементов и/или их признаков будем называть особыми. Переходы, происходящие в эти моменты, полностью определяют динамику модели. Поэтому при машинной имитации резонно воспроизводить лишь эти изменения. Необходимо упомянуть, что изменения в особые моменты времени, вообще говоря, случайны, и важно чтобы эти изменения зависели только от предшествующих состава и признаков элементов, структуры и типа происшедшего события. Хотя при рассмотрении данной общей модели не принимались во внимание некоторые возможные формальные затруднения (связанные, скажем, с существованием конечных точек накопления скачков, когда приведенного описания не достаточно для однозначного определения поведения модели), следует сказать, что этот вид модели реализован практически во всех программных средствах моделирования, возможно, с использованием других терминов и при дополнительных ограничениях и уточнениях. Несмотря на указанную общность, различают два типа алгоритмических моделей, что связано со следующими обстоятельствами. В моделях одного типа ej отражают реальные события, происходящие в системе, — отказы элементов, взлет самолетов, окончание или начало некоторых операций и т. п. Именно последовательность указанных событий составляет существо функционирования системы. В этом случае динамика модели фактически повторяет динамику системы, т. е. переход от одного события к другому. Говорят, что соответствующая алгоритмическая модель носит событийный характер. В моделях другого типа события вводятся искусственно вследствие необходимости представить некоторый непрерывный процесс в дискретной ЭВМ. Характерным примером является любой численный метод интегрирования дифференциальных уравнений. В подобных методах моменты наступления событий определяются шагом интегрирования. Шаг интегрирования либо назначается постоянным, либо, если это необходимо, изменяется в соответствии со специально установленным механизмом. Методы этого типа называют поэтому пошаговыми. При их использовании ди- 53
намика модели является дискретным приближением реальных не- прерывных-проиессов. Остановимся на одной важной особенности указанного алгоритмического представления. Вследствие последовательного характера обработки информации в вычислительной однопроцессорной машине параллельные процессы, происходящие в модели, преобразуются с помощью обсуждаемого алгоритма в последовательные. Такой способ представления носит название квазипараллельного процесса. Противоречие между параллельностью модельных процессов и последовательным характером квазипараллельного процесса является причиной их неполного соответствия. Выше мы пренебрегли возможностью одновременного наступления двух или более событий. Представим теперь, что такая возможность допускается. Тогда для задания квазипараллельного процесса определить реакции модели на каждое из событий недостаточно, необходимо указать еще, в какой последовательности модель должна реагировать на происходящие одновременные события, так как в моделирующем алгоритме они обрабатываются последовательно. Эта проблема не возникает, если реакция модели не зависит от порядка наступления событий (коммутативность событий). В противном случае возникающие проблемы могут быть разрешены только путем задания необходимого порядка обработки одновременных событий. Иногда предварительный теоретический анализ позволяет пренебречь возможностью одновременности событий: например, если моделируется однолинейная система массового обслуживания с пуассоновским входящим потоком, то вероятность одновременного поступления заявки и окончания обслуживания равна нулю. Следует, однако, помнить, что при реализации на цифровой машине такие «невозможные» события могут стать вполне реальными вследствие конечности разрядной сетки. Если в моделях событийного типа одновременно наступающие события составляют исключение и не осложняют задачу либо по причине коммутативности событий, либо по причине их маловероятное™, то в моделях пошагового типа одновременные события являются правилом, а не исключением. Поэтому при построении пошаговых моделей значительное внимание должно быть уделено организации обработки одновременных событий. С этой проблемой тесно связан вопрос о выборе шага At: уменьшение шага увеличивает точность воспроизведения траектории модели, уменьшает число одновременно происходящих событий, но приводит к увеличению времени имитации. Ниже будут подробно рассмотрены различные модели сложных систем, находящие практическое применение в моделировании, — агрегативные системы, автоматные модели, сети Петри, модели системной динамики. Все эти модели укладываются в приведенную выше схему.
ГЛАВА 2 АГРЕГАТИВНЫЕ МОДЕЛИ 2.1. КУСОЧНО-ЛИНЕЙНЫЙ АГРЕГАТ В 60-х годах Н. П. Бусленко и И. Н. Коваленко [1—3, 6] ввели класс моделей сложных систем, названных ими агрегатив- ными, поскольку основным элементом построения таких моделей был кусочно-линейный агрегат (КЛА). Эти модели обладают рядом привлекательных свойств, позволяющих использовать их в рамках предложенной в п. В.2 схемы исследования сложных систем. В последующие годы интенсивно исследовались их структурные и поведенческие свойства, созданы имитационные системы, базирующиеся на понятии агрегативной модели. В отличие от упомянутых выше работ приводимые ниже определения и конструкции даются в форме, максимально приближенной к программной реализации. Дадим сначала определение КЛА. КЛА относится к классу объектов, которые принято изображать в виде преобразователя (рис. 2.1), функционирующего во времени / ? Т = [0, оо) и способного воспринимать входные сигналы х со значениями из некоторого множества X, выдавать выходные сигналы у со значениями из множества Y и находиться в каждый момент времени в некотором состоянии z из множества Z. Класс КЛА отличает специфика множеств X, Y, Z, допустимые формы входных и выходных сообщений (т. е. функций х (t) и у (t), t ? Т), траекторий г (/), t ? Т, а также способ преобразования входного сообщения в выходное. Приступим к указанной конкретизации. Прежде всего отметим, что динамика КЛА носит «событийный» характер (см. п. 1.3). В КЛА могут происходить события двух видов: внутренние и внешние. Внутренние заключаются в достижении траекторией КЛА некоторого подмножества Z* с: Z состояний; внешние — в поступлении входного сигнала. Предполагается, что моменты поступления входных сигналов в КЛА образуют неубывающую последовательность, т. е., по определению, исключается случай поступления непрерывных сигналов, характерных, скажем, для систем, описываемых дифференциальными уравнениями. Точно также предполагается, что последовательные моменты достижения траекторий г (t) подмножества Z* изолированы друг от друга. Траектории \z (t)\ считаются непрерывными справа и имеющими пределы слева в каждый момент времени. бб
х Рис. 2.1. Общий вид преобразователя Между событиями состояние КЛА изменяется детерминированным образом. Если в некоторый момент t состояние zt = 2, то в момент времени /' == t + 6, 6 > 0 (если на промежутке (/, ?) не наступает никакого события) Zf = T$zy где Г0 — полугрупповой оператор: TQl-LQt — Т0гТ02. Для КЛА оператор Г0 имеет очень простой вид. Каждому состоянию z ставится в соответствие величина т = — т (z), трактуемая как потенциальное время до наступления очередного внутреннего события: т = т(г) = inf {^: Ttz?Z*}. B.1) На основании определения B.1) и с учетом полугруппового свойства оператора 70 для любых 8 и г таких, что 8 < т (г), можно записать т (Tdz) = т (z) — 0. Если t* — момент наступления внутреннего события и z* = = limzt?Z*, то состояние КЛА в момент t* является слу- t\t* чайным, зависящим лишь от z* и не принадлежащим Z*. Последнее условие гарантирует изолированность моментов наступления внутренних событий. В момент t* выдается выходной сигнал у*, содержание которого зависит лишь от 2*. В частности, выходной сигнал может быть и пустым, т. е. не выдаваться. После случайного скачка вновь определяется время до наступления внутреннего события. Рассмотрим теперь момент ?** поступления входного сигналах. Пусть z** = lim zt. Тогда состояние КЛА в момент ?** изъявляется случайным, зависящим лишь от х и z** и не принадлежащим Z*. В момент /**, вообще говоря, выдается выходной сигнал у**у содержание которого определяется х и z**. Условимся считать, что если моменты наступления внешнего и внутреннего событий совпадают, то изменение состояния осуществляется в соответствии с правилом наступления внешнего события, т. е. входные сигналы имеют приоритет над внутренними событиями. Таким образом, процесс функционирования КЛА полностью определяется изменениями, происходящими в особые моменты времени — моменты наступления событий (внешних или внутренних). Между особыми моментами состояние КЛА меняется детер- минированно в соответствии с оператором Ге. Динамику КЛА можно представить в следующем виде. Пусть в некоторый момент / состояние КЛА равно z. Тогда определяется время т (г) достижения траекторией z (-) особого подмножества Z*. Если в течение времени т (z) на КЛА не поступает вход- 56
xJ-t)J- • /77 Рис. 2.2. Кусочно-линейный агрегат —fr— ных сигналов, то z<+0 = 7V, если / + 0 < / + т (z), а в момент t* = t + т (z) совершается случайный скачок и состояние становится равным Z/* = z' и будет зависеть лишь от предельного значения z* = limz* = Тх B)z. Если в момент ^** < / + т (z) на КЛА поступает входной сигнал х, то в любой момент / + 0 < < /** состояние равно 70z, а в момент /** совершается случайный скачок и состояние становится равным zt** = z'. Это состояние зависит лишь от предельного значения z** = lim zt = = Tt**-iZ и поступившего входного сигнала х. Начиная с момента наступления события (внешнего или внутреннего), ситуация повторяется, и динамика КЛА определяется точно так же, как и ранее. Если грг, \|з2, ... — моменты наступления событий в КЛА, то приведенное выше определение траектории КЛА справедливо в промежутке времени [0, if), где г|? — = limijv Если не существует конечной точки накопления со- бытии, т. е. yjp — оо, то траектория КЛА определена на [0, оо). В противном случае (назовем его нерегулярным) траектория определена лишь до конечного (хотя и случайного) момента \|>. Опишем теперь КЛА более подробно. Будем считать, что множество входных сигналов X представляется в виде т-кратного произведения X = Хг X Х2 х - • х Хт, а множество выходных сигналов Y — в виде n-кратпого произведения Y — Y3 x Y2 x X — • X Yn. Содержательно это означает, что КЛА внешне имеет вид многополюсника с m входными клеммами и п выходными клеммами (рис. 2.2). Отметим, что в общем случае для различных КЛА пгфп. Предположим, что в состав множеств X; и Y; включены и фиктивные элементы 0, наличие которых на входе или выходе КЛА означает отсутствие сигнала на соответствующей входной или (соответственно) выходной клемме. Следовательно, входной сигнал на КЛА имеет вид X = (Х1у Х2, ..., Хт), а выходной У = (Ух> Уъ .... Уп). Нефиктивными входными х( или выходными yj сигналами, а также состояниями z КЛА являются данные. Понятие данного определим рекуррентно. Элементарными данными считаются: целые числа; действительные числа; символьные переменные (литералы). 57
имя F ? Т А Р В С м к б) Тип Структура Целое Структура Список Структура Литерал Лейстбительное Массив целых Литерал Рис. 2.3. Пример данного типа «структура»: а — графическое представление в виде дерева; б — текстовое описание Данными считаются: элементарные данные; списки данных; массивы данных; структуры данных. Здесь термины «список», «массив» употребляются в их обычном смысле. Понятие структуры данных соответствует дереву, на корнях которого размещены данные (рис. 2.3). Каждое данное имеет свое имя. Рассматриваемые данные хорошо отображают содержательные представления, существующие у исследователя относительно реальных объектов, и существенно облегчают процесс построения модели, что будет пояснено ниже, в п. 2.4. Эти данные удобны как с математической, так и с программной точек зрения. Итак, пусть состояние z КЛА определено как некоторая структура. Тем самым фиксирован вид дерева, представляющего эту структуру. Дерево базируется в конечном счете на элементарных данных. Обозначим через 1г элементарные данные, входящие в состояние г и имеющие тип целых чисел и символов, а через Rz — элементарные данные, имеющие действительный тип. При изменении состояния может меняться и количество элементарных данных, составляющих состояние, так как, например, при этом могут изменяться длины некоторых списков. Предположим, что значения и состав элементарных данных могут меняться лишь в особые моменты времени, а между ними остаются постоянными. Разобьем множество Rz на два подмножества Rz — Rt U R?» гДе К? состоит из положительных величин, a Rz — из неположительных. Будем считать, что данные из подмножества Rz остаются неизменными между особыми моментами времени и что моменты наступления внутренних событий определяются лишь данными из RJ. Это отвечает обычно используемой «энергетической интерпретации» причин наступления внутренних событий в моменты, когда исчерпывается некоторый ресурс, оканчивается операция и т. д. Обозначим через Rt (i) /-й элемент множества R? и положим Z* = {z : U (Rt (i) = 0)} — i множество, участвующее в определении внутренних событий. 58 If щбень много 1 F /!\ 2 Е Т К /\\ 3 АРМ / \ ь в с а)
Таким образом» внутреннее событие происходит, когда хотя бы один из положительных элементов множества RJ обращается в нуль. Предположим, что каждое элементарное данное из множества R* изменяется с постоянной скоростью. Обозначим через v* набор этих скоростей (число элементов множества v* равно числу элементов множества RJ). В частности, указанные скорости могут равняться нулю, что соответствует постоянству соответствующих данных. Обозначим через vi (/) /-й элемент множества vj. Тогда, если vi (i) > О, то соответствующая координата Ri (i) будет возрастать (например, увеличивается ресурс) и, следовательно, она не может обратиться в нуль. Такая же ситуация справедлива и для vi (i) = 0. Если vi (i) < 0, то координата Ri (i) обратится в нуль через время т, = —Ri (i)/vi (i). Поэтому время наступления внутреннего события (равное времени достижения траекторией К Л А подмножества Z*) т = т (z) = min {-Ri (i)/vi (i) : vi (i) < 0}. Соответственно оператор T$ имеет вид Toh = '*; TeR-z = Rj; T0Ri = RJ + 9vJ. • Если z* = limef?Z*, то это означает, что в момент t* по t\t* меньшей мере один из элементов RJ обращается в нуль. При таком условии состояние zt* зависит вероятностным образом только от z*. Состояние zt* описывается той же структурой, что и z*, но в общем случае могут изменяться значения элементарных данных, длины списков и т. д. В момент t* определяется выходной сигнал у = (уи y2i ..., уп)у т. е. для каждого / — 1, 2, ..., п проверяется, имеет место равенство у^~ 0 или нет (иначе говоря, выдается ли выходной сигнал с клеммы /). Кроме того, для каждого / такого, что у}ф0, определяется «содержимое» соответствующей структуры. Аналогично задается реакция КЛА на входной сигнал х — = (х1ч х2, ..., хт). Пусть этот сигнал поступает в момент /** и z** = lim zt. В зависимости от входного сигнала (от того, на какие клеммы поступили входные сигналы, и их содержания), а также otz** вероятностным образом определяется состояние zt** и выходной сигнал у — (уи у2, ..., уп). Для пояснения введенных формальных конструкций приведем иллюстративный пример. Пример 2.1. Пусть для решения задач диух классов используется один компьютер. Задачи 1-го класса являются неприоритетными. Каждая такая задача характеризуется двумя показателями: длиной задачи (например, временем счета) и именем пользователя. Задачи 2-го класса помимо этих показателей характеризуются еще типом, включающим в себя приоритет задачи и количество требуемых внешних носителей. Будем считать, что пространство входных сигналов х представляется в виде X г= Хг X Х2, т. е. число входных клемм т ~ 2. Входные сигналы хх (наде- л им нх именем ЗАДАЧА. 1), поступающие на одну клемму, несут'в себе инфор- 59
ЗАДАЧА J ЗАДАЧА 1 „L \*J ЛМНАJ ЫНМ.1ТЫП з^-вход^х^^лП a) / \ и х2 ПРИОРИТЕТ ПАМЯТЬ *) мацию о задачах 1-го класса и являются данными со структурой, состоящей из двух элементарных данных: ДЛИНА, 1 — длина задачи (предположим, что это действительное число) и ИМЯ_ 1 — имя пользователя (литерал) (рис. 2.4, а). Входные сигналы х2 с именем ЗАДАЧА. 2, поступающие на вторую клемму, несут информацию о задачах 2-го класса, являются данными со следующей структурой (рис. 2.4, б): ДЛИНА. 2 — длина задачи (элементарное данное — действительное число); ИМЯ. 2—имя пользователя (элементарное данное — литерал); ТИП — тип задачи (данное, представляющее собой структуру, состоящую из двух элементарных данных); ПРИОРИТЕТ — приоритет задачи — целочисленная величина; ПАМЯТЬ — количество требуемых внешних носителей — целочисленная величина. Предположим, что компьютер обладает бесконечной памятью в том смысле, что может хранить все поступающие на него задачи. Кроме того, компьютер последовательно решает пришед/пие задачи без прерывания — - последовательность обработки задач 2-го класса задается системой приоритетов: чем меньше номер приоритета, тем более приоритетной является задача; задачи 1-го Класса, как говорилось, являются неприоритетными. Решение любой задачи может окончиться либо результатом, либо сбоем ЭВМ. Будем считать, что поток «сбоев» является пуассоновским с параметром X. При сбое задача покидает компьютер с признаком «сбой», а на ее место поступает новая задача. В соответствии с этим состояние КЛА, описывающего работу системы, будем характеризовать следующими показателями: состоянием компьютера (свободен он в текущий момент или занят; если занят, то обслуживанием какой задачи); временем до окончания решения задачи; временем до сбоя; списками задач 1-го и 2-го класса. Определим формально состояние г как структуру (рис. 2.5), имеющую имя СЧЕТ и состоящую из пяти данных: 1) КОМПЬЮТЕР — состояние компьютера: структура, состоящая из двух элементарных данных ЗАГРУЗКА и НОМЕР. ЗАДАЧИ, где ЗАГРУЗКА — целочисленная величина, принимающая значение 0, если компьютер свободен, 1, если он занят обслуживанием задачи 1-го класса, и 2, если он занят обслуживанием задачи 2-го класса; НОМЕР. ЗАДАЧИ — целочисленная величина, равная номеру обслуживаемой задачи 1-го или 2-го классов соответственно в случае, если компьютер занят, и нулю — в случае, если компьютер свободен; 2) ВРЕМЯ. СЧЕТА— время до окончания счета текущей задачи (действительная величина); 3) ВРЕМЯ, СБОЯ — время до очередного сбоя компьютера (действительная величина); 4) КЛАСС. 1 — список задач 1-го класса, записанных в порядке их поступления и находящихся в компьютере — ожидающих счета или считаемых в текущий момент времени; элементами списка являются данные, имеющие структуру данных ЗАДАЧА. 1 (см. рис. 2.4, а); 5) КЛАСС. 2 — список задач 2-го класса, записанных в порядке поступления и находящихся в компьютере — ожидающих счета или считаемых в текущий момент времени; элементами списка являются данные, имеющие структуру данных ЗАДАЧА. 2 (см. рис. 2.4, б). данных ЗАДАЧА. 2 (см. рис. 2.4, б). При таком определении состояния подмножество \z состоит из данных ЗАГРУЗКА, НОМЕР. ЗАДАЧИ и переменных (ИМЯ. 1, ИМЯ_ 2, ПРИОРИТЕТ, ПАМЯТЬ), входящих в состав данных из списков КЛАСС 1 и КЛАСС. 2. 60
СЧЕТ КОМПЬЮТЕР ВРЕМЯ СЧЕТА ВРЕМЯ С60Я КЛАСС 1 КЛАСС 2 ЗА ГРУЗКА НОМЕР_ ЗАДА ЧИ Рис. 2.5. Структурный вид состояния г Остальные переменные составляют подмножество Rz = R* (подмножество R" — пусто). Однако изменяться могут лишь переменные ВРЕМЯ. СЧЕТА и ВРЕМЯ_ СБОЯ —• каждая из них убывает с единичной скоростью (это и определяет вид оператора Tq). Подмножество Z* в данном случае имеет вид Z* - {г : (ВРЕМЯ. СЧЕТА = 0) V (ВРЕМЯ. СБОЯ = 0)}. Опишем возможные переходы КЛА. Пусть в рассматриваемый момент времени на КЛА, находящийся в состоянии г, поступает входной сигнал х — (ЗАДАЧА- 1, ЗАДАЧА- 2), причем хотя бы одна из компонент вектора х непуста. Рассмотрим два случая. Первый — компьютер был занят решением некоторой задачи в рассматриваемый момент времени, т. е. ЗАГРУЗКА ф 0. В этом случае изменение состояния заключается в добавлении к списку КЛАСС- 1 данного ЗАДАЧА- 1, а к списку КЛАСС- 2 — данного ЗАДАЧА-. 2, причем, если, скажем, ЗАДАЧА- 1 = 0, то список КЛАСС- 1 остается неизменным. Второй случай — компьютер свободен, т. е. ЗАГРУЗКА = 0. Тогда, если ЗАДАЧА- 2 Ф 0, то задача 2-го класса поступает на счет, и в соответствии с этим новое значение состояния формируется следующим образом; ЗАГРУЗКА' = 2 (на счет поступает задача 2-го класса); НОМЕР- ЗАДАЧИ' = 1 (поскольку ранее компьютер был пуст, то обслуживается первая по номеру задача из второго списка); ВРЕМЯ- СЧЕТА' — принимает случайное значение, зависящее от содержимого данного ЗАДАЧА- 2: будем считать, что ВРЕМЯ- СЧЕТА' = F (ДЛИНА- 2, ?), где F — заданная (детерминированная) функция, ? — случайная величина с заданным распределением, т. е. время счета задачи зависит лишь от ее «длины»; ВРЕМЯ- СБОЯ' = ВРЕМЯ- СБОЯ; список КЛАСС- Г состоит из одного элемента ЗАДАЧА- 1 (если ЗАДАЧА- 1 = 0, то список КЛАСС- 1 остается пустым); список КЛАСС- 2' состоит из одного элемента ЗАДАЧА- 2. Если ЗАДАЧА. 2=0 (при этом ЗАДАЧА- 1 ф 0), то на счет поступает задача 1-го класса и в этом случае ЗАГРУЗКА' = 1, НОМЕР- ЗАДАЧИ' = 1, ВРЕМЯ- СЧЕТА' = F (ДЛИНА- 1, ?), ВРЕМЯ- СБОЯ' = ВРЕМЯ- СБОЯ, список КЛАСС- Г состоит из одного элемента ЗАДАЧА- 1, список КЛАСС- 2' пуст. Рассмотрим реакцию КЛА на внутренние события: обнуления координат ВРЕМЯ- СЧЕТА и ВРЕМЯ- СБОЯ. Пусть в некоторый момент t* произошел сбой компьютера: ВРЕМЯ- СБОЯ = = 0. Возможны следующие случаи. I. Компьютер свободен, т. е. ЗАГРУЗКА = 0. В этом случае определяется лишь новое значение ВРЕМЯ- СБОЯ' = Е\ (?\ — экспоненциально распределенная случайная величина с параметром Я), а остальные координаты не меняются. II. Компьютер занят счетом задачи 1-го класса: ЗАГРУЗКА = 1. В этом случае новое состояние г' определяется по следующему правилу. II. 1. Рассматриваемая задача была единственной в компьютере (список КЛАСС- X состоит только из одной задачи, а список КЛАСС- 2 пуст). Тогда ЗАГРУЗКА' = О, НОМЕР- ЗАДАЧИ' = О, ВРЕМЯ- СЧЕТА' = оо, ВРЕМЯ- СБОЯ' = Ekt КЛАСС- 1 = 0, КЛАСС- 2=0. 61
11.2. В компьютере кроме рассматриваемой имеются лишь задачи 1-го класса (список КЛЛССА_ 2 пуст). Тогда ЗАГРУЗКА' = 1, НОМЕР- ЗАДАЧИ' = 1 (обслуживается всегда первая из пришедших задач 1-го класса), ВРЕМЯ-. СЧЕТА' = F (ДЛИНА- Г, !•), где ДЛИНА- Г — соответствующее данное первого элемента списка КЛАСС- 1', ВРЕМЯ- СБОЯ' = ВРЕМЯ- СБОЯ, список КЛАСС- Г получается из списка КЛАСС 1 вычеркиванием его первого элемента; КЛАСС- 2' = КЛАСС- 2=0. Н.З. В компьютере имеется по меньшей мере одна задача 2-го класса, т. е. КЛАСС- 2Ф&. Тогда ЗАГРУЗКА' = 2; в качестве значения НОМЕР- ЗАДАЧИ' берется наименьший номер такой задачи из списка КЛАСС- 2, которая имеет наивысший приоритет. ВРЕМЯ- СЧЕТА' = F (ДЛИНА. 2', ?), где ДЛИНА_ 2' — соответствующее данное для найденной задачи из списка КЛАСС- 2'; ВРЕМЯ- СБОЯ' = = Е\\ список КЛАСС- Г получается из списка КЛАСС- 1 вычеркиванием его первого элемента: КЛАСС- 2' = КЛАСС- 2. III. Компьютер занят счетом задачи 2-го класса, т.е. ЗАГРУЗКА = 2. В этом случае новое состояние определяется по правилам, аналогичным приведенным в п. II. III. 1. Рассматриваемая задача была единственной в компьютере: ЗАГРУЗКА' = О, НОМЕР- ЗАДАЧИ7 = О, ВРЕМЯ- СЧЕТА' = оо, ВРЕМЯ- СБОЯ' - Яь КЛАСС- 1 = 0, КЛАСС- 2' = 0. II 1.2. В компьютере кроме рассматриваемой имеются лишь задачи 1-го класса — переход полностью аналогичен описанному в п. II.2: ЗАГРУЗКА' = 1; НОМЕР- ЗАДАЧИ' = 1; ВРЕМЯ- СЧЕТА = F (ДЛИНА- Г, I); ВРЕМЯ- СБОЯ' = Ек\ КЛАСС 1' = КЛАСС- 1; КЛАСС- 2' = 0. III.3. В компьютере кроме рассматриваемой имеется по меньшей мере одна задача 2-го класса: список КЛАСС- 2' получается из списка КЛАСС- 2 вычеркиванием элемента с номером ПОМЕР- ЗАДАЧИ; ЗАГРУЗКА' = 2; в качестве значения НОМЕР- ЗАДАЧИ' берется наименьший номер такой задачи из списка КЛАСС- 2, которая имеет наивысший приоритет; ВРЕМЯ- СЧЕТА' = F (ДЛИНА- 2', ?); ВРЕМЯ- СБОЯ' = Ех; КЛАСС 1' - КЛАСС- 1. Пусть теперь в момент t* окончился счет задачи. При этом возможны следующие случаи. IV. Окончился счет задачи 1-го класса. IV. 1. Рассматриваемая задача была единственной в компьютере: переход описан в п. II.1. IV.2. В компьютере кроме рассматриваемой имеются лишь задачи 1-го класса: переход описан в п. II. 1. IV.3. В компьютере имеется по меньшей мере одна задача класса 2: переход описан в п. П.З. V. Окончился счет задачи 2-го класса. V.I. Рассматриваемая задача была единственной: переход описан в п. III. 1. V.2. В компьютере кроме рассматриваемой имеются лишь задачи 1-го класса: переход описан в п. II 1.2. V.3. В компьютере кроме рассматриваемой имеется по меньшей мере одна задача 2-го класса: переход описан в п. II 1.3. Выходные сигналы у выдаются либо в моменты окончания счета задачи, либо в момент сбоя компьютера. Будем считать, что КЛА имеет три выходные клеммы (я — 3) и Y = Ya X X Y2 X Y8. С первой выходной клеммы снимается сигнал уг в случае IV; при этом содержание (структура) сигнала ух тождественно содержанию вычеркиваемого элемента списка КЛАСС- 1. Со второй выходной клеммы снимается сигнал у2 в случае V; содержание у2 тождественно содержанию вычеркиваемого элемента списка КЛАСС- 2. С третьей выходной клеммы снимается сигнал у3 в случаях II и III. Выходной сигнал у3 является литералом. В случае II в качестве yz выступает данное ИМЯ- 1, равное вычеркиваемому элементу списка КЛАСС 1. В случае III 62
в качестве у3 берется данное ИМЯ- 2, равное вычеркиваемому элементу списка КЛАСС- 2. При описании динамики КЛА мы пренебрегли возможной одновременностью окончания обслуживания и поступления задачи или окончания обслуживания и сбоя компьютера — в естественных предположениях вероятность их одновременного наступления равна нулю, С учетом этого замечания динамика КЛА описана полностью. 2.2. СХЕМА СОПРЯЖЕНИЯ. АГРЕГАТИВНАЯ СИСТЕМА Формализуем понятие структуры сложной системы [1, 2]. Пусть si — (Аг, Л2, ..., AN) — множество КЛА, N — фиксированное число. Обозначим через I,- — множество входных клемм КЛА Аи а через О; — множество его выходных клемм. Пусть N N I = [J I-; . О = U О; — множества входных и выходных клемм всех рассматриваемых КЛА. Рассмотрим множество 31 всех возможных отображений R9 I -> О, которое можно интерпретировать как множество потенциальных соединений между собой КЛА, входящих в Л. Именно, каждой входной клемме из I ставится в соответствие выходная клемма, с которой на входную клемму поступает сигнал. При этом допускается, что некоторым из входных клемм не ставятся в соответствие никакие выходные, т. е. на эти входные клеммы не поступают никакие сигналы. Точно так же некоторые выходные клеммы могут быть «висячими»: сигналы с этих клемм могут никуда не поступать. Таким образом, на каждую входную клемму подаются сигналы не более чем с одной выходной клеммы. В то же время с одной выходной клеммы сигналЕЛ могут идти на несколько различных входных клемм. Однако не всякое отображение из Ж реализуемо. Действительно, пусть отображение R из 01 ставит в соответствие /-й входной клемме агрегата At [назовем ее (/, /)-входом] r-ю выходную клемму агрегата Aj [назовем ее (/, г)-выходом]. Каждому (*, /)-входу соответствует множество Х<*,/) допустимых значений воспринимаемых входных сигналов (см. п. 2.1). Точно так же каждому (/, л)-выходу соответствует множество Y(/,r) допустимых значений снимаемых выходных сигналов. Тогда необходимым условием того, что (i, Л-вход может воспринять сигнал с (/, л)-выхода, является соотношение Y(/,r)CX(U). B.2) Если (i, Л-входу не соответствует никакая выходная клемма, то будем считать соотношение B.2) выполненным автоматически. Назовем отображение R допустимым, если для каждого (I, Л-входа из его области определения выполнено соотношение B.2). Любое допустимое отображение R ? 5Z назовем схемой сопряжения. Схема сопряжения указывает адресацию сигналов в системе, состоящей из КЛА. 63
Рис. 2.6. Агрегативная система с возможной неоднозначностью реакции Если (/, г)-выход является значением отображения R (t, /)-входа и при этом отображение R является схемой сопряжения, то будем говорить, что между (/, г)-выходом и (t, /)-входом проложен канал связи. Однако задать состав агрегатов А и схему сопряжения R еще недостаточно для однозначного определения динамики получившейся системы. Предположение 1. Каналы связи в системе, состоящей из КЛА, являются идеальными, т. е. передающими сигналы мгновенно и без искажений. Данное предположение весьма удобно как с математической, так и с программной точек зрения. Отметим, что хотя предположение 1 сужает круг рассматриваемых моделей, мы можем учесть возможные задержки и искажения, присутствующие в реальной системе, введя дополнительные КЛА, отображающие эти особенности реальных каналов связи. Но и предположения 1 еще недостаточно для определения динамики модели. Поясним причину этого следующим примером. Пусть модель состоит из трех КЛА: si = (Л1? Л2, Л3). КЛА Аг является автономным, не имеющим входных клемм и имеющим одну выходную клемму. КЛА Л2 имеет две входные и одну выходную клемму, а КЛА А3 имеет одну входную и одну выходную клеммы. Схема сопряжения R изображена на рис. 2.6. Пусть, по предположению, каждый из агрегатов Л2 и Л3 в ответ на поступление любого входного сигнала мгновенно выдает выходной сигнал. Тогда налицо неопределенность. В самом деле, пусть КЛА Лх выдал выходной сигнал yit который в соответствии со схемой сопряжения поступает па B, 1)-вход агрегата Л2 и C, 1)-вход агрегата Л3. Мгновенно Л3 выдает выходной сигнал с C, 1)-выхода, который также мгновенно поступает на B, 2)-вход агрегата Л2. Как должен реагировать агрегат Л2? Он может сначала отреагировать на сигнал (у1у 0) и затем (через нулевой промежуток времени) выдать второй выходной сигнал в ответ на поступление сигнала @, уг). В этом случае реакция Л2 состоит в выдаче пары выходных сигналов. Можно также считать, что на Л2 поступил сигнал (y2t y3), и определить реакцию на него. Введенные выше понятия не позволяют разрешить эту неопределенность. Отметим, что подобная «состязательная» ситуация возникает также и в других известных формализациях, например сетях Петри [9, 11 ]. 64 Н>1 ->-f
Данное противоречие можно разрешить с помощью следующего предположения, которое отвечает принципу причинности, хотя и не является единственно возможным (в частности, описываемая далее реализация агрегативнои имитационной системы допускает и другие возможные решения). Предположение 2. Сигналы в системе из взаимодействующих КЛА обрабатываются следующим образом. Пусть в некоторый момент времени в модели возникли выходные сигналы ух, у2, ..., г/^, которые назовем сигналами первой стадии. Упорядочим эти сигналы по номерам агрегатов и номерам выходных клемм. В пределах одного агрегата нумерация сигналов соответствует нумерации клемм. На основании схемы сопряжения R определим адреса сигналов и последовательно найдем реакции на них. Если при этом будут выданы выходные сигналы, то назовем их сигналами второй стадии и т. д. Все указанные реакции осуществляются в один и тот же момент системного времени. В соответствии с такой постадийной обработкой в приведенном выше примере (см. рис. 2.6) будет реализован первый вариант реакции системы. Схема сопряжения в совокупности с предположениями 1 и 2 полностью определяет динамику агрегативнои системы. Правда, легко привести примеры систем, у которых реакция может состоять из счетного числа стадий. Это будет, в частности, означать, что моделирующая программа не продвинется далее момента осуществления подобной реакции, а сам этот момент является точкой накопления событий (нерегулярность). Мы описали агрегативную систему с постоянной схемой сопряжения. Легко видеть, что в приведенных построениях ничего не изменится, если предположить, что схема сопряжения R меняется всякий раз при наступлении очередного системного события и ее вид зависит лишь от состояния системы непосредственно перед наступлением события. При этом получим систему с переменной структурой. Определенные выше агрегативные системы обладают важным свойством замкнутости, заключающимся в том, что агрегативная система в целом может быть описана в виде КЛА [1]. Данный факт интуитивно понятен и здесь не доказывается. Следовательно, и объединение конечного числа агрегативных систем также является агрегативнои системой. Это является одной из основ проведения структурных преобразований с агрегативными системами и их моделирующими алгоритмами. 2.3. ЧАСТНЫЕ СЛУЧАИ АГРЕГАТИВНЫХ СИСТЕМ Некоторое представление о возможностях агрегативнои формализации могут дать приведенные ниже два примера, показывающие ее естественность. 3 П/р С. В. Емельянова 65
Пример 2.2. Рассмотрим модель общего инициального асинхронного вероятностного автомата. Эта модель находит применение при моделировании разнообразных систем и, особенно, производственных [12]. Она во многом родственна обычным автоматам, не имеет жесткой тактности и обладает пространствами состояний, входов и выходов достаточно общей природы. Итак, рассмотрим объект, воспринимающий поток входных сигналов, принимающих значения из пространства X. Кроме того, объект может выдавать поток выходных сигналов — эти сигналы принимают значения из пространства Y. Назовем моменты поступления входных сигналов и моменты выдачи выходных сигналов (некоторые из этих моментов совпадают) особыми, В каждый момент времени i ? [0, оо) объект характеризуется внутренним состоянием г (/), принимающим значения из пространства Z. Между особыми моментами состояние z (t) сохраняет постоянное значение, а в особые моменты претерпевает случайные скачки. Опишем динамику данного объекта. Пусть непосредственно перед некоторым моментом времени t состояние равно г и в момент t поступил входной сигнал х. Тогда состояние г (t) принимает случайное значение г'', зависящее лишь от пары (z, *). Обозначим такой переход где F^ — некоторая функция, в которой индекс является случайным элементом, не зависящим от динамики объекта. В этот же момент /, вообще говоря, выдается выходной сигнал у', зависящий от z и х случайным образом: У' = G(s>t (*> *)• Иногда бывает удобно считать, что значение у зависит от г' их: Однако, как нетрудно видеть, этот случай сводится к предыдущему: у' = G;, (г', х) = G'a, (Fe, (г, л), х) = G"(e,. <м (z, x). Кроме того, в момент t вырабатывается положительная величина т' = т (г'), имеющая смысл времени до наступления будущего события в рассматриваемом объекте. Если до момента / + т/ на объект снова поступит входной сигнал, то состояние вновь изменится по уже описанному закону. Если же до момента / + т' входной сигнал не поступает, то в момент / + т' совершается «автономный» скачок состояния из г' в г". Без ограничения общности можно считать, что при этом «*=*•,(*'.0). где 0 — некоторое фиктивное значение. Аналогично в этот момент выдается выходной сигнал у" = G^ (z', 0) и вырабатывается новое значение т" = т (z*). Недостатком данной формализации является то, что текущее состояние не содержит исчерпывающей информации о будущем объекта — для такого прогноза приходится вводить величину т, которую более естественно считать частью состояния, и в таком случае получается КЛА. Определим состояние КЛА как пару гА = (г, G), где г — введенное выше состояние, а 0 — неотрицательная координата, имеющая смысл времени, оставшегося до очередного изменения состояния при условии, что входные сигналы не поступают. Входные н выходные сигналы КЛА хА и уА соответственно определим: хА — х\ уА — у. Особыми моментами для КЛА будут моменты поступления входных сигналов и моменты, когда действительная координата 0 обнуляется. Между особыми моментами координата 8 убывает с единичной скоростью, 66
Рис. 2.7. Многолинейная модель обслуживания как агрегативная система а остальные координаты неизменны. Если в момент t на КЛА поступает входной сигнал х и zA (t—0) = (z, 6), то zA (t) = (z , О') и выдается выходной сигнал у'. Здесь *' = Рщ (*, х); 6 = т (z') = т (Ftti (z, x)); У' = G(D| (z, x). Если 6 (f — 0) = 0, то гА (t) = (г", б") и выдается выходной сигнал у \ Здесь * = F*t (*, 0); в*-т @ = ^(^B, 0)); / = <Ч (z, 0). Таким образом, полученный КЛА полностью соответствует исходному автомату и отличается от последнего лишь тем, что время т внесено в состав состояния (множество R+ состоит из единственной координаты 6). Заметим, что в действительности любому КЛА произвольного вида можно поставить во взаимно однозначное соответствие КЛА специального вида (с одной обнуляющей координатой) так, что координаты одного из агрегатов могут быть однозначно восстановлены по координатам другого [2]. Таким образом, общий инициальный асинхронный вероятностный автомат по степени общности эквивалентен КЛА. Пример 2.3. При описании производственных, вычислительных, транспортных и других систем широко используются модели массового обслуживания. Формального определения этих моделей не существует. Поэтому ограничимся описанием ряда элементов, являющихся типичными составляющими моделей обслуживания, не претендуя ни в коей мере на исчерпывающую полноту. Следует также отметить, что приводимые формализации не являются единственно возможными. Очередь. Одним из основных элементов моделей обслуживания является очередь, или накопитель, работающий следующим образом. Приходящие заявки, характеризуемые каким-либо набором параметров, выстраиваются в порядке их поступления. По сигналу, получаемому от других элементов (например, приборов), накопитель выдает очередную заявку во вне. Если в момент получения такого сигнала очередь пуста, то сигнал запоминается очередью и заявка во вне выдается в момент ее поступления в очередь. Если в пустую очередь поступают несколько сигналов о выдаче заявок, то они удовлетворяются по мере их поступления. Дополнительно предположим, что в момент поступления заявки в очередь формируется случайное время ?, имеющее функцию распределения F и являющееся предельно допустимым временем пребывания заявки в очереди, по истечении которого заявка теряется. Опишем данную очередь как КЛА с именем НАКОПИТЕЛЬ (рис. 2.7). Будем считать, что он имеет две входные клеммы /, 2. На клемму 1 поступают сигналы о пришедших заявках, а на клемму 2— о требованиях на заявки соответственно. Агрегат имеет также две выходные клеммы. С выходной клеммы 2 снимаются сигналы о заявках, ушедших на обслуживание, а с клеммы / — сигналы о потерянных заявках. Поскольку здесь информация о заявке нас не интересует, то скажем лишь, что она будет представлена как произвольное данное, 3* 67
имеющее имя ЗАЯВКА (неважно, какой структуры). В соответствии с этим и входной сигнал, поступающий на входную клемму 7, будет иметь вид данного ЗАЯВКА. Будем считать, что сигнал, поступающий на клемму 2, является литералом и имеет имя ТРЕБОВАНИЕ. С обеих выходных клемм снимаются сигналы, имеющие структуру данных ЗАЯВКА и содержащие полную информацию об ушедших нли потерянных заявках. Назовем внутреннее состояние КЛА НАКОПИТЕЛЬ именем ОЧЕРЕДЬ и определим его как данное следующей структуры: ОЧЕРЕДЬ = (ОЧТРЕБ, ОЧЗАЯВ), где ОЧТРЕБ — целочисленная переменная, принимающая значения 0,1,2, ...и имеющая смысл накопленного числа требований на заявки; ОЧЗАЯВ — список. Элементами списка ОЧЗАЯВ являются пары вида (ВРЕМЯ, ЗАЯВКА), где ВРЕМЯ — неотрицательная величина, имеющая смысл времени, оставшегося до потери данного ЗАЯВКА, т. е. ОЧЗАЯВ хранит всю информацию о содержащихся в очереди заявках и времени их жизни. Длина списка ОЧЗАЯВ равна, очевидно, числу заявок в очереди. Множество действительных величин из списка ОЧЗАЯВ, имеющих имя ВРЕМЯ, составляют множество R+. Опишем динамику КЛА НАКОПИТЕЛЬ. Штрихами будем отмечать состояние КЛА после наступления какого-либо события. Внешними событиями являются поступления сигналов на входные клеммы, а внутренними — обнуления координат из множества R+. Если КЛА находится в состоянии ОЧЕРЕДЬ в момент f, то все элементарные данные из этого состояния сохраняют свое значение и далее, кроме координат из множества R+, которые убывают с единичной скоростью. Указанное изменение происходит до ближайшего (после /) момента наступления события. Если на КЛА, находящийся в состоянии ОЧЕРЕДЬ, поступает сигнал ЗАЯВКА (на входную клемму /), то происходят следующие изменения: а) в случае ОЧТРЕБ = 0 (требований на заявки нет) список ОЧЗАЯВ пополняется новой парой (ВРЕМЯ, ЗАЯВКА), где ВРЕМЯ — случайная величина с функцией распределения F, а ЗАЯВКА — содержимое поступившего входного сигнала; остальные координаты не меняются и выходной сигнал не выдается; б) в случае ОЧТРЕБ Ф 0 получаем ОЧТРЕБ = ОЧТРЕБ— 1 (одно требование удовлетворяется), остальные координаты не меняются, т. е. ОЧЗАЯВ = = 0; с выходной клеммы 1 выдается выходной сигнал ЗАЯВКА, содержание которого совпадает с содержанием поступившего входного сигнала. Если поступил сигнал ТРЕБОВАНИЕ (на входную клемму 2), то происходят следующие изменения: а) в случае ОЧЗАЯВ Ф 0 (список заявок не пуст) новый список ОЧЗАЯВ образуется из старого удалением первой пары (ВРЕМЯ, ЗАЯВКА), прн этом второй элемент этой пары ЗАЯВКА выдается в качестве выходного сигнала с выходной клеммы 2; остальные координаты не меняются; б) в случае ОЧЗАЯВ = 0 полагаем ОЧТРЕБ'= ОЧТРЕБ + 1, ОЧЗАЯВ' = 0. Если произошло внутреннее событие н обнулялась координата ВРЕМЯ у i-й пары списка ОЧЗАЯВ, то новый список ОЧЗАЯВ получается из старого удалением указанной i-й пары (ВРЕМЯ, ЗАЯВКА), второй элемент этой пары выдается в качестве сигнала с выходной клеммы У, остальные координаты остаются без изменения. Динамика КЛА НАКОПИТЕЛЬ описана полностью. Аналогичным образом можно получать КЛА, описывающие очереди с другими дисциплинами. Например, для реализации дисциплины «первым пришел — последним обслужен» достаточно в реакции КЛА иа поступление входного сиг-' нала ТРЕБОВАНИЕ в п. а) вычеркнуть из списка ОЧЗАЯВ не первую, а последнюю пару. Обслуживающий узел. Назовем обслуживающим узлом совокупность из N < оо приборов обслуживания, из которых i-й прибор характеризуется случайным временем обслуживания г\ с функцией распределения 6( (х). Заявка, поступающая на узел, занимает прибор, освободившийся от обслуживания раньше всех. 68
Опишем работу узла с помощью КЛА с именем УЗЕЛ. Положим, что он имеет одну входную клемму (на которую поступают сигналы об обслуживаемых заявках) и две выходные клеммы, с которых снимаются сигналы об обслуживаемых заявках (клемма У) и о требовании новой заявки на обслуживание (клемма 2). В соответствии с этим будем считать, что на входную клемму поступает сигнал, имеющий вид данного ЗАЯВКА, и аналогичный сигнал снимается с выходной клеммы 7. С выходной клеммы 2 снимается сигнал вида ТРЕБОВАНИЕ. Назовем внутреннее состояние КЛА УЗЕЛ именем УЗ н положим, что данное УЗ представляет собой следующую структуру: УЗ = (ОБСЛУЖ, СВОБОДЕН). Данное ОБСЛУЖ является массивом (размерности N) данных типа (ОСТ- ВРЕМЯ, ЗАЯВКА), при этом i-й элемент массива отвечает /-му обслуживающему прибору. Величина ОСТ_ ВРЕМЯ является действительной и имеет смысл остаточного времени обслуживания. Данное ЗАЯВКА хранит всю информацию об обслуживаемой на i-м приборе заявке. В случае, если /-и прибор свободен, соответствующий элемент массива полагается пустым. Данное СВОБОДЕН является списком целых чисел. В нем записаны номера свободных приборов в порядке их освобождения. Если свободных приборов нет, то список пуст. Множество переменных, определяющих наступление внутренних событий, состоит из всех данных с именем ОСТ_ ВРЕМЯ, входящих в массив ОБСЛУЖ- В промежутках между событиями эти переменные убывают с единичной скоростью, а остальные данные остаются неизменными. Опишем реакцию КЛА УЗЕЛ на события. Если на входную клемму поступил сигнал ЗАЯВКА, а КЛА находился в состоянии УЗ, то: а) в случае, если список СВОБОДН пуст (нет свободных приборов), то УЗ' = УЗ (узел не реагирует на поступившую заявку); б) в случае, если СВОБОДН Ф 0, то новый список СВОБОДН' получается из старого удалением первого элемента (пусть этот элемент имеет значение 1 ^ ^ i ^ N, т. е. поступающую заявку следует посылать на i-Pi прибор); t-й элемент массива ОБСЛУЖ принимает значение (ОСТ_ ВРЕМЯ, ЗАЯВКА), где ОСТ- ВРЕМЯ равно случайной величине с распределением Gf, а заявка является данным, совпадающим с входным сигналом; остальные координаты не изменяются. Если в i-м элементе массива ОБСЛУЖ обиулилась координата ОСТ_ ВРЕМЯ (окончилось обслуживание заявки на i-м приборе), то новый массив ОБСЛУЖ' получается из массива ОБСЛУЖ занесением в его t-й элемент пустого символа. Список СВОБОДН' получается из СВОБОДН добавлением элемента, имеющего значение i, в конец списка (если СВОБОДН = 0, то список СВОБОДН состоит из единственного элемента i). Остальные координаты не меняются. С выходной клеммы снимается сигнал, значение которого равно значению i-ro элемента ЗАЯВКА массива ОБСЛУЖ. С выходной клеммы 2 КЛА УЗЕЛ снимается сигнал ТРЕБОВАНИЕ. КЛА УЗЕЛ описан полностью. Даже описанные два КЛА позволяют строить разнообразные модели обслуживания. Например, агрегативная система, изображенная на рис. 2.7, моделирует многолинейную систему с «нетерпеливыми» заявками. Если в КЛА НАКОПИТЕЛЬ переменные ВРЕМЯ полагать равными оо, то получим модель с ожиданием («терпеливыми» заявками) и надобность в выходной клемме 1 КЛА НАКОПИТЕЛЬ отпадает. Описанные модели могут служить элементами сетей массового обслуживания. Мы не останавливаемся на возможных упрощениях. Приведенные примеры дают представление о способах формализации моделей обслуживания в агрегативном виде. Неоднозначность такой формализации дает дополнительную свободу исследователю, которую можно использовать для определенных 69
целей (обеспечения простоты и наглядности представления, компактности модели и т. п.)» Отметим одно чрезвычайно важное обстоятельство, которому обычно придают мало значения. Выбор координат и сигналов агрегативной системы диктуется не только самой формализацией (здесь должно быть выполнено лишь ограничение: перечень текущих значений координат должен быть исчерпывающим для прогноза будущих их значений — марковское свойство), но и задачами исследования модели. Например, в модели на рис. 2.7 через выбранные координаты легко найти такие характеристики, как текущая длина очереди, накопленное число потерянных заявок, загрузка приборов и т. п. Однако время ожидания заявки выражается только через траектории модели (а не через значения состояний), поэтому его вычисление затруднено. Чтобы избежать этих трудностей, в число координат можно включить, к примеру, время, проведенное заявкой в очереди, что решило бы проблему. Таким образом, набор вводимых координат должен быть согласован с изучаемой задачей. 2.4. ПРИМЕРЫ ПОСТРОЕНИЯ АГРЕГАТИВНЫХ МОДЕЛЕЙ Доведем модель, рассмотренную в примере 1.1, до агрегативной формализации. При этом, по сути, будет проиллюстрирована технология построения агрегативных моделей, ее согласованность с технологией построения концептуальных моделей. Напомним, что на этапе построения концептуальной модели производственно- организационной системы строительства ГЭС нами были выделены три компоненты: бетонный завод, перевозка бетона, укладка бетона. Построим агрегативные модели всех этих компонент в соответствии с требованиями, сформулированными в п. 1.2. Агрегативная модель БЗ. В п. 1.2 был перечислен ряд факторов, учитываемых при анализе работы БЗ: состав очереди автотранспорта иа погрузку; возможность выпуска бетона различных марок на N независимо работающих секциях; вероятностно-временные характеристики процесса приготовления бетона. Одной из важнейших характеристик является время пребывания бетоновозов иа БЗ. Определим КЛА с именем БЗ следующим образом. Зададим данное БЕТОНОВОЗ как структуру, содержащую необходимую информацию о реальном бетоновозе, — его типе, вместимости, скорости и т. д. Перечень характеристик выбирают, исходя из конкретной задачи исследования, н здесь нет нужды его конкретизировать. Отметим лишь, что помимо чисто технических характеристик в состав данного БЕТОНОВОЗ могут входить такие вспомогательные величины, как число выполненных рейсов, суммарная текущая наработка, продолжительности выполненных рейсов по перевозке бетона, требуемая марка бетона, адрес н т. п. Будем считать, что КЛА БЗ содержит одну входную н одну выходную клеммы. На входную клемму поступают сигналы вида БЕТОНОВОЗ. Определим внутреннее состояние как данное с именем ЗАВОД, имеющее следующую структуру: ЗАВОД = (ОЧЕРЕДЬ, СЕКЦИИ). Здесь ОЧЕРЕДЬ является списком данных вида (ВРЕМЯ, БЕТОНОВОЗ). ВРЕМЯ — действительная переменная, имеющая смысл времени, проведенного самосвалом, который описывается данными БЕТОНОВОЗ, в очереди на погрузку, а список ОЧЕРЕДЬ описывает существующую очередь на погрузку; если очереди нет, то список ОЧЕРЕДЬ полагается пустым. 70
Компонента СЕКЦИИ является массивом (размерности М) данных следующего вида (ВРЕМЯ- 1, БЕТОНОВОЗ, ЗАГРУЗКА, МАРКА), где данные ВРЕМЯ- 1, ЗАГРУЗКА — действительные числа, имеющие смысл времени, которое самосвал провел на БЗ, и времени, оставшегося до окончания погрузки; МАРКА (целое число) — номер приготовляемой марки бетона. Если секция с номером i пуста, то в i-м элементе массива СЕКЦИИ полагаем данные ВРЕМЯ- 1, БЕТОНОВОЗ, ЗАГРУЗКА пустыми, а целое число МАРКА —равным номеру последней выпущенной марки бетона. Изменяемыми данными, составляющими множество Rz, являются ВРЕМЯ, ВРЕМЯ- 1, ЗАГРУЗКА, из которых первые два возрастают, а последнее — убывает с единичной скоростью между моментами наступления событий. Таким образом, множество RJ координат, определяющих наступление внутренних событий, состоит лишь из данных ЗАГРУЗКА. С выходной клеммы будем выдавать сигнал УХОД = (ВРЕМЯ- 1, БЕТОНОВОЗ), первая компонента которого фиксирует время, проведенное на БЗ ушедшим бетоновозом, а вторая —- его характеристики. Опишем теперь реакции КЛА БЗ на происходящие события. Событие ех — поступление входное сигнала БЕТОНОВОЗ. Пусть в массиве СЕКЦИИ имеется хотя бы один элемент ВРЕМЯ- 1, принимающий «пустое» значение, и пусть номер этого элемента равен i ^ N (при наличии нескольких номеров в качестве i выбираем наименьший из них). В этом случае пришедший самосвал будет направлен для погрузки в t-ю секцию. Новые значения составляющих состояния следующие: ОЧЕРЕДЬ' = ОЧЕРЕДЬ =* 0; в массиве СЕКЦИИ изменяется только 1-й элемент, а именно в нем полагается ВРЕМЯ- 1' = 0 (поступивший самосвал сразу встал на погрузку и время, проведенное им на БЗ, равно нулю); данное БЕТОНОВОЗ совпадает с соответствующим данным из входного сигнала; ЗАГРУЗКА полагается равной времени загрузки, которое может зависеть от данных МАРКА (марки бетона, на которую была настроена секция ранее) и БЕТОНОВОЗ (содержащего информацию о требуемой марке и объеме бетона); МАРКА принимает значение номера требуемой марки бетона (берется из данного БЕТОНОВОЗ). Если же все элементы в массиве СЕКЦИИ не пусты (все секции БЗ заняты погрузкой), то список ОЧЕРЕДЬ пополняется еще одним элементом (О, БЕТОНОВОЗ), где первый (нулевой) элемент указывает, что поступивший самосвал присоединился к очереди и, следовательно, накопленное им время ожидания равно нулю, а второй элемент совпадает с входным сигналом. Событие е2 — обнуление /-й координаты ЗАГРУЗКА в массиве СЕКЦИИ (окончание загрузки самосвала в t-й секции БЗ). Если в момент наступления события е2 список ОЧЕРЕДЬ пуст, то происходят следующие изменения: с выходной клеммы выдается сигнал (ВРЕМЯ- 1, БЕТОНОВОЗ), равный соответствующим данным из 1-го элемента массива СЕКЦИИ; в 1-м элементе массива секции новые значения ВРЕМЯ- Г, БЕТОНОВОЗ', ЗАГРУЗКА' полагаются пустыми; остальные координаты не изменяются. Если в момент наступления события е2 список ОЧЕРЕДЬ не пуст, то: с выходной клеммы снимается сигнал (ВРЕМЯ- 1, БЕТОНОВОЗ), равный соответствующим данным из /-го элемента массива СЕКЦИИ; в 1-м элементе массива СЕКЦИИ новое значение БЕТОНОВОЗ' равно значению аналогичного данного из первого элемента списка ОЧЕРЕДЬ; новое значение ВРЕМЯ- Г равно значению данного ВРЕМЯ из первого элемента списка ОЧЕРЕДЬ (что соответствует взятию на погрузку первого самосвала из очереди); новое значение ЗАГРУЗКА' равно суммарному времени перестройки t-й секции БЗ с номера МАРКА на номер МАРКА' бетона и времени приготовления и выгрузки указацной порции бетона, данное МАРКА' берется из данного БЕТОНОВОЗ'; 71
остальные координаты не изменяются. Приведенное описание полностью определяет КЛА БЗ. Агрегативные модели процесса перевозки бетона. Опишем сначала упрощенную модель процесса перевозки, которая не учитывает взаимодействия транспортных единиц на дороге. Назовем соответствующий КЛА именем ПЕРЕВОЗКА и назначим ему одну входную и одну выходную клеммы. На входную клемму поступает, а с выходной клеммы снимаются сигналы, описываемые данными вида БЕТОНОВОЗ. Состояние КЛА ПЕРЕВОЗКА назовем именем ДОРОГА н определим как список данных вида (ВРЕМЯ- ПЕРЕВОЗКИ, БЕТОНОВОЗ), где первая компонента является действительной величиной, убывающей с единичной скоростью между событиями и имеющей смысл времени, оставшегося до окончания поездки, а вторая компонента — информация о характеристиках движущегося самосвала. По сути КЛА ПЕРЕВОЗКА реализует задержку каждого самосвала на случайное время поездки, причем это время может зависеть от характеристик самосвала, например от его типа. Динамика рассматриваемого КЛА определяется событиями двух типов: ех (поступление входного сигнала); е2 (обнуление одной из координат типа ВРЕМЯ- ПЕРЕВОЗКИ). Событие ех. В момент поступления входного сигнала вида БЕТОНОВОЗ список ДОРОГА дополняется парой (ВРЕМЯ- ПЕРЕВОЗКИ, БЕТОНОВОЗ), где первая компонента является случайной величиной, зависящей, вообще говоря, от данного БЕТОНОВОЗ, и представляет собой предполагаемое время поездки бетоновоза по трассе; вторая компонента совпадает с входным сигналом. Событие е2. В момент обнуления одной из координат ВРЕМЯ- ПЕРЕВОЗКИ в списке ДОРОГА (что соответствует завершению поездки самосвала) из этого списка вычеркивается пара (ВРЕМЯ- ПЕРЕВОЗКИ, БЕТОНОВОЗ) с обну- лившейся первой координатой, а вторая компонента этой пары выдается с выходной клеммы в качестве выходного сигнала. Динамика КЛА ПЕРЕВОЗКА описана полностью. Однако в п. 1.2 говорилось, что в отличие от времени приготовления бетона время поездки неизвестно, и, более того, оно зависит сложным образом от ситуации на дороге. Поэтому для его определения необходимо построить отдельную модель дорожного движения, представляющую и самостоятельный интерес. В рассматриваемой ситуации исследовался случай двухполосной дороги — по одной полосе для движения во встречных направлениях. При построении модели учитывались следующие особенности и гипотезы. Исследуемая трасса разбита на отдельные характерные участки: подъемы—спуски, извилистый или ровный участок, туннели, мосты. Участки различаются правилами допустимого движения (обгон, ограничение скорости и т. п.). Транспортные средства классифицируют по типам. Внутри участка автомашина движется с постоянной скоростью при условии отсутствия помех со стороны других машин. Скорость движения выбирается случайным образом в соответствии с функцией распределения скоростей в зависимости от типа автомобиля, характера участка и погодных условий. Наличие автомашин различных типов обусловливает их взаимодействие в процессе движения и в результате — принудительное изменение реальных скоростей движения. В частности, предполагается, что если один автомобиль догоняет колонну, то его водитель делает попытку обогнать колонну, учитывая при этом возможность появления автомобилей встречного потока на участке обгона, а также наличия возможности «встроиться» в попутный поток после завершения данного маневра. Все обгоны совершаются поочередно, т. е. в каждый момент времени может существовать не более одного автомобиля, обгоняющего данную колонну. Возникающие при движении относительные задержки на участке (равно, как и на трассе в целом) — важнейшие характеристики дорожного движения. Другими характеристиками являются число машин на трассе, время нх нахождения на том или ином участке, число совершенных обгонов, средние скорости движения и т. п. Входными данными служат законы распределения скоростей свободного движения по участкам в зависимости от типов автомобилей и погодных условий, 72
законы поступления автомобилей на трассу, правила их обгона в зависимости от типов взаимодействующих машин, участка дороги и действующих погодных условий. Поскольку в модели первостепенным является изучение эффекта выпуска на трассу большегрузных самосвалов, достаточно ограничиться рассмотрением машин трех типов: легковых, грузовых и собственно большегрузных. Однако При анализе эффективности состава парка самосвалов необходимо включать в модель характеристики бетоновозов всех марок, имеющихся при планируемых в составе автопарка. В качестве модели дорожного движения рассмотрим агрегативную систему, представляющую собой цепь КЛА, каждый из которых моделирует движение по одному из характерных участков. Опишем агрегат такого вида (назовем его УЧАСТОК). КЛА УЧАСТОК имеет две входные клеммы, на которые поступают сигналы об автомобилях, въезжающих на первую и вторую полосы движения соответственно. Эти входные сигналы с именем АВТО имеют следующую структуру: АВТО = (ТИП, ПАРАМЕТРЫ), где ТИП — целочисленная переменная, имеющая смысл типа рассматриваемого автомобиля; ПАРАМЕТРЫ — данное произвольной структуры, характеризующее как технические параметры автомобиля (например, его длину), так и показатели текущей поездки (например, суммарную задержку, число обгонов и т. п.). Аналогично агрегат имеет две выходные клеммы, с которых снимаются сигналы вида АВТО об автомобилях, уезжающих с участка. Координаты КЛА УЧАСТОК выбирают, исходя из следующих соображений: они должны однозначно определять смену режима движения (например, начало или окончание обгона, изменение скорости движения, которое по предположению происходит скачкообразно, и т. п.). В соответствии с этим состояние (дадим ему имя ОТРЕЗОК) КЛА УЧАСТОК представим в виде двух целочисленных координат и двух списков: ОТРЕЗОК = (ХАРАКТЕР, ПОГОДА, ПОЛОСА- 1, ПОЛОСА. 2). Целое число ХАРАКТЕР определяет специфику участка (подъем, поворот, ровный и т. п.) и является одним из факторов, влияющих как на скорость свободного движения автомобилей, так и на возможности их маневрирования на участке дороги. Целое число ПОГОДА характеризует погодные условия и также может влиять на скорость свободного движения и возможность маневрирования. Обе эти координаты в дальнейшем считаются неизменными, т. е. являются параметрами агрегата и потому при описании динамики их изменения не рассматриваются. Списки ПОЛОСА. 1 и ПОЛОСА- 2 аналогичны по содержанию, и потому рассмотрим лишь один из них. Список ПОЛОСА- 1 содержит необходимую информацию об автомобилях, движущихся по первой полосе. Будем характеризовать каждый движущийся автомобиль, помимо описанного выше данного АВТО, еще семью координатами: ДВИЖЕНИЕ — целочисленная величина, принимающая следующие значения: 0, если автомобиль едет свободно; 1, если он движется за колонной, скорость движения которой меньше скорости свободного движения автомобиля; 2, если автомобиль в данный момент, обгоняя колонну, вышел на встречную полосу; СВОБСКОР — действительная величина, представляющая собой скорость свободного движения автомобиля по участку; РЕАЛСКОР — действительная величина, представляющая собой реальную скорость движения автомобиля по участку; ОКНО — действительная величина, представляющая собой расстояние от «заднего бампера» автомобиля до «переднего бампера» сзади едущего автомобиля, причем считается, что в габаритный размер автомобиля включен и интервал безопасности, а в случае отсутствия сзади автомобиля ОКНО полагается равным расстоянию от «заднего бампера» до начала участка (рис. 2.8, а)\ если автомобиль совершает маневр обгона (рис. 2.8, б), то нумерация автомобилей на участке устанавливается в соответствии с их расположением после завершения мане- 73
Граница учостка I РАССТ I окно I — Г w/i3 РАССТ I Б OHHOD Граница участка 1^1 — С В б) Рис. 2.8. Координаты агрегата УЧАСТОК: а — при отсутствии обгона; б — при обгоне с выездом на полосу встречного движения вра, т. е. ADBC (рис. 2.8, б), координата ОКНО для обгоняющего автомобиля полагается равной разности между его «задним бампером» и «передним бампером» лидера обгоняемой колонны, т. е. может принимать отрицательные значения, но в этом случае она будет возрастающей; координата ОКНО для догоняемого автомобиля (Л на рис. 2.8, б) равна разности между его «задним бампером» н «передним бампером» автомобиля, идущего на обгон; ВСТРЕЧА = (РАССТ, НОМЕР), где РАССТ — действительная величина, равная расстоянию от «переднего бампера» рассматриваемого автомобиля до «заднего бампера» первого встречного автомобиля либо до конца участка в случае отсутствия встречных автомобилей (см. рис. 2.8, б), а НОМЕР — номер первого встречного автомобиля с другой полосы (если такового нет, то полагаем НОМЕР - 0); ПУТЬ — расстояние от «заднего бампера» автомобиля до конца участка. Список ПОЛОСА^ 1 будем формировать из элементов вида АВТО, ДВИЖЕНИЕ, СВОБСКОР, РЕАЛСКОР, ОКНО, ВСТРЕЧА, ПУТЬ, относящихся ко всем автомобилям на первой полосе. Множество R+ состоит в данном случае из координат с именами ОКНО, ВСТРЕЧА, ПУТЬ. Координата ОКНО для всех автомобилей, кроме первого, изменяется со скоростью, равной разности двух координат (с именами РЕАЛСКОР), относящихся к идущему впереди и рассматриваемому автомобилям соответственно; для первого автомобиля координата ОКНО изменяется со скоростью РЕАЛСКОР. Координата ВСТРЕЧА убывает со скоростью, равной сумме скоростей РЕАЛСКОР сближающихся автомобилей. Координата ПУТЬ убывает со скоростью РЕАЛСКОР. Легко видеть, что введенные координаты обладают избыточностью. Например, ПУТЬ может быть вычислен через координаты ОКНО и габаритные размеры автомобилей, содержащиеся в данных АВТО. События, происходящие в КЛА УЧАСТОК, определяются поступлением входных сигналов на клеммы 1 и 2 (рис. 2.9) и обнулением координат ОКНО, РАССТ, ПУТЬ. Рассмотрим реакции КЛА УЧАСТОК на каждое из этих событий. При поступлении сигнала АВТО на входную клемму / происходят следующие изменения. Список ПОЛОСА- 1 дополняется новым элементом (АВТО, ДВИЖЕНИЕ, СВОБСКОР, РЕАЛСКОР, ОКНО, ВСТРЕЧА, ПУТЬ). Первая составляющая этого элемента равна поступившему входному сигналу; ДВИЖЕНИЕ — 0, т. е. мы полагаем, что въезжающий на участок автомобиль движется свободно (если в реальности он «упирается» во впереди идущую колонну, то пересчет соответствующих координат произойдет до наступления события «ОКНО = 0»); значение СВОБСКОР выбирается случайным образом по распределению, вид которого определяется координатами, входящими в АВТО (например, типом автомобиля), а также координатами ХАРАКТЕР и ПОГОДА; 74 УЧАСТОК\ УЧАСТОК Рис. 2.9. Агрегативная модель движения по двухполосной дороге
в соответствии с тем, что въезжающий автомобиль считается свободно движущимся, полагаем РЕАЛСКОР = СВОБСКОР; значение ОКНО полагается равным габаритному размеру въезжающего автомобиля (данное имеется в АВТО), взятому со знаком минус, — эта координата будет расти, и следующий автомобиль въедет на дорогу не раньше, чем данная координата примет положительное значение; координата РАССТ из пары ВСТРЕЧА полагается равной первой координате с тем же именем из списка ПОЛОСА-. 2; НОМЕР = 1, если список ПОЛОСА. 2 не пуст, в противном случае НОМЕР = 0. Координата ПУТЬ полагается равной длине рассматриваемого участка плюс габаритный размер въезжающего автомобиля. В списке ПОЛОСА^ 2 измениться могут лишь координаты с именем НОМЕР. Все такие координаты, имевшие фиктивные значения, будут после изменения равны номеру въезжающего автомобиля. Аналогично агрегат реагирует на сигнал, поступающий на входную клемму 2* Пусть теперь обнулилась одна из координат ОКНО в списке ПОЛОСА-. 1. Тогда, если условия обгона (УО) не выполнены, то происходит лишь единственное изменение: координата РЕАЛСКОР едущего сзади автомобиля заменяется на значение координаты с тем же именем, относящееся к рассматриваемому автомобилю. Если УО выполнены, то они определяют и номер автомобиля, перед которым встанет обгоняющий. В соответствии с этой перенумерацией список ПОЛОСА- 1 переупорядочивается и в нем координата РЕАЛСКОР обгоняющего автомобиля становится равной значению СВОБСКОР, а также пересчи- тывается пара ВСТРЕЧА. В списке ПОЛОСА- 2 пересчитываются соответствующим образом координаты ВСТРЕЧА. Здесь нет необходимости более подробно приводить вид этих пересчетов. УО формулируются в виде алгебраических и логических соотношений для всех введенных переменных, включая ХАРАКТЕР, ПОГОДА, сочетания которых могут, в частности, запретить обгон, т. е. сделать УО ложными. Содержательный смысл этих переменных: наличие свободного места для обгоняющего автомобиля в своей полосе и отсутствие встречного транспорта на участке обгона. В случае обнуления координаты РАССТ происходят следующие измерения: если УО не выполнены, то пересчитывается пара ВСТРЕЧА; если же УО выполнены, то изменения состояния идентичны описанным выше. При обнулении координаты ПУТЬ: в списке ПОЛОСА- 1 вычеркивается первый элемент; в списке ПОЛОСА- 2 значения всех координат с именами НОМЕР уменьшаются на 1 (кроме координат с фиктивными значениями, которые не меняются); с выходной клеммы / снимается сигнал, содержание которого равно компоненте АВТО из первого (вычеркнутого) элемента списка ПОЛОСА. 1. Как уже говорилось, модель движения по дороге представляет собой цепь описанных агрегатов (см. рис. 2.9). Если рассмотреть данную систему как единый элемент, то получим модель, структурно не отличающуюся от укрупненной модели перевозки, приведенной выше, но учитывающую достаточно большое число факторов и позволяющую формировать время перевозки из элементарных явлений в рамках принятых допущений. Агрегативная модель укладки бетона. Для построения модели разгрузки и укладки бетона принимаются во внимание следующие факторы (см. п. 2.1): очередь груженого транспорта на разгрузку, процесс разгрузки, рабочий цикл разгрузочного механизма и его надежность. Предположим, что разгрузочный механизм действует следующим образом: он загружается бетоном из первого в очереди бетоновоза, после чего бетоновоз уезжает, а механизм начинает двигаться к месту выгрузки; затем механизм разгружается и движется к месту приема. Кроме того, возможны случайные отказы разгрузочного механизма, после которых в течение некоторого времени этот механизм ремонтируется. Отказ механизма прерывает любую из выполняемых операций (загрузку, движение, разгрузку), т. е. соответствующая порция бетона «теряется», и после окончания ремонта механизм готов к приему очередной порции бетона. Для описания модели используем агрегат ПЛОТИНА, имеющий одну входную и одну выходную клеммы. На входную клемму поступают сигналы вида 75
Н> 0 ШРЕВОЗКА h-O—<|—{ПЕРЕВОЗКА П/10ТЦНА Рис. 2.10. Агрегативная модель производств енно- организационной системы строительства ГЭС БЕТОНОВОЗ. Аналогичный сигнал снимается с выходной клеммы. Состояние КЛА ПЛОТИНА назовем именем РАЗГРУЗКА и представим его в виде следующей структуры: РАЗГРУЗКА = (БЕТОНОВОЗЫ, МЕХАНИЗМ, ОПЕРАЦИЯ, ОТКАЗ), где БЕТОНОВОЗЫ — список данных типа БЕТОНОВОЗ — содержательно соответствует очереди, имеющейся на разгрузке; МЕХАНИЗМ — целочисленная величина, характеризующая состояние разгрузочного механизма @ — неисправен, 1 — загружается, 2 — движется для разгрузки, 3 — разгружается, 4 — движется для загрузки); ОПЕРАЦИЯ — действительная величина, представляющая время до окончания операции, выполняемой разгрузочным механизмом (загрузка, движение, разгрузка, ремонт), если разгрузочный механизм находится в состоянии МЕХАНИЗМ = 1 и список БЕТОНОВОЗЫ пуст, т. е. загружать механизм нечем, то координата ОПЕРАЦИЯ принимает фиктивное (неизменяемое) значение 0; ОТКАЗ — действительная величина, равная оставшемуся времени безотказной работы механизма; если разгрузочный механизм неисправен (т. е. ремонтируется), то координата ОТКАЗ принимает фиктивное (неизменяемое) значение. Множество R+ составляют координаты ОПЕРАЦИЯ и ОТКАЗ, убывающие с единичной скоростью. В КЛА ПЛОТИНА могут происходить следующие события: е\ — поступление входного сигнала (приезд нового бетоновоза); е2 — обнуление координаты ОПЕРАЦИЯ (окончание механизмом очередной операции); еа — обнуление координаты ОТКАЗ (отказ механизма). Событие ег. Если состояние КЛА было РАЗГРУЗКА, то при поступлении на входную клемму сигнала БЕТОНОВОЗ происходят следующие изменения: если список БЕТОНОВОЗЫ не пуст или значение координаты ОПЕРАЦИЯ не равно 0, то единственным изменением является пополнение списка БЕТОНОВОЗЫ новым элементом БЕТОНОВОЗ, совпадающим с поступившим входным сигналом; в противном случае в список БЕТОНОВОЗЫ вносится единственный элемент, совпадающий с поступившим входным сигналом, и координата ОПЕРАЦИЯ принимает значение, равное времени разгрузки поступившего бетоновоза, которое может зависеть от типа бетоновоза и объема привезенного бетона (отметим, что координата МЕХАНИЗМ при этом автоматически равна 1). Событие ег. Пусть состояние КЛА имело значение РАЗГРУЗКА и при этом ОПЕРАЦИЯ = 0, тогда: если МЕХАНИЗМ = 0 (кончился ремонт механизма), то новое значение МЕХАНИЗМ = I (механизм готов начать операцию погрузки), и при этом в случае непустого списка БЕТОНОВОЗЫ вырабатывается новое значение координаты ОПЕРАЦИЯ', равное времени погрузки бетоновоза, стоящего в списке первым; если список БЕТОНОВОЗЫ пуст, то ОПЕРАЦИЯ' = 0, остальные координаты не меняются; если МЕХАНИЗМ = 1 (кончилась операция погрузки), то МЕХАНИЗМ' = = 2, значение ОПЕРАЦИЯ' равно времени движения механизма к месту его разгрузки, из списка БЕТОНОВОЗЫ вычеркивается его первый элемент, остальные координаты не меняются. С выходной клеммы выдается сигнал вида БЕТОНОВОЗ, совпадающий с вычеркнутым элементом, в котором, однако, могут быть изменены некоторые данные (например, если в этих данных фиксируется количество перевозимого бетона, то оно обнуляется, поскольку разгруженный бетоновоз ничего не везет и т. п.); если МЕХАНИЗМ = 2, то МЕХАНИЗМ' — 3 (началась операция разгрузки механизма) и ОПЕРАЦИЯ' принимает значение времени разгрузки. Остальные координаты не меняются; 76
если МЕХАНИЗМ = 3, то МЕХАНИЗМ' = 4 (механизм начал двигаться к месту погрузки) и ОПЕРАЦИЯ' принимает значение времени движения механизма к месту его погрузки. Остальные координаты не меняются; если МЕХАНИЗМ = 4, то МЕХАНИЗМ' — 1 (механизм готов начать операцию погрузки) и в случае непустого списка БЕТОНОВОЗЫ координата ОПЕРАЦИЯ' принимает значение времени погрузки; если указанный список пуст, то ОПЕРАЦИЯ' = 0. Остальные координаты не меняются. Событие е3. Пусть КЛА ПЛОТИНА находился в состоянии РАЗГРУЗКА и при этом ОТКАЗ = 0 (произошел отказ механизма). Тогда МЕХАНИЗМ' = О (механизм становится на ремонт), ОТКАЗ' = 0, а значение ОПЕРАЦИЯ' полагается равным времени ремонта. Остальные координаты не меняются. Работа агрегата описана полностью. Мы привели описание основных элементов исследуемой системы. Для ее анализа необходимо составить агрегативную систему, содержащую как сами элементы, так и схему их сопряжения (рис. 2.10). Система содержит всего один элемент разгрузки. При необходимости их число может быть выбрано произвольным. Приведенные примеры дают достаточно полное представление о возможностях агрегативного описания реальных систем. 2.5. ОЦЕНКА АГРЕГАТИВНЫХ СИСТЕМ КАК МОДЕЛЕЙ СЛОЖНЫХ СИСТЕМ Выше мы ввели понятие агрегативной системы и дали ряд примеров, раскрывающих возможность описания разнообразных объектов в агрегативном виде. Эти описания достаточно естественны и удобны, что можно объяснить следующими причинами. В основу понятия агрегативной модели положено структурное представление системы в виде взаимодействующих элементов (КЛА). Это соответствует одной из основных концепций сложных систем, рассмотренных в п. 1.1. Динамика агрегативной системы полностью определяется последовательностью событий, происходящих в ней, что отвечает концепции алгоритмической модели сложной системы (см. п. 1.3). Агрегативная формализация конкретизирует ряд абстрактных понятий, введенных при описании алгоритмической модели: признаки, события, состояния, структура. Например, процессы обмена сигналами и наступления внутренних событий в агрегативной системе раскрывают механизмы возникновения событий в общей алгоритмической модели. Определение агрегативной системы не устраняет отмеченных в п. 1.3 трудностей и противоречий, связанных с квазипараллельными процессами. Оно лишь ограничивает пределы, в которых эти противоречия предстоит устранять. Соответствие с алгоритмической моделью в определенной степени проясняет и генезис понятия агрегативной системы — один из источников ее возникновения — разнообразные машинные модели сложных систем. Следствием этого является удобство реализации агрегативных систем на цифровых ЭВМ. Приведенные примеры иллюстрируют, в частности, и то обстоятельство, что агрегативные системы служат определенным обобщением таких хорошо известных схем, как автоматы и мо- 77
дели массового обслуживания. Нетрудно понять, что в агрегатив- ном виде также могут быть представлены сети Петри и практически любые численные методы решений дифференциальных уравнений (обыкновенных и в частных производных). Таким образом, агрегативные системы охватывают широкий класс различных моделей, используемых при изучении сложных систем. В агрега- тивном виде можно также представить модели, имеющие вид «черного ящика» (см. выше укрупненную модель перевозок). Структуры данных, описывающие состояния и сигналы агрега- тивных систем, помогают формализовать концептуальное представление, которое существует у пользователя относительно компонент системы. Важным в проведении моделирования и организации имитационных экспериментов является тот факт, что для изучения агрегативных систем могут быть использованы математические методы. Соответствующий математический аппарат зависит как от налагаемых ограничений, так и от нашей точки зрения на систему. Так, при изучении ряда структурных свойств (возможностей передачи сигналов, управления, выявления структурных конфигураций) достаточно оперировать лишь понятием схемы сопряжения. Если говорить о структурных преобразованиях агрегативных систем, то наряду со схемой сопряжения приходится рассматривать реакции КЛА на события, а также учитывать факт мгновенной передачи сигналов от агрегата к агрегату. При изучении таких динамических свойств агрегативных систем, как устойчивость, нестационарное поведение и др., необходимо формализовать их динамику как некоторый процесс. Наиболее естественна формализация в виде кусочно-линейных марковских процессов [2, 3, 6], являющаяся обобщением метода «марко- визации» процессов с помощью введения дополнительных координат [13]. В последнее время кусочно-линейные марковские процессы широко изучаются в теории случайных процессов [3, 4, 7] и здесь получены весьма содержательные результаты качественного и асимптотического характера. Наложение дополнительных ограничений при описании динамики агрегативных систем может приводить к появлению процессов других классов, например регенерирующих [5,8, 10], что дает возможность использовать разработанные для них при анализе агрегативных моделей методы (см. ч. II). Таким образом, можно констатировать, что агрегативная формализация удовлетворяет основным требованиям, предъявляемым к моделям сложных систем.
ГЛАВА 3 СЕТИ ПЕТРИ И ИХ РАСШИРЕНИЯ 3.1. ОПИСАНИЕ СТРУКТУР МОДЕЛИРУЕМЫХ ПРОБЛЕМНЫХ СИТУАЦИЙ В ВИДЕ СЕТЕЙ ПЕТРИ При разработке структур моделей дискретных систем в качестве базовой информации можно использовать данные о логической взаимосвязи наблюдаемых в системе событий и условий, предопределяющих наступление этих событий. Точное знание моментов времени реализации событий в системе часто можно игнорировать, поскольку такие сведения о событиях, происходящих в реальных (или проектируемых) системах, либо просто отсутствуют, либо их нельзя считать достоверными. Это объясняется многообразием предваряющих события условий, невозможностью полного их учета и верного описания, а также действием сложной и запутанной системы причин и следствий, определение которых на временной шкале часто не представляется возможным. То же самое можно сказать относительно связи событий с интервалами их реализации или шкалами, содержащими опорные моменты времени. Базовые понятия «Условие» и «Событие» могут быть связаны отношением типа «Выполняется после». Построение полной структуры таких отношений для моделируемой проблемной ситуации составляет цель и задачу формирования структуры модели. События выражают действия, реализация которых управляет состояниями системы. Состояния задаются в виде сложных условий, формулируемых как предикаты с переменными в виде простых условий. Только при достижении определенных состояний (в этом случае соответствующие предикаты принимают истинное значение) обеспечивается возможность действий (наступления событий). Условия, с фактами выполнения которых связана истинность предиката и, следовательно, возможность реализации события, называют «до-условиями» (предпосылками наступления события). В результате действия, совершившегося при реализации события, объявляются истинными все простые условия, непосредственно связанные с данным событием отношением «Выполняется после». Эти условия рассматриваются как «пост-условия» (прямые следствия событий). Таким образом, только после выполнения всех «до-условий» для некоторого события это событие может быть выполнено. После того как событие имело место, истинными становятся все «пост-условия» данного события, которые затем, 79
Рис. 3.1. Производственный модуль: / — приемная позиция станка; 2 — позиция установки тары; 3 — ПР; 4 — накопитель заготовок; 5 — место комплектации заготовок; 6 — ТМ; 7 —» накопитель готовых деталей в свою очередь, могут быть «до-условиями» каких-либо других событий и т. д. Такая концепция структуризации моделируемой проблемной ситуации поддерживается формальными средствами, разработанными в теории сетей Петри [4,7,91. В сетях Петри условия моделируются позициями, а события — переходами. Последовательная реализация событий в системе отображается в сети в виде последовательного срабатывания ее переходов. Выполнение какого-либо условия в системе связано с появлением метки в соответствующей этому условию позиции сети. Действующие в сетях Петри соглашения о правилах выполнения переходов выражают логические взаимосвязи между условиями и событиями в моделируемой системе. 3.1.1. Ординарные сети Петри Формально ординарная сеть Петри задается в виде тройки С — (Ру Ту ?), где Р — непустое конечное множество позиций сети; Т — непустое конечное множество переходов; Е = (РхТ) (J (J (ТхР) — отношение инцидентности позиций и переходов (множество дуг сети). Графически сети Петри представляются двудольными орграфами С = (Р (J Ту Е) [6]. Множество вершин в таких орграфах состоит из непересекающихся подмножеств позиций Р = {pj, i = 1, | Р | и переходов Т = {^}, / = 1, | Т |, а множество дуг Е разделяется на два подмножества {(piy tj)} ^ РхТ и {(tjy pt)} ^ ^ ТхР. Дуги (ри tj) ориентированы от позиций к переходам, а дуги (tJt p^ — от переходов к позициям. В изображении графов, представляющих ординарные сети Петри, позиции принято обозначать кружками, а переходы — барьерами (планками). Для всякого перехода tj ? Т можно указать полные множества позиций / (t}) и О (?.), определенные соответственно на входах и выходах этого перехода. Аналогично, через / (pt) и О (pt) обозначают полные множества переходов, имеющихся на входах и выходах позиции pt ? Р. Для примера рассмотрим сеть Петри, моделирующую структуру процессов функционирования производственного модуля (рис. 3.1). Пример 3.1. Станок для обработки заготовок имеет магазин инструментов и оснащен средствами автоматической замены и подготовки инструмента к ра- 80 (таи о к I tr~d / г и и
Выдай запросод' условия г обработки очередной заготовки Выполняется запрос одусловиях обработки ПРзакрепляет заготовку на станке ПР сбоб'оден Тара свободна Мм ПРсвоб'оден Выдан запрос off очередной заготовке Заготовка закреплена инструмент подготовлен для выполнения операции ТМ свободен Обработка \Цеталь обработана ПР перемещает тру S позицию Z I ^1 Тара устаноблш\ \ впазицииг ^^ ТМ помещает деталь б тару и переносит ее 6 накопитель 7 LJ Тара с заготовкой] в накопителе Ч ТМ свободен [выполняется запрос о заготовке —*- Очередная загото^ ко д таре подготовлена ТМ перемещает тару с заготовкой из накопителя внакопитель 4 Рис. 3.2. Описание процесса функционирования производственного модуля: а — через условия и события; б — в виде сети Петри боте. Заготовки в таре поступают в накопитель 4, откуда с помощью ПР переносятся в позицию 1 загрузки станка. Освободившаяся при этом тара также с помощью ПР подается в зону выхода детали после обработки. Готовая деталь помещается в тару и с помощью ТМ перемещается в накопитель 7 готовых деталей. Освободившийся после выполнения этой операции ТМ забирает на месте комплектации 5 очередную заготовку в таре и доставляет ее в накопитель. Описание функционирования производственного модуля приведено иа рис. 3.2, а. В соответствии с этим описанием на рис. 3.2, б построена сеть Петри, позиции и переходы которой имеют следующий смысл: р! — заготовка закреплена на станке и готова к обработке; р2 — инструмент подготовлен для выполнения операции; р3 — выдан запрос об условиях обработки очередной заготовки; р4 — ПР свободен; ръ — разрешена замена инструмента; рв — тара свободна; р7 — ПР свободен; рв — пустая тара установлена на выходе станка; р9 — выполняется программа обработки детали; р10 — деталь обработана; рп — ТМ выполняет программу 1: захватывает готовую деталь, помещает ее в тару, движется к накопителю 7, разгружается в накопи- 81
тель; pla — ТМ свободен; р18 — выдан запрос об очередной заготовке, которую необходимо доставить в зону обработки; р14 — получены данные о типах заго* товки и тары, а также адреса их хранения; р1б — очередная заготовка в таре подготовлена и находится иа месте комплектации 5; р1в — позиция для приема новой заготовки и тары для нее на месте комплектации подготовлена; р17 — ТМ выполняет программу 2: берет тару с заготовкой в 5, переносит ее в накопитель 4, разгружается в накопителе 4\ р18 — тара с заготовкой находится в накопителе 4\ р19 — ТМ свободен; tx — ПР выполняет программу /: берет заготовку из тары в накопителе 4, закрепляет ее на станке; t% — включение программы обработки детали; tz — ПР выполняет программу 2: берет пустую тару из накопителя 4, переносит ее на выход станка в зону 2, фиксирует тару в зоне 2\ /4 — выполнена программа подготовки инструмента к обработке очередной заготовки; tb — выполнена программа обработки детали; /б — включается программа / управления ТМ; /7 — выполнена программа 1 управления ТМ; /8 — включается программа 2 управления ТМ; /9 — выполняется программа по определению данных о типах очередной заготовки и соответствующей тары, а также адресов их хранения; ^10 — выполняется программа подготовки на месте комплектации очередной заготовки в таре; гп — выполнена программа 2 управления ТМ. При формальном описании сети указываются множество позиций Р = {plt Рг> •••> Р19}' множество переходов Т = {tlt /2, ..., /п}, множество дуг Е или же функции / (р,-), О (Pi)t Pi б Р (или / (tj), О (tj), h ?Т). В примере: / (Pl) = = W; / (р2) - ft); / (рз) = ft}; / (p«) = {'з};...; / (Рн) = {'и}; о (Pl) = = W; 0(p2) = {t2}; 0(p9) = {t<}\ О (Р4) = ft); ...; О (Pl|) = {/,}; I ft) = = {p4, Pi8}; / ('2) = {pi. P2}; / (h) = {Pe, p7); / (U) = {рз» p6}; ¦••; / (*u) — = {Pi?}; 0 ft) = {pb p3, p6, p7, p13}; О ft) = {p9}; ...; О ftj) = {p19}. Начальное состояние сети Петри задается с помощью маркировки ее позиций. Маркировка сети заключается в присвоении позициям числовых значений (меток, емкостей): Mo:/>^N, N = {0, 1, ...}. Маркировку сети удобно представлять в виде вектора Mo = (Af0(p*)). Pi = T7JP]9 MQ(Pi) = moi?Ny где moi — число, которым помечается позиция р{ ? Р при маркировке. В тех случаях, когда емкости позиций невелики, в качестве меток на графических изображениях сетей Петри используют не числа, а маркеры (рис. 3.2, 6). Начальное состояние рассматриваемой сети (см. рис. 3.2, б) описывается следующим образом: ПР закончил выполнение операции по переносу пустой тары в зону 2 из накопителя 4 (см. рис. 3.1) и освободился для выполнения следующей операции своего производственного цикла (условие р4 выполнено); пустая тара под готовую деталь установлена в выпускной зоне станка (выполнено условие р8); деталь прошла обработку (выполнено условие р10); очередная заготовка в таре ожидает на месте комплектации 5 (выполнено условие р1Б); поступил сигнал, разрешающий замену инструмента (выполнено условие р6); ТМ доставил заготовку в таре с места комплектации в накопитель 4 и освободился для выполнения очередной операции своего производственного цикла (условие р19 выполнено). Отсутствие маркеров во всех остальных позициях сети означает, что связанные с этими позициями условия в начальном состоянии не выполняются. Записывая начальную разметку в виде вектора, для рассмотренного нами примера 3.1 получим М0 = @001100101000010001). Динамика сетей Петри обусловлена соглашениями относительно правил срабатывания переходов. Изменение состояния сети связано с механизмом изменения маркировок позиций. В качестве правил изменения маркировок принимаются следующие: 82
выполняется только возбужденный переход, т. е. такой переход, во всех входных позициях которого имеются ненулевые метки; срабатывание перехода может наступить через любой конечный промежуток времени после его возбуждения; если в некотором состоянии сети возбужденными оказываются сразу несколько переходов, то всегда выполняется только какой-то один (любой) из них; в результате срабатывания перехода метки в каждой входной позиции перехода уменьшаются на единицу, а метки во всех его выходных позициях увеличиваются на единицу; выполнение перехода — неделимый акт, изменение разметки входных и выходных позиций перехода при его выполнении осуществляется мгновенно. Например, в сети на рис. 3.2, б, имеющей начальную маркировку М0 = = @001100101000010001), будет возбужден переход /e (yPi ? / (/б) : М0 (pj > > 0). Новая маркировка Mi = @001100000100010000) получается из М0 по правилу: VP, € / (*,) : Мг (Pf) = М0 (р.) - 1; WPi € О (*,) : М1 (Р|) = М0 (Pi) + 1. Маркировке Мх будет соответствовать новое состояние сети, в котором возбужденным оказывается переход t7. При срабатывании /7 метка из рп перейдет в р12, в результате чего установится новая разметка сети М2 = = @001100000010010000). Вследствие этого состояние сети снова изменится. Теперь уже возбужденным оказывается переход tQ и т. д. Если обозначить через М (С) множество всех достижимых ал от М0 маркировок Mk, k = 1, 2, ..., а знак -^ использовать для записи отношения непосредственной достижимости (Ч) Mfc—*Mfc+1, которым выражается факт перехода маркировки f\h в маркировку Mft+1 при срабатывании перехода tj ? 7\ тогда с помощью тройки Q = (м0, —^, М (С)) можно описать динамику сети Петри. Всякому возможному варианту выполнения сети будет отвечать определенная последовательность срабатываний переходов и последовательность получающихся после каждого очередного срабатывания маркировок: Мо-^-Мх-^М, ... Mh^L .... t]g?T, 9=1,2,... Транзитивное бинарное замыкание отношения непосредственной достижимости задает бинарное отношение достижимости маркировок в сетях Петри. Маркировка МЛ является достижимой от Мг если в сети существует какая-либо последовательность выполнения переходов, в результате которой маркировка Мд перейдет в маркировку Мь (здесь М,, fAk ? М (С) с: N\p\). Сети Петри являются удобным аппаратом моделирования параллельных процессов, т. е. процессов, протекающих в системе 83
из переходов. В случае конфликта на переходах сети срабатывание одного из них приводит к снятию возбуждения с других переходов конфликтной группы. Таким образом, всякий раз будет выполняться только один какой-то переход и будет реализована только одна, связанная с данным переходом последовательность событий. Применительно к сетям Петри разработаны методы анализа, с помощью которых удается определять некоторые важные для приложений характеристики сетей [4,7,28]. Например, Характеристики s-ограниченность Сохранение Тупики Активность Достижимость Живость 86 Содержание Позиция pi ? Р сети С= (Р, Т, ?, М0) является s-or- раниченной (s = 1, 2, ...), если УМЛ = (МЛ(р())€М(С):МЛ(р.)<5. При s = 1 позиция сети называется безопасной. В случае, когда все позиции безопасные, сеть С также безопасная. Сеть С называется ограниченной, если все ее позиции ограниченные Сохраняющей называется сеть Петри, для которой по отношению к некоторому .заданному вектору весов (а1} а2> •••» а\ Р |)' где ai ? N» i=l, | Р |, выполняется условие Mk?M{C) i i Если (аг, а2, •••>Д|ы)= 0>1, ..., 1), то сеть является строго сохраняющей, и в ней выполняется условие У0€Г : | О @)| = | / @I Множество переходов сети Петри (или один какой-то переход), которые в некотором состоянии сети оказываются заблокированными (не могут более выполняться), называются тупиками Нетупиковые переходы называют активными. Тупик имеет активность нулевого уровня. Переход tj ? Т сети Петри С = (Р, Ту ?", М0) будет активным, если существует такая разметка сети М^ ? М (С), при которой переход оказывается возбужденным. Активный переход называется также переходом первого уровня активности. Переход tj обладает активностью уровня 2, если для п ? N в сети может существовать последовательность срабатываний переходов, в которой данный переход будет выполняться не менее п раз Достижимой в сети Петри С = (Р, Т, ?, М0) называется разметка М^ ? М (С) Сеть С = (Р, Т, Е, М0) — живая, если все ее переходы живые. Переход tj ? Т называется живым, если для любой исходной разметки М^ ? М (С) в сети достижима разметка М ? М (С, Mfe), при которой переход tj может сработать
Помимо перечисленных определяют и другие свойства сетей Петри. Анализ сетей можно проводить, например, с помощью диаграмм достижимых маркировок (как, например, на рис. 3.3), хотя построить и использовать такие диаграммы удается практически далеко не во всех случаях. Наибольшие затруднения при изучении свойств сетей Петри связаны с задачами достижимости. Для неограниченных сетей эти задачи могут быть решены лишь в некоторых частных постановках. Исследование достижимости на ограниченных сетях удается проводить только для сетей относительно небольших размеров. Наряду с рассмотренным нами графическим представлением сетей Петри довольно часто используют матричные способы их описания: С = (R, М0) или С = (R+, R", М0), где R = (г„) — — (J T |Xj P ]) — матрица инциденций сети; г» = U Pt€0(tj), tj?T, PttP; -1. PitHtj), tj?T, Pi?P; О, иначе; R = R+-R~; Rf = (rf<), R- = (rJt); r1t~ rJ( = 1, PieO(tj), Pi?P, tj?T; 0, иначе, 0, иначе; M0 = (M0 (pi))% i ? {1, 2, ..., | ^ |} — вектор начальной разметки сети. Если Mfe — некоторая текущая разметка сети Петри, то неравенство Мь ^ ju (j) R~ выражает условие возбуждения перехода tj ? 7\ а уравнение fAk+l = МЛ + \л (/) формально задает правило нахождения новой маркировки сети, возникающей в ней сразу после срабатывания перехода tj. Здесь ju (/) — вектор-строка длины | Т |, имеющая единственный ненулевой элемент в позиции /, равный 1. Пример 3.2. Проиллюстрируем применение матричной формы описания сети Петри. Для этого воспользуемся данными примера 3.1. Матрица инциденций сети, приведенной на рис. 3.2, б, имеет вид: 87
Pi Pi Рз Pi Pb Рв Pi Рв Рд PlO Pll Pl2 Pl3 Pl4 Pl6 Pl6 Pl7 Pl8 Pi» <1 к к и и R= U ч к и ко кг 1 — 1 — 1 1 1 — 1 — 1 1 — 1 1 1 — 1 1 — 1 1 — 1 1 — 1 1 — 1 1 — 1 : 1 — 1 1 — 1 1 — 1 — 1 1 1 — 1 1 — 1 — 1 1 — 1 1 М0 = @001100101000010001) —начальная разметка сети. При такой разметке условие возбуждения переходов выполняется только для ц F): М0>|аFIГ или @001100101000010001) > @000000101000000001), т. е. при разметке М0 срабатывает переход /в, в результате чего сеть переходит в новое состояние и получает разметку Мх = М0 + ц F) R = @001100101000010001) + + @000000 — 10 — 110000000 - 1) = @001100000100010000). Обратимся к диаграмме на рис. 3.3. Выберем в ней последовательность пере- ходов (/7, t8, tllt tfj), срабатывающих один за другим от разметки Мг. При выполнении этой последовательности возникает разметка М5=A010111000001001001). Получим этот же результат на основе матричного уравнения Мб - Мх + (р A) + ц (8) + ц A1) + ц G)) = @001100000100010000) + + A01 — 1011000—1010 —11001)-=A010111000001001001). Из рис. 3.2, б и диаграммы на рис. 3.3 видим, что сеть функционирует циклически. В каждом цикле выполняются все 11 переходов сети, причем каждый из этих переходов срабатывает ровно один раз за цикл. Отсюда следует, что (ЦA)+М2)+ ...+ МП)) = A, 1> .... 1)иМ = М0+A, 1, .... 1) R = M0. Этот факт означает, что разметка сети, начиная с М0, циклически возобновляется. Обозначим через р конечную сумму векторов вида jn (/). Каждый образующий эту сумму вектор |щ (/) устанавливает факт срабатывания перехода tj ? Т при выполнении некоторой рассматриваемой последовательности переходов. Количество слагаемых суммы равно числу переходов, составляющих последовательность. Отдельные переходы в последовательности могут повто- 88
а а,. а Рис. 3.4. Представление элементарной сети ч_х | * \^J ряться. Множество вхождений каждого перехода в последовательность указывает, сколько раз этот переход сработал при реализации данной последовательности. Отсюда следует, что в состав суммы р, некоторые векторы р, (/) входят столько раз, сколько раз повторяются переходы ti в рассматриваемой последовательности. Полагая, что М0 — некоторая начальная разметка сети, Жк — некоторая достижимая от М0 разметка, возникающая при реализации последовательности срабатываний переходов, AM = tAk — — М0 — изменение разметки, можем записать AM = juR. При известной матрице инциденций R и заданной начальной разметке М0 (или конечной разметке РЛк) это уравнение можно использовать при анализе достижимости, цикличности, ограниченности, безопасности, живости, тупиков и других свойств сетей Петри [7, И, 12]. Разработка эффективных машинно-ориентированных методов решения однородных и неоднородных систем линейных целочисленных уравнений относится к области вычислительных задач линейной алгебры и целочисленного программирования [13]. Значительный теоретический и практический интерес представляет еще один метод описания сетей Петри. Он связан с применением специальной алгебры [3, 4]. В рамках этого метода сети Петри С = (Ру Т> Еу М0) задаются аналитически в виде формул алгебры сетей. Формулами в этой алгебре являются: символические обозначения (обычно — строчные буквы латинского алфавита) элементарных сетей Петри, общий вид которых показан на рис. 3.4. Множество элементарных сетей <$ должно быть задано. Обозначения элементарных сетей и обозначения соответствующих им переходов, как правило, принимаются одинаковыми; результаты применения алгебры сетей к формулам. Каждой формуле алгебры сетей соответствует сеть Петри с определенными свойствами. Введем основные операции алгебры: Операции Содержание операций п — разметка: С = п (С) С—(Р, Т, Е> Щ) — новая сеть, возникающая из С = (Р, Ту Еу М0) после изменения разметки по следующему правилу: M°W-[ Mo{Pi), иначе. 89
независимо один от другого. На выполнение таких процессов не накладываются какие-либо условия синхронизации. Моменты начала и завершения параллельных процессов, интервалы их реализации не являются в системе взаимно обусловленными. Параллельным процессам соответствуют состояния сети Петри, в которых оказываются возбужденными сразу несколько переходов. Каждый из этих переходов может сработать. Однако вопрос о том, какой переход будет выполняться, решается всякий раз случайным образом по правилам равновероятного выбора. Действие такого механизма проявляется в свойстве недетерминированности сетей Петри. Ни два, ни более возбужденных в некотором состоянии сети переходов одновременно не выполняются. Всякий возбужденный переход готов для выполнения, но момент его фактического срабатывания не определен с той абсолютной точностью, которая соответствует размещению событий на временной шкале. Иначе говоря, в сетях Петри не моделируется ход времени. События упорядочиваются по отношению «Выполняется после». Такой способ упорядочения обеспечивает логически правильную, хотя и вневременную взаимосвязь событий, которая естественным и эффективным образом закрепляется в структуре и механизме выполнения сетей Петри. Недетерминированность и асинхронность сетей Петри приводят к проблемам одновременности и конфликта. Например, если в некотором состоянии сети имеются два (или более) возбужденных перехода, и при срабатывании одного (любого) из них возбуждение на другом (других) переходе не исчезает, то множество всех возможных при выполнении сети последовательностей событий будет включать каждую из последовательностей, началом которой является момент выполнения какого-то одного определенного перехода из рассматриваемой группы. В этом случае порядок выполнения переходов значения не имеет, а связанные с переходами события можно считать одновременно выполняющимися. Такой порядок работы сети иллюстрирует диаграмма на рис. 3.3, на которой построены все возможные разметки сети, представленной на рис. 3.2, б, достижимые от М0. При моделировании систем с помощью сетей Петри приходится следить за тем, чтобы все потенциально возможные в сети последовательности событий соответствовали допустимым в рассматриваемых условиях процессам в системе, что особенно важно при наличии в модели большого числа параллельных процессов. В этом случае даже незначительные, на первый взгляд, неточности, допущенные при описании реально наблюдаемых (или же возможных) взаимодействий между компонентами процессов, могут привести к появлению таких последовательностей событий, осуществление которых в модели необосновано. Действующие в системе процессы в некоторых фазах их выполнения требуют определенных ресурсов, количество которых, как правило, ограничено. Моделирование механизмов управления ре- 84
Рис. 3.3. Диаграмма разметок, достижимых от М0 = @001I00101000010001): Mt «= @001100000100010000); М, = @001100000010010000); М4 = @001100000000001100); М4 = @001100000000000101); Me = (I0I01110000010011001); М, = A100011000001001001); М, = A010100100001001001); Мв = A 01 0111 0000001 01 001); Mf = @000011010001001001); М10 = <12 00000100001 001 001); Мп = A100011000000101001); М„ = A010100100000101001); М„ = A010111000000010001); М14 = @001000110001001001); М18 = A101000100000101001); М1# = A100011000000010001); М17 = A010100100000010001); М1в = @000111001001001001); М„ = @000011010000101001); М10 = @000111001000101001); Мп = @001100001001001001); М„ = @001000110000101001); М,э — A101000100000010001); М14 = @000011010000010001); М„ = @001000110000010001); Мм = @001100101000101001); М17 = @000111001000010001) сурсами в сетях Петри связано с решением задач синхронизации событий. Синхронизация достигается за счет введения в сеть специальных фрагментов, с помощью которых для заданных состояний удается реализовать условия взаимного исключения, обеспечивающие возможность получения необходимых ресурсов только каким-то одним из всех затребовавших ресурсы процессов. Если условия взаимного исключения событий в определенных состояниях сети специальным образом не обеспечиваются, то на соответствующих переходах сети возникают конфликты, разрешаемые всякий раз случайным образом в пользу какого-то одного 85
pi — слияние позиций: С = С = (Р', Т, ?', М0) — новая сеть, возникающая = \i (С, Pi, P2) из С = (Р, Т, ?, М0) после слияния множеств позиций: Рх = {pig : q = lTT] <= Р;Р2= {pif :r = = l,s} s P в позиции; Р' = {p?gJr = pig (J U p^r : q= 1, fe; r = l,s} с сохранением всех дуг из ?, инцидентных слияе- мым вершинам. Таким образом, в Е' помимо дуг, инцидентных позициям из Рх и Р2, входят также копии этих дуг, инцидентные копиям позиций: {Piq : Q=~k}\Pi и {pJr : г =Т77}\Р2 в Р'. * — итерация: С ~ *(С)= Я (С) = Pi С Р — множество позиций, для кото- = pi (С, Я (С), L (С)) рых / (Pi) - 0; L (С) = Р2 с: Р — множество позиций, для которых О (pi) = 0; pi (С, 0, L(C))-pi(C, Я (С), 0) = |i(C, 0, 0)= С. # — наложение: Соответствует теоретико-множественному объеди- С' = • (Clf C2) = С* • С2 нению графов сетей: <а= (Pi, Тх, ?1э М01) иС2= (Р2, 72, ?2, М02) в граф сети С'= (Р\ Г', ?', MJ), где Р' = Рх |J (J Ра, 7" = Tt U Тя, Г^^и^и -f ,iMok(Pi)> PilpinP2, Рг?Рк, A = 1.2; : — присоединение: С = Соответствует операции слияния выходных пози- = : (Ci, С2) = И ((Ci, С2), ций L (Ci) сети Сх = (Рх, Т1т ?1, M01) с входными L (Сх), Я (С2)) позициями Я (С2) сети С2 = (Р2, Г2, Еъ М02) // — исключение: Соответствует операции слияния входных позиций С = II{Съ С2) = Сх11Съ = Я (Сх) сети Сх с входными позициями Я (С2) сети Са = pi ((Cj, С2), (Я (Сх), и выходных позиций L (С±) сети Cj с выходными ?- (Ci)), (Я (Сх), L (С2)) позициями L (С2) сети Са Операции алгебры сетей обладают следующими основными свойствами: коммутативностью (ф, //), ассоциативностью (ф, //, :), дистрибутивностью (: относительно ф; // относительно ф; ¦относительно // и ф; /г относительно ф и :, а также относительно // при условии п (А//В) = (ях (А)//п2 (В)), где Л и В — обозначения формул алгебры сетей; nt nlf n2 — целые неотрицательные числа, причем п = пг + п2). Правильно составленные формулы наряду с обозначениями переменных и операций содержат скобки, с помощью которых обеспечивается заданный порядок применения операций в формуле. Пример 3.3. Вновь обратимся к данным из примера 3.1. При структуризации объекта моделирования в этом примере (см. рис. 3.1, 3.2, а) были выделены следующие события и условия (рис. 3.2, б): До-условия События Пост-условия р4 — ПР свободен ti — ПР берет заготовку р1 — ПР свободен рп — тара с заготов- из тары и закрепляет ее рв — тара свободна кой находится в иа- на входной позиции станка рх — заготовка закреплена копителе 4 на станке и подготовлена для обработки . 90
Pi рг — инструмент подготовлен для выполнения операции Ре Рч Рг рь — разрешена замена инструмента Рэ Р8 Рю р18 — ТМ свободен РИ Р12 рп — очередная заготовка в таре подготовлена и находится на месте комплектации 5 Pis Ры Pie t2 — включается программа обработки детали t3 — ПР берет пустую тару из накопителя 4, переносит ее на выход станка и фиксирует там /4 — выполнена программа подготовки инструмента и обработки очередной заготовки /6 — выполнена программа обработки детали t$ — включается программа / управления ТМ /7 — выполнение программы / управления ТМ завершено tb — выполняется программа 2 управления ТМ р3 — выдан запрос об условиях очередной обработки р13 — выдан запрос об очередной заготовке, которую необходимо доставить в накопитель 4 pQ — выполняется программа обработки детали Ра р8 — пустая тара устанавливается на выходе станка Pii t9 — выполняется программа по определению данных о типе очередной заготовки и соответствующей таре, а также адресов их хранения /10 — выполняется программа подготовки на месте комплектации очередной заготовки в таре tn — выполнена программа 2 управления ТМ Рз Рь Pio — деталь обработана рп — ТМ выполняет задание: захватывает готовую деталь, помещает ее в тару, перемещается к накопителю 7, разгружается в накопитель р12 — ТМ свободен р16 — позиция для приема очередной заготовки и тары для нее на месте комплектации 5 подготовлена р17 — ТМ выполняет задание: берет тару с заготовкой в 5, переносит ее в накопитель 4, разгружается в этот накопитель р14 — получены данные о типах заготовок и тары, известны адреса их хранения Pie Pis Pi* Обозначим Alt ..., Ли формулы алгебры сетей, каждая из которых получена путем последовательного применения операции наложения к элементарным сетям (см. рис. 3.4), построенным для переходов tlf ..., tu соответственно. Процесс получения формул Аг и Л3 иллюстрирует рис. 3.5. На рис. 3.6 приведены сетевые представления формул Л2, А4, Аъ, ..., Лп. На основе формул Ах, ..., Аг1 легко получить аналитическое описание сети, изображенной на рис. 3.2, б: (... (Мх • И,) • 4() • ...)9Аи = А1фАгфА,ф ... ЩАц 91
ft© 'I 'Oft ^O 'f'Oft ft© 'Г'О^ ftoQ j| *Qft A hOft ft®-~F~Oft ft*О 'I jOft ^ J—ЮА ft®—f^O ft^O »Г'»0^ /ГрОл ft© "I *Oftj л*0—*H*Oftj I—"O^ flj * О *l © ^ ^ О jf '©^ ^ O-^ ftO~+K5ft ?Q '|°'©^ ftO-^ -*®ft a — в — г) Рис. 3.5. Сетевые представления формул: множество элементарных сетей для tx\ б — сеть Петри, соответствующая формуле Ах\ множество элементарных сетей для tb\ г — сеть Петрн, соответствующая формуле At Сети Петри, в аналитических представлениях которых используются только лишь операции наложения (#), называются расслоенными [4]. К формальным описаниям такого вида могут быть тождественно преобразованы любые правильно составленные формулы алгебры сетей. Если формулы, представляющие собой компоненты аналитического описания расслоенной сети, сами не содержат операций наложения, то сеть, для которой такое описание получено, является стандартно расслоенной. В данном примере мы получили стандартно расслоенную сеть, примитивами которой служат обозначения элементарных сетей. Pf h Р9 о- Р2 см Рз U О ОН Ps <5Н Ps Рг рд \-~CZ) Ю o-Tz* I—® Р19 ®^J О- о о-ко d рц P/J f9 Pi* Pft h Pn Pl<* tfO P/i о Pis сн-о си •о PlZ f8 Pl6 PfS Pn o- o O' Pn f„ Pie l-O -0 Pf9 92 Рис. 3.6, Сетевые представления формуле, Ai$ Ait ..., Ли
Класс сетей Петри, описываемых формулами алгебры сетей, называется регулярным [3,4]. Регулярные сети Петри имеют ту же динамику, что и ординарные сети Петри. Множества всех последовательностей срабатывания переходов будут одинаковыми в регулярной сети и в соответствующей ей ординарной сети Петри. Необходимо отметить, что построение формул алгебры сетей связано с выполнением регулярных преобразований топологии сетей Петри. Эта особенность метода аналитических описаний позволяет на качественно новом технологическом уровне формулировать и решать задачи анализа и синтеза сетей Петри. При моделировании систем в классе ординарных (регулярных) сетей Петри возможны особые случаи, приводящие к использованию специфических подклассов таких сетей. Например, если при моделировании системы требуется получить представление о взаимодействии множества параллельных процессов в условиях, когда конфликты в системе не возникают, то структуризация системы в этом случае будет связана с выявлением процессов и определением условий их блокировки и возбуждения. Может оказаться, что в представляющей моделируемую систему сети Петри выполнится условие ург ? Р: \ I (pt) \ = | О (pt) | = 1. Этому условию отвечает подкласс ординарных сетей, называемый синхрографами [1,4,12]. Примером синхрографа является сеть, изображенная на рис. 3.2, б. При исследовании свойств синхрографов выделяют простые структурные компоненты (пути и циклы), в терминах которых достаточно просто формулируются и решаются задачи анализа основных свойств таких сетей. Другим частным случаем в классе ординарных сетей Петри являются так называемые автоматные сети [1, 4]. Для сетей этого подкласса выполняется условие у^ ? Т: | / (tj) | == | О (tj) | = 1. Если представляющая моделируемую систему сеть Петри относится к подклассу автоматных сетей, то исследование ее свойств целесообразно проводить методами теории конечных автоматов. Еще один специфический подкласс ординарных сетей Петри — это сети свободного выбора (иначе, свободные сети) [1, 4]. Этот подкласс определяется условием у(р*, tj) ?(РхТ) а Е : О (pt) = ~ h V Pi = ' (*./)» т- е- ЛК)бая дуга, соединяющая в свободной сети позицию рх ? Р и переход ti ? T> является либо единственной дугой, инцидентной pt по выходу, либо единственной дугой, инцидентной tj по входу. Сети свободного выбора моделируют системы с конфликтами. Автоматные сети и синхрографы строго включаются в подкласс свободных сетей. Используя структурные особенности свободных сетей (сильную связность, наличие тупиков и ловушек и др.), удается анализировать свойства этих сетей более простыми методами. 93
3.1.2. Обобщения сетей Петри Сети с кратными дугами. Графически эти сети представляются двудольными ориентированными мультиграфами. Формально они описываются пятеркой С = (Р, 7\ Е> W, М0), где элементы Р, 7\ Е и М0 определяются так же, как и в ординарных сетях Петри, а функция W \ E ~+ N\{0} означает разметку кратностей дуг. Если eh ? Е — дуга в С, соединяющая позицию pt ? Р с переходом tj ? Ту то W (eh) = n, где п — натуральное число, кратность дуги eh. Случай п = 1 соответствует ординарной сети. Возбуждение переходов в сетях с кратными дугами связано с выполнением условия М (р) > W (pf, tj). Здесь W (piftj) — кратность дуги eh = (р,, tj) ? (РхТ) cr Е. Изменение разметки позиций после срабатывания перехода выполняется по правилу М* (Pi) = М (Pi) - W (рь *,), VP« € / (tj)\ М' (Pm) = Л! (pm) + Г (<„ pm), VPm € О ft). где М' (р,.), ЛГ (pm) — новые разметки позиций р, и pm; U7 ft, рт) — кратность дуги ек == ft, рг) ? (TxP) c= E. Таким образом, переход в сетях с кратными дугами происходит только тогда, когда число меток в каждой входной позиции перехода больше или равно кратности инцидентной данной позиции входной дуги перехода. При переходе число удаляемых из входной позиции маркеров равно значению метки дуги, выходной для этой позиции и входной для перехода. Число маркеров, поступающих в результирующую позицию, равно значению метки дуги, выходной для перехода и входной для результирующей позиции. Теоретически ординарные сети Петри и сети Петри с кратными дугами эквивалентны в том смысле, что для всякой сети С удается построить соответствующую ей сеть С с таким же набором свойств, каким обладает сеть с кратными дугами. Для сетей с кратными дугами С == (R, М0) значения элементов матрицы инциденций записываются в виде ( W(t„ Pi); pi?0(tj)\ 0*4 -W{pu tj); pit 1(h); [ О, иначе. Сети Петри с переменной кратностью дуг. Сети С имеют постоянную кратность дуг W : ?-> N\ {0}, т.е. в этих сетях по каждой активной дуге совершается переход всегда одного и того же числа меток, равного кратности активной дуги. В некоторых случаях такой способ функционирования сетей воспринимается при моделировании как ограничение. Например, при моделировании ситуаций, возникающих при посадке пассажиров в такси, удаление всякий раз одинакового 94
числа меток из позиции «Очередь на такси», по-видимому, не будет правильно отображать процессы, имеющие место в действительности. Хотелось бы, чтобы осуществлялся переход переменного числа меток, функционально связанного с количеством свободных мест в каждой подъезжающей машине, маршрутами и целями поездок пассажиров, стоящих первыми в очереди, составом ^очереди (наличием в ней пассажиров, пользующихся правом посадки в такси вне очереди, наличием групп пассажиров, желающих ехать вместе, и т. п.). Наиболее простой механизм изменения кратностей дуг в сетях Петри реализован в так называемых самодифференцируемых сетях [29, 30]. Дуги таких сетей имеют переменную кратность, значения которой определяются текущей разметкой некоторых заранее выделенных позиций. Еще один шаг в этом же направлении сделан в буферно-тран- зактных сетях [20]. Обозначим буферно-транзактную сеть ВС = = (Ру 7\ Е, <U> Мо» 5?)» где Р = {pt} — множество позиций; Т = = {tj} — множество переходов; Е cz (РхТ) (J (ТхР) — множество дуг; <Ц — множество управляющих позиций (буферов). Каждой дуге (piy tj)?(PxT) cz E отвечает управляющий буфер Uij ? ^» изменяющий ее разметку. Аналогично, каждой дуге (tj, pr) ? (ТхР) cz Е соотносится буфер и.т ? <U, с помощью которого изменяется кратность дуги (tjt рг). Позиции pj ? Р имеют разметку М: Р -+ N (М0 — начальная разметка). Значения М (pt) ограничиваются функцией емкости ЖР • Р -+ Nx — = {0, 1, 2, ..., п{). Емкость буферов задается функцией Жац ' :<U-+ N. Функция ЗЛ : Р -+ Na = @, 1, 2, ..., л2} задает мощность позиций сети. Текущие значения емкости управляющих буферов, например, могут быть вычислены как линейные функции от значений емкостей позиций сети. Механизм изменения разметки в этом случае описывается следующими правилами E?): VPi ? / (tj) • Ж (pi) # (utj) ^ 0 — условие активности перехода tj\ \/pr ? О (tj) : Ж (ujr) + Ж (рг) < 3№ (pr) — ограничение принимающей позиции перехода по мощности; Ж9 (Pi) = Ж (Pi) - Ж (ии); Ж' (pr) = min (Ж (рг) + Ж (uJr), VI (Рг)), где tj ? Г; р„ рг ? Р; Pi ? I (tj), pT g О (tj). Развитие концепции ВС сдерживается довольно существенными накладными расходами, возникающими при практической реализации в них механизмов параллельных транзакций, связанных с управлением кратностями дуг. Цветные сети Петри. Появление сетей этого класса связано с концепцией использования различимых меток. В рассмотренных нами ранее сетях все метки предполагались одинаковыми. Меха- 95
низм функционирования сетей был связан только лишь с количествами меток в входных позициях переходов и определялся общими для всех меток условиями возбуждения переходов и правилами изменения разметки позиций при выполнении сети. В цветных сетях каждая метка получает свой цвет. Условия возбуждения и правила срабатывания переходов для меток каждого цвета задаются независимо [4,21,23]. Множество используемых при реализации цветных сетей красок выбирается конечным или бесконечным (например, счетным). В первом случае получаются раскрашенные сети, эквивалентные сетям с кратными дугами. Применение бесконечного множества красок порождает более общий класс сетей, эквивалентный, например, счетчиковым автоматам, ингибиторным сетям, сетям с приоритетами [4]. Обозначим КС цветную сеть Петри, имеющую конечную разметку: КС = (Р, 7\ ?, KW, KMo, К, KF), где РУТУЕ — позиции, переходы, дуги сети; KW — функция кратности дуг; КМ0 — начальная разметка; К — множество применяемых красок; KF— функция раскраски элементов сети. Величина KF (pt) cr К определяет множество красок, приписанных к позиции pt ? Р} а величина KF (tj) а К — множество красок, соотнесенных переходу tj ? 7\ Векторы КМ^ = (KMk0(Pil .... KMk0(P\p\)) и КМ* = (KMk{pi)t .... KMkr(P\p\)) задают начальную и текущую разметки позиций сети краской k ? /С. Компоненты КМ0 (pt) и KMr (pt) этих векторов определяют, какое количество меток цвета k ? KF (pt) ^ К находится в позиции pi ? Р. Кратность дуг в цветных сетях устанавливается отдельно для каждой применяемой краски. Так, Wi(ptltj)—кратность дуги (pty tj) ?{PxT) c= E, передающей метки цвета k? К от входной позиции pi к переходу //, a Wt (</, pm) — кратность дуги (tj, pm) (TxP)czEy связывающей переход tj с принимающей позицией рт при передаче меток цвета k ? /С. После срабатывания перехода tj ? Т разметка его входных и выходных позиций изменяется по правилу: V V V : KMk,+i (Pi) = KM) (pt) - Wi (p„ t}); V V V = KMk,+l (pm) = KM*, (pm) + Wt (tjt pm), j€T <>m€°@) *eK причем у V : KF (pt) U KF (pm) = KF (t}). 96
При моделировании систем цветные сети чаще всего используются для построения компактных формальных и графических представлений, в составе которых имеются однотипные по структуре и характеру функционирования группы объектов. Временные сети Петри. Формально временные сети задаются набором из пяти элементов ТС = (Р, 7\ Е, М0, Z), где РУТ, Е имеют обычный для сетей Петри смысл, a Z : Р ->• R+ — функция времени задержки меток в позициях сети. Работа временных сетей подчиняется следующим правилам: метки в позициях могут быть доступными или же недоступными; переходы считаются возбужденными, если все их входные позиции имеют метки и эти метки — доступные; переходы срабатывают мгновенно в тот самый момент, как только будут выполнены условия их возбуждения. Правила перехода меток во временных сетях совпадают с аналогичными правилами для сетей Петри; каждая метка, совершившая переход из pi^P в рт ? Р, будет недоступной в рт в течение времени zm, начиная с момента ее появления в рт. По истечении времени zm метка становится доступной. Пусть Мх, М2, ..., Ms — последовательность маркировок временной сети, возникающая при поочередном срабатывании переходов tj в момент т0, t. в момент <с1э ..., tjs^ в момент %S-i (здесь т0, <clf ..., <zS-i?&~)- Маркировка временной сети на интервалах между срабатываниями переходов не изменяется. Текущая маркировка ТС записывается в виде М (т) = (М (ри т), М (р2, т), ..., М (р|Р|,т)). Как и в сетях Петри, достижимость некоторой маркировки М8 от М0 на ТС проверяется с помощью уравнения Ms (т) = М0 -f- + X (т) R, где М0 = М0 (т0); X (т) — вектор последовательности срабатываний переходов а = (tj , tj , ..., tjs^' Каждая r-я компонента этого вектора указывает количество срабатываний перехода tr при реализации а, обеспечивающей достижимость М0 —* ^Мв(т). В реальных системах обычно действуют ограничения на используемые ресурсы (память, мощность, скорость обслуживания и др.). Во временных сетях таким ограничениям соответствует условие ограниченности разметки на рассматриваемых интервалах времени выполнения сети. Как раз такому условию удовлетворяют циклические процессы в ТС. Основная особенность функционирования циклических ТС связана с периодической репродукцией М (т). Разметка М (т) восстанавливается либо после каждого завершения какой-то одной строго определенной для рассматриваемой сети последовательности а (ТС детерминированного типа), либо в результате выполнения какой-то одной из несколь- 4 П/р О. В. Емельянова 97
ких возможных таких последовательностей (ТС — недетерминированного типа). В качестве примера детерминированной ТС укажем на маркированные графы (см. рис. 3.2, б), для которых справедливо условие | / (р,)| = | О (pt) | = 1. Другим примером могут служить сети, в которых обусловленные их структурой конфликты всякий раз однозначно разрешаются текущей маркировкой. ТС недетерминированного типа имеют конфликты. В таких сетях реализация той или иной последовательности о определяется случайными продолжениями процессов. При этом, как и в сетях Петри, каждое из возможных продолжений выбирается с равной вероятностью. Временные сети являются модификацией сетей Петри [12, 18, 271. Хотя и те и другие сети относятся к сетям событий и в основном предназначаются для моделирования и анализа систем с параллельными процессами, они составляют два различных класса. Сети Петри образуют класс асинхронных сетей событий, в которых продолжительность отдельных фаз процессов не учитывается, а рассматривается только логическая (причинно-следственная) взаимосвязь событий. Временные сети — это сети событий синхронного типа. Разметка в ТС изменяется в моменты срабатывания переходов. Сами переходы выполняются мгновенно. Возбуждение переходов наступает сразу же, как только их входные позиции получают доступные метки. Состояние временных сетей рассматривается как функция времени. Течение времени считается непрерывным. Время выполнения в ТС любого из множества параллельно действующих процессов — кусочно-непрерывное. Одним из интересных применений временных сетей являются задачи анализа периодических режимов функционирования систем. Формальные методы исследования таких режимов разработаны в основном для сетей детерминированного типа и лишь в некоторых очень частных случаях — применительно к сетям с конфликтами. Если временная сеть является сильно связным синхрографом, то в ней можно обеспечить периодический режим работы с минимальным периодом. Такой режим достигается при использовании специального расписания включения переходов сети. (Расписание — это временной ряд вида 2 = (хг (/), т2 (/), ..., %h (/), ...), где / = 1, | Т |, a xh (/) — момент времени &-го по счету срабатывания перехода tj сети. В моменты, указанные в расписании, всегда выполняются условия возбуждения соответствующих переходов. Однако первые срабатывания переходов происходят не сразу в моменты их возбуждения, а с некоторой задержкой, предусмотренной расписанием.) По истечении небольшого времени после начала действия расписания ? моменты возбуждения переходов сети и моменты срабатывания, заданные в 2, будут точно совпадать уже на всем интервале времени дальнейшего вы- 98
полнения сети. Таким образом, для выведения сети на циклический режим с минимальным периодом необходимо с помощью расписания ? осуществить перераспределение взаимных временных сдвигов между отдельными процессами, установленными при начальном маркировании. Прикладное значение такого результата можно пояснить на примере моделирования циклически работающего автоматического оборудования. Допустим, что в некоторой производственной системе, в которой используется автоматическое оборудование циклического действия, применяется предварительно рассчитанное расписание начальных моментов подачи деталей, тары, оснастки, инструмента, включения транспортного оборудования и др. Если моделировать «разгон» такой системы, следуя правилу, согласно которому всякая подготовленная для выполнения операция реализуется немедленно, то при некоторых начальных условиях можно не выйти на быстрые периодические режимы, даже если такие режимы в системе потенциально возможны. За исключением очень немногих и весьма частных случаев анализ временных сетей недетерминированного типа формальными методами не проводится. Однако, задаваясь конкретными значениями временных задержек меток в позициях и начальной маркировкой сети, можно попытаться исследовать ее временные диаграммы имитационными методами. Основные трудности на таком пути связаны с наличием конфликтов, исключение которых при синхронизации процессов во временных сетях решается ничуть не проще, чем в сетях Петри. Это обстоятельство, а также ряд других ограничений, характерных для временных сетей, стимулировали разработку специальных формальных схем для имитационных исследований систем с помощью сетей событий. 3.2. ПРЕДСТАВЛЕНИЕ ИМИТАЦИОННЫХ МОДЕЛЕЙ СИСТЕМ В ВИДЕ СЕТЕЙ СОБЫТИЙ, ЯВЛЯЮЩИХСЯ РАСШИРЕНИЯМИ СЕТЕЙ ПЕТРИ Сети Петри и некоторые их обобщения, рассмотренные в предыдущем параграфе, представляют собой математические модели, построенные в рамках определенной концепции структуризации и на основе различающихся в отдельных деталях, но единых по своей сути регулярных технологических приемов формализации объектов исследований. Концепция структуризации базировалась на возможности представления моделируемых систем в виде совокупности параллельных процессов, взаимодействующих на основе синхронизации событий или распределения общих для нескольких процессов ресурсов. Каждый процесс в рамках этой концепции представлялся в виде логически обусловленных не упорядоченных по времени причинно-следственных цепочек условий и событий. Важной особенностью метода формализации, применяемого при построении сетей Петри (а также обобщений таких сетей), является 4* 99
то обстоятельство, что эти модели сами могут выступать в качестве объектов аналитических исследований, цель которых состоит в выявлении свойств сетей, хорошо интерпретируемых в терминах базовых понятий предметной области. Переходя к рассмотрению сетей событий, предназначенных для имитационного моделирования, следует специально указать, в чем проявляется ограниченность сетей Петри и их обобщений, какие положения концепции структуризации и технологии формализации сетей Петри могут оказаться особо полезными при построении на их основе математических моделей, ориентированных на машинную имитацию, в чем могут состоять основные проблемы создания подобных расширений сетей Петри. Сети Петри и построенные на их основе обобщенные модели имеют преимущественно качественный характер. Набор примитивов языка описания систем в виде сетей Петри, а также допустимые способы проблемно-ориентированной интерпретации этих примитивов, по всей видимости, достаточные в рамках разработанных концепций структуризации и формализации, оказываются неадекватными при построении оценочных моделей функционирования систем с параллельными процессами при сложных условиях синхронизации, нетривиальных приемах исключения конфликтов при распределении ресурсов, учете времени реализации событий. Непосредственное использование сетей Петри для формального анализа достижимости, живости, ограниченности, безопасности, консервативности и других свойств, как правило, связано с большими запросами на ресурсы памяти и высокими требованиями к быстродействию ЭВМ даже при относительно малых размерах сетей. Назначения сетей Петри и имитационных моделей, построенных для одних и тех же систем, существенно различаются. Сети Петри используют при проведении вычислительных экспериментов, целью которых является выяснение свойств сетей, рассматриваемых как объекты анализа, выполняемого в рамках некоторой формальной теории. Результаты этих экспериментов имеют значение установленных фактов, интерпретируемых некоторым определенным образом в терминах понятий исследуемой предметной области. Использование имитационных моделей связано с задачами оценивания, прогноза или интерпретации поведения системы, обусловленного выбором конкретных механизмов ее функционирования. В ходе машинной имитации осуществляются серии опытов (прогонов модели) и получаются ансамбли упорядоченных наборов данных — значений выходных переменных моделей. Имитационные модели включают только интерпретированные переменные. Каждая переменная по своему смыслу и допустимой области изменений должна быть адекватной некоторому понятию предметной области. Таким образом, имитационные модели служат средством получения интерпретированных данных о характере i 00
и особенностях функционирования системы при каждом выбранном (из множества возможных) способе определения структур, механизмов функционирования и параметров всех компонентных процессов. Только после специальной обработки полученных при имитации данных могут быть найдены экспериментально обоснованные интерпретированные оценки и прогнозы функционирования системы. При разработке сетей событий, предназначенных для имитации, в той или иной степени удается использовать практически все применяемые в сетях Петри и их обобщениях выразительные средства языка моделирования и, что еще более важно, в полном объеме использовать концепцию структуризации. В рамках этой концепции так же, как и в случае сетей Петри, объект моделирования представляется в виде ориентированного связного биграфа С = (Р, Г, ?), где Р — конечное непустое множество позиций (условий); Т — конечное непустое множество переходов (событий); Е ^ (РхТ) U (ТхР) — конечное непустое множество дуг (логически обусловленных причинно-следственных связей между событиями и условиями). Поскольку по построению биграф С = = (Р, 7\ Е) связен и для него выполняются условия Р (]Т = 0 и VPi. Pk?P:U (Pi) - / (Pk)) Л @ (Pi) = О Ы) ^ (р, = pk)t то этот биграф — сеть. Структуры сети имитационной модели и сети Петри, построенные пусть даже для одного и того же объекта, как правило, неодинаковы. Способ структуризации, принятый в сетях Петри, при разработке имитационных моделей является базовым. Однако итоговый вид сети событий в имитационной модели во многом определяется и некоторыми другими дополнительными структурообразующими факторами. Например, можно пытаться построить сеть событий из небольшого набора типовых фрагментов, вид которых в некотором смысле наилучшим образом соответствует возможностям использования реализующих средств какого-либо класса языков программирования имитационных моделей. В сетях Петри переход возбуждался при наличии меток в каждой входной для данного перехода позиции, и в этом проявлялся структурообразующий принцип о причинной связи событий с до- условиями. В сетях с переменной кратностью дуг использовались дополнительные буферные позиции, значения емкостей которых задавали кратности дуг сети. При этом кратности дуг, инцидентных некоторому переходу tj ? Г, ставились в зависимость от состояния позиций сети, не обязательно смежных с tj. В имитационных моделях такая идея стала одним из ведущих структурирующих принципов. Множества позиций сети, соответствующих в системе условиям, формулируемым в виде неразложимых, элементарных высказываний, дополняются предикатными позициями, управляющими возбуждением переходов в зависимости от состояния фактически любого (логически обусловленного) подмножества непредикатных позиций. 101
Наряду с уже рассмотренными нами могут быть использованы и различные другие идеи формирования структур сетей событий в имитаторах. Мы увидим это позднее на примерах Е- и КОМБИ- сетей. Важно подчеркнуть, что любые развивающие базовую концепцию дополнительные структурообразующие факторы, как правило, самым тесным образом связаны с применяемыми методами формализации процессов функционирования сетей. С одной стороны, эти факторы приводят к интерпретированным в предметной области структурным решениям относительно различных фрагментов сети, позволяющим рационализировать способы реализации в имитационной модели часто очень сложных процедур синхронизации параллельных процессов и исключения конфликтов при разделении ресурсов. С другой стороны, дополнительные идеи структуризации играют не менее важную роль при обеспечении эффективной технологии программирования моделей, а также собственно технологии проведения имитационных экспериментов с моделями на ЭВМ. Говоря о построении математических описаний и алгоритмизации механизмов функционирования процессов в сетях событий, необходимо назвать основные средства (факторы формализации), применение которых при построении имитационных моделей позволяет получить отображения систем, адекватные поставленным задачам исследования. В имитационных моделях широко используются рассмотренные нами ранее формализующие факторы: механизм разметки сети, включая разметку позиций различимыми метками; механизм блокировки меток, поступающих в выходные позиции переходов, на некоторое заданное конечное время; механизм назначения приоритетов, устанавливающий порядок срабатывания переходов при возникновении конфликтов (см., например, сети с приоритетами [4]). Характерным для имитационных моделей формализующим фактором является применяемый в них новый механизм описания состояний сети. Метки в расширенных сетях Петри являются носителями определенного количества атрибутов, в качестве которых могут выступать числа, логические переменные, текстовые конструкции, массивы, таблицы. Атрибуты меток могут быть функциями времени. Переходы меток при выполнении сети сопровождаются изменениями значений атрибутов. Эти изменения подчиняются специально определяемым в модели правилам (процедурам перехода). Механизм учета времени реализации событий в имитационных моделях имеет особое значение. В расширениях сетей Петри средства описания процессов синхронизации событий значительно более развиты, чем рас* смотренный нами ранее механизм блокировки меток во временных сетях. 102
3.2.1. Временные сети событий1 Подобно сетям Петри, временные сети событий характеризуются структурой, текущим состоянием и механизмом изменения состояния. Структура временных сетей событий (ВСС) представляет собой связный биграф и задается тройкой (Я, 7\ ?), где Р — конечное непустое множество позиций; Т — конечное непустое множество переходов; Е — отображение вида Т-> & (Р)\ <Р (Р)— множество всех подмножеств Р. Позиции сети Pi^P, /?{1,... ..., | Р |} отображают в модели все основные состояния процессов. Переходы tj ? Г, / ? {1, ..., | Т \ } соответствуют событиям. Отображение Е (tj) находит все смежные с tj позиции из множества Р. Состояние ВСС определяется маркировкой позиций, М : Р-* -* N—функция маркировки, (М (pi), ..., М (р\р\)) — разметка сети. Применяемые в ВСС метки имеют атрибуты: (а1э ..., ahЛ — вектор атрибутов метки в позиции pt ? Р. Значения некоторых атрибутов могут быть функциями времени. Например, если позиция pi моделирует в сети состояние «Идет обработка детали», то атрибут ат в списке атрибутов метки (alt ..., ат, ..., ak\ может означать время, оставшееся до конца обработки. Как правило, М (pt) <C 1. Равенству соответствует тот факт, что состояние pt некоторого процесса в системе, представленное в модели некоторым элементарным высказыванием, реализовалось. Если М (р^ > 1, то наиболее простыми интерпретациями в этом случае являются состояния, возникающие при накоплении объектов, участвующих в процессе. Важно указать, что при М (pt) > 1 необходимо упорядочивать множество меток в позиции. Например, если pt моделирует стек или очередь, то метки в позиции упорядочиваются линейно. Механизм изменения состояний ВСС связан с выполнением переходов tj ? Т. Каждый переход можно записать в виде тройки (uj, Sj, Vj). Здесь Uj — условие возбуждения; Sj — схема выполнения, a Vj — процедура перехода. Условие возбуждения Uj — это предикат, определенный на множестве позиций из Е (tj), истинный только в том случае, когда реализуется некоторая заданная разметка позиций множества Е (tj). Кроме того, условие возбуждения может включать еще проверку значений атрибутов меток. Если значение какого-то атрибута является функцией времени, то обеспечивается соответствующая значению данной функции временная задержка. Схема выполнения определяет изменение разметки позиций сети при срабатывании перехода. Пусть Е (tj) — упорядоченное множество позиций, смежных с tj. Тогда схема Sj — это вектор, элементы которого образуют биекцию с элементами множества 1 Временные сети событий разработаны в 1986 г. П. Е. Отвагиным (ЛЭТИ им. В. И. Ульянова (Ленина)). 103
E (tj). Любое положительное целое число в Sj обозначает число меток, помещаемых в соответствующую позицию после выполнения перехода. Целые отрицательные числа в Sj указывают число удаляемых меток из соответствующих позиций. Нулевые значения компонент отмечают изменяемые позиции (каждая изменяемая позиция не обязательно имеет единственную метку и образует с переходом tj цикл длины 2). Не изменяемые в результате срабатывания перехода позиции отмечаются в Sj символом (*). Процедура перехода Vj представляет собой правила вычисления атрибутов (для позиций, отмеченных в Sj нулем) или добавления меток. Графическое изображение ВСС имеет некоторые отличительные особенности по сравнению с графическими представлениями ранее рассмотренных нами сетей. Каждая позиция ВСС обозначается кружком, каждый переход — барьером, позиции и переходы соединяются ориентированными или же неориентированными ребрами в соответствии с отображением Е и схемой выполнения перехода Sj. Ребро не ориентируется, если в схеме Sj для соответствующей позиции указывается символ (*). Ребро ориентируется от позиции к переходу, если в Sj для этой позиции задано отрицательное число. Ребро ориентируется от перехода к позиции, если в Sj для данной позиции указано положительное число. Ребро является двунаправленным, если оно соединяет переход с позицией, для которой в Sj значится число 0. При разработке ВСС, как, впрочем, и любой другой имитационной модели из класса расширений сетей Петри, выделяются четыре основных этапа: структуризации; формализации и алгоритмизации; программирования модели; программирования имитационных экспериментов с моделью. На этапе структуризации определяются действующие в системе процессы и используемые ресурсы, множества позиций (отображают в модели состояния процессов и ресурсов) и переходов (событий), подмножество синхронизирующих переходов. Только в очень простых задачах моделирования все перечисленные множества удается построить сразу в окончательном виде. Обычной является ситуация, когда состав множеств позиций и переходов сети неоднократно уточняется. При формализации и алгоритмизации элементов модели для каждой позиции определяются атрибуты меток, ограничения на число меток, способ упорядочения меток. Переход считается формально описанным, если известны множества смежных с этим переходом позиций, условия возбуждения перехода, схема выполнения и процедура перехода. Этап программирования модели связан с разработкой описаний позиций и переходов сети, оформляемых в виде фрагментов программ на некотором выбранном языке программирования. Программирование имитационных экспериментов с моделью практически сводится к включению в программу модели операто- 104
Рис. 3.7* Схема производственного участка ров, обеспечивающих задание начальных условий, сбор статистики, управление прогонами модели. Пример 3.4. Рассмотрим функционирование производственного участка простой структуры (рис. 3.7). На участке работают четыре станка Ctnl—Стп4 с ЧПУ, роботизированный транспорт и два позиционных конвейера ПК1—ПК2. Станки обрабатывают заготовки, установленные на спутниках. Каждый станок, завершивший обработку заготовки, выдает запрос на перезагрузку. Операции перезагрузки станков выполняет ТМ, который может перемещаться из позиции 1 в позицию 2 и обратно. Находясь в позиции /, i — 1,2, ТМ обслуживает группу станков (Cmu_lt Cmti). Получив заказ на перезагрузку от Cm2*_i» например, ТМ снимает с него спутник с готовой деталью и загружает спутник в свободную позицию Я/С*. После этого ПК( передвигается на один такт, в результате чего в позиции загрузки Я/Cj, доступной ТМ, оказывается спутник с заготовкой. ТМ переносит спутник с заготовкой на Cm,j_i, и ожидает поступления новой заявки. ПК( сохраняет свое состояние. Его позиция загрузки свободна. На участке принята следующая система организации обслуживания. Если ТМ находится в позиции i и имеется заявка от группы (Cm2i_i, Cmu)f то обслуживаются станки этой группы (i = 1, 2). Если ТМ находится в позиции i(i=\, 2), имеется заявка от группы (Cm5_2i, Cm6_2i), а заявки от станков группы (Cm2*_i, Cm2i) нет, то ТМ переходит в позицию 3 — i, где затем выполняет операции перезагрузки станков. Если ТМ находится в позиции i (/ = 1, 2) и имеются заявки от Стг^± и Cm2it то первой ТМ выполняет заявку, поступившую от Cm2i-x. Структуризация модели. Прежде всего рассматриваются активные элементы: Crnj, i = 1,4; nKj, j — 1,2; ТМ. Функционирование станков и ТМ взаимообусловлено. ПК и Cm непосредственно не связаны. ПК играют в системе роль накопителей. Через них осуществляется связь по материальному потоку системы с внешней средой. Работа системы может быть описана с помощью четырех однотипных процессов, отображающих действия станков, и одного процесса, моделирующего изменения состояний оборудования транспортно-накопнтельной системы ПК1— ТМ—ПК2 (см. рис. 3.8, 3,9). Функционирование Cm*, /— 1,4 можно описать, используя для этого два состояния (pi — Cmt обрабатывает заготовку; pi+A — Ст\ простаивает) и два перехода (Г| — Cmi закончил обработку детали, ^+4 — Сщ начал обработку заготовки). Переходы ^-+4, i = 1,4, по-видимому, являются синхронизирующими, поскольку их срабатывание зависит не только от состояния pf. Процесс, реализуемый транспортно-накопительной системой, представляется сетью из пяти позиций и пяти переходов (см. рис. 3.9), гдер9 — ТМ простаивает; р10 — ТМ перемещается в рабочую позицию; рхг — ТМ снимает со станка готовую деталь, закрепленную на спутнике; р12 — такт работы ПК\ pi3 — ТМ установил спутник с заготовкой в рабочую позицию станка; /9 — ТМ выбирает рабочую позицию A или 2)\ /10 — ТМ прибыл в рабочую позицию, ТМ выбрал заявку для обслуживания; /п — ТМ снял готовую деталь со станка и перенес ее в загрузочную позицию ПК; /^ — TJK выполнил рабочий такт; ti+i — ТМ закончил установку спутника с заготовкой на станок. Станок начал обработку. Как следует из рис. 3.8, 3.9, переход /j+4, i = 1,4 используется в каждом построенном нами процессе: 105 ПН1 ПК2 Г/77/ ТМ Н^О К/772 СтЗ 1 1 J- .1 / Г/77 4 ¦
До-условия Событие Пост-условия <+4 '13 i+4 Pi Р* Таким образом, в результате выполненной структуризации установлено: в системе функционируют пять процессов; состояния процессов моделируются 13 позициями; события в системе описываются с помощью 13 переходов; переход ti+Ay i — 1,4 — синхронизирующий. Так как рассматриваемый пример простой, то далее без ущерба для ясности изложения можно одновременно выполнять формализацию, алгоритмизацию и программирование элементов модели. В качестве языка программирования можно использовать GPSS [14]. При кодировании ВСС на этом языке целесообразно иметь в виду следующее: 1. Представление маркировок позиций объектами GPSS зависит от того, является ли позиция ограниченной и есть ли атрибуты у меток, помещаемых в позицию (табл. 3.1). Во всех случаях маркировка позиции может описываться транзактом или очередью транзактов, находящихся в определенной точке программы. Атрибуты меток могут быть представлены параметрами транзактов. Маркировка хотя бы одной позиции, смежной с некоторым переходом, задается транзактом, который при выполнении условий срабатывания перехода обеспечит выполнение процедуры перехода Vj. Если атрибуты меток являются функциями времени, то нужно использовать блок ADVANCE. Заметим, что в целях получения более эффективной программы представление маркировки позиций можно дублировать разными способами. 2. При программировании переходов проверка условия выполнения uj может быть обеспечена блоком TEST. Однако правильнее использовать блоки GATE, SEIZE. Можно также применять блок ASSEMBLE, если все транзакты в программе принадлежат одному ансамблю. Заметим, что если условия выполнения перехода определяются маркировкой единственной позиции, то реализация перехода обеспечивается транзактом, появляющимся во входной позиции. Проверка ограничений на значения атрибутов, являющихся функциями времени, выполняется блоком ADVANCE, который осуществляет проверку на нуль изменяющегося атрибута. Заметим, что использование GPSS для программирования ВСС допускается только для тех атрибутов, которые, являясь функциями времени, имеют смысл временных задержек. 3. Способы представления позиций следует выбирать из соображений наиболее эффективной реализации переходов на языке моделирования. Поэтому Рис. 3.8. Структура процесса, описывающего функционирование станка Рис. 3.9. Структура процесса, описывающего функционирование транс- портно-накопительной системы г,- tw~ t11- tll- */¦* — \Р9 1 )W Г1 у12 \PtS 106
Таблица 3.1. Представление маркировок позиций объектами GPSS Тип позиции 1-ограниченная (безопасная) ^-ограниченная Неограниченная Атрибуты отсутствуют Состояние устройства, логический ключ Сохраняемая величина (счетчик) имеются Сохраняемая величина Матрица, цепь транзактов Цепь транзактов, цепь пользователя выбор программных реализаций позиций целесообразно совмещать с программированием переходов. Алгоритмизацию и программирование выполним отдельно для каждого перехода, учитывая при этом, что переходы связаны между собой через общие позиции. Переходы г$ (i = 1, 4) (рис. ЗЛО, а). Позиции pi и pi+4 не могут содержать более одной метки. Наличие или отсутствие метки в позиции характеризует состояние станка (работает, простаивает). Метка в позиции pt имеет единственный атрибут т — время, оставшееся до конца обработки заготовки. Метка в позиции pt+i атрибутов не имеет. Условие выполнения перехода tf. Иг=(М(р() = 1)Л(т(рг) = 0). Схема срабатывания перехода tf. ?('l) = ("i. P«+4). Si = (-b +1). Процедура перехода не задается. Будем моделировать наличие (отсутствие) метки в позиции р% состояниями «Занято» («Свободно») t'-ro устройства GPSS. Изменяющийся атрибут т — временная задержка блока ADVANCE. Наличие (отсутствие) метки в pi+A будем моделировать состояниями «Свободно» («Занято») 1-го устройства GPSS. Переходы г$, i = 1,4 реализуются следующими фрагментами программ на GPSS (предполагается, что номер перехода задается параметром Р1 транзакта): POSI ADVANCE RELEASE FN*1 PI Переходы ^+4; i = 1,4 (рис. 3.10, б). Каждый из этих переходов — синхронизирующий (до-условия: р13 и р^+4; пост-условия: р9 и р{). Маркировка пози- Pi PL+ч Pf3 Pj Ре Р? Рв Pg Ps Рв Р? Рв Рю ГЛР// Ш.2ШВДН & О О О О 6* г) Рис. ЗЛО, Структуры моделей переходов ВСС Pi+ь Pi Pg а) Л 107
ций pi и р/+4 Уже определялась. Позиции р9 и pJ8 также являются безопасными. Метка в позиции р13 имеет три атрибута: т — время, оставшееся до завершения операции установки на станке спутника с заготовкой; х — номер рабочей позиции ТМ A или 2); X — номер обслуживаемого станка A—4). Метка в позиции р9 имеет только одии атрибут х — номер рабочей позиции ТМ» Условие выполнения перехода ^+4: »Ш = (М (Ри*) = ') Л (М (Рхг) = ') Л (* (Р18) = О Л (* (Ри) = 0). Схема выполнения перехода si+i: E(tM) = (pt«. Pi,.pt- р,У> sJ+4 = (-i,-i,+i.+i). Процедура перехода fj+4: °«+4 = (TCi): = E|; * (P9) : = * Ы)' где %i — средняя продолжительность обработки детали на /-м станке. Ранее уже были выбраны программные представления маркировок для позиций pi и pf+4- Наличие метки в позиции р13 будем описывать транзактом, находящимся в блоке ADVANCE, атрибут т — временной задержкой в блоке ADVANCE, атрибут н — параметром Р1 транзакта, атрибут к — сохраняемой величиной POS. Наличие (отсутствие) метки в р9 задается состояниями ТМ «Свободен» («Занят»). Фрагмент GPSS-программы, реализующий переходы ti+i, имеет вид POS13 ADVANCE 15,5 RELEASE 5 SEIZE PI ADVANCE FN * 1 Оператор с именем TRI, устанавливающий значение атрибута в позиции POSI, используется также и при описании перехода ti для проверки условия т (Pi) = 0. Переход t9 (рис. 3.10, в). Этот переход синхронизирует работу ТМ с станками участка. Маркировка позиций рб — р9 уже была определена выше. Позиция Рю — безопасная. Метка в этой позиции имеет два атрибута: к — номер выбранной группы станков (то же самое, что и номер рабочей позиции ТМ); т — время, оставшееся до конца перемещения ТМ. Условие выполнения перехода tQ: и9 = (М (р9) = 1) Л W (Рь) = 1) U (М (рв) = 1) U W (р7) = 1) V ДО (Ре) = 1)). Схема срабатывания перехода /9: ?(*о) —(Рь. Ре, Р7. Р8> P*i РюУ* «» = (*. *. *. *. —1. +!)• Процедура перехода tQ: v* = ((х (рв) = 1 Л {М (Рь) « 1 V М (р7) = 1)) V (х (р9) = 2 Л (М (рб) = = 1 V Л! (р8) - 1)) -х (р10) - х (р9); т (р10) = 0 в противном случае ->• х (pi0) = 3 — х (р9); т (р10) = 10) Программные представления для позиций р5 — р9 уже выбраны. Маркировка позиции р10 задается транзактом, находящимся в блоке ADVANCE, атрибут т — временной задержкой в блоке ADVANCE, атрибут х — сохраняемой величиной POS. 108
Фрагмент программы, реализующей переход t9: TRN9 1 MOVE POS10 TRN91 SEIZE TEST NE BVARIABLE SAVEVALUE VARIABLE ADVANCE ADVANCE 5 BVlfl,TRN91 (XHPOS'E' l)*(FNUl+FNU3) + (X П POST' 2) * (FNU2 + FNU4) POS}VHMOVE 3—XnPOS 10 0 Транзакты, появляющиеся перед блоком SEIZE, моделируют выполнение только части условия и9: W (рь) = 1) V (М (рв) = 1) V (М (pi) = 1) V (М (Ре) = 1)). Переход t10 (рис. 3.10, г). Маркировка позиций р5 — pg, Рю определена выше. Позиция рп — безопасная и имеет атрибуты: х — время, оставшееся до окончания операции перегрузки готовой детали со станка на ПК; х — номер рабочей позиции ТМ; X — номер обслуживаемого станка. Условие выполнения перехода t10: "ю = (М (рю) = 1) Л (* (Рю) = 0). Схема срабатывания перехода t10: ^('ю) = (Рб. Ps» Ръ р8. Ре. Pu); s10 = (*, *, *, *, —1, +1). Процедура перехода t10: vl0 = (т (ри) : = g2 (случайная величина, задающая время перегрузки); к(Рп) : = х(р12); х(р10) = 1 Д М(рб) = 1 -МРп)= 1; х (Pio) = 1 Л Л1 (Рб) = 0 -* X (рп) = 3; х (Рю) = 2 Л Л! (рв) = 1 -* * (Рп) = 2; х (Рю) = 2 Д М (Ре) = 0 -> X (ри) = 4). Значение атрибута X поместим в первый параметр транзакта, выполняющего процедуру перехода. Атрибуты тих имеют прежнее представление. Фрагмент GPSS-программы, описывающий переход /10, имеет следующий вид: POS10 ADVANCE 10 ASSIGN l, V*X?POS 1 VARIABLE 2*F1+1 2 VARIABLE 2*F2+2 POSH ADVANCE 15,5 Переход tn (рис. 3.10, д). Маркировка позиции р12 удовлетворяет тем же правилам, что и маркировка позиций рп и р13. Условие выполнения перехода ttl: «и = (Af (Рп) = 1)Л (т(Рп) = 0). Схема срабатывания перехода /п: S('ii) = (pii, pu); sVn-(-U +0- Процедура перехода txl: »п = (т (Pu) = 5; х (р12) : = х (рп); Я (р1а) : = X (ри)). Переход t12 (рис. 3.10, д). Поскольку представления маркировок всех позиций, смежных с t12t известны, запишем 2 = (М (р18) = 1) Л С* (Pi2) = 0) ? d2) = (Pi2. Pis); si2 = (— l. +0 »i2 = (т (Ри) = 52; * (Pis): = * (Pi2); *• (pis): = х (р«))- 109
Фрагмент GPSS-программы, моделирующий переходы % и fja» записывается в виде: POSH ADVANCE 15,5 POS12 ADVANCE 5 POS13 ADVANCE 15,5 Теперь можно объединить в одну общую сеть все построенные для отдельных переходов фрагменты ВСС (рис. 3.11). Программа, имитирующая процессы выполнения ВСС, после включения в нее операторов, задающих начальные условия и управление экспериментами, будет иметь следующий вид: 1 0,90/1,111 2 FUNCTION FUNCTION 0,100/1, 141 3 0,80/1,121 4 0,90/1,151 TRN9 1 MOVE POS10 TRN91 1 2 POSH POS12 POS13 INIT POSI # * * FUNCTION FUNCTION SAIZE TEST NE ВVARIABLE SAVEVALUE VARIABLE ADVANCE ASSIGN VARIABLE VARIABLE ADVANCE ADVANCE ADVANCE RELEASE SAIZE ADVANCE RELEASE TRANSFER RN1,C2 RNI.C2 RN1,C2 RN1,C2 5 BV1,1,TRN91 ¦ Переход Т9 (XHPOS'E'l) *(FNU1+FNU3)+(XOT0S'E'2) * (FNU2+FNU4)) POS, VHMOVE 3— XHPOS 10 l,V*XHPOS 2*F1+1 2*F2+2 15,5 5 15,5 5 PI FN*1 PI ,TRN9 ¦ Позиция Р10, переход Т10 ¦ Позиция PI 1, переход Til ¦ Позиция Pi2, переход Т12 * Позиция Р13, переходы Т5—Т8 * Позиции Р1—Р4, переходы Т1—Т4 *Этот блок передает транз- акты, используемые для запуска перехода Т9 Начальные условия GENERATE SPLIT TRANSFER INITIAL .,1 3, INIT,1 ,INIT XHPOS,! Управление моделированием GENERATE TERMINATE START END 50000 1 I 3.2.2. ?-сети * Одновременный * запуск всех * станков * начальное положение ТМ ?-сети [12, 15, 24, 25, 26] применяются в качестве имитационных моделей систем, структурируемых в виде сетей событий. Формально они определяются набором из восьми элементов: Е = ((Л В, Я), Л, (/ (Л), О (A)), Z, V, Q, Y, М0). ПО
кж> Рп *н Ptt Ри<$. З.П. ВСС производственного участка Первый элемент набора обозначает: конечное непустое множество позиций сети Р — {pi}; множество периферийных (не внутренних) позиций В = = {bk} а Р\ множество решающих позиций R — = {гт} а Р. Позиции Pi ?P \ R играют в ?-се- тях ту же самую роль, что и в сетях Петри. Их графические изображения также совпадают (кружки). Периферийные позиции Ьь^В cz P используются для моделирования взаимосвязей системы с внешней средой. Решающие позиции не имеют прямых аналогов в сетях Петри. С их помощью в *t9 Ря P/j Е-сетях обеспечивается разрешение конфликтов и синхронизация событий. С каждой решающей позицией связан некоторый список предикатов, применяемый для формального описания условий выполнения переходов. На графах, изображающих ?-сети, решающие позиции задаются шестиугольниками. В каждом состоянии сети позиции могут иметь или не иметь метку. В ?-сетях метки не накапливаются. Число меток в каждой позиции не может быть больше единицы (М : Р -> {0,1} — функция разметки сети). Наличие метки в позиции отмечается на графе ?-сети жирной точкой. Второй элемент набора соответствует конечному непустому множеству переходов А — {ап}. На графических изображениях ?-сетей переходы, как и прежде, задаются барьерами. Третий элемент (/ (Л), О (А)) обозначает множество позиций, смежных с переходами по входу (/) и выходу (О). Пары (piy an) ? ? / (А) х А и (аП9 р^ ? А хО (Л), составленные из смежных позиций и переходов, соответствуют дугам сети. Четвертый элемент — это функция Z : А -> R+, с помощью которой в ?-сетях задаются значения времени выполнения переходов. Таким образом имитируются временные задержки, связанные с реализацией моделируемых событий. Пятый элемент набора V = {vs} задает непустое конечное множество переменных — количественных оценок состояния модели. 111
Р/ V Рг *CH-0 СН_Д AjR3 "°-Л Г(p1f Рг) КРь р2, р3) rj aj rj i 0 - о о- Pi qo-i 4). O^ Рг Рз L/Л F(Pt, Pz, Рз) ^ ? Гч-У rj 4 *cH pj p/ Pz ¦o o- /V I»Q^ »Y(rJ.Pt,-~PKH> Rx ^•/ A, /fc ^ ^7, /7/, /fc, /^ Pk+1 MX(rJfp1,...pK.1) Рис. 3.12. Типы переходов Шестой элемент Q = {qm} описывает множество решающих процедур, применяемых в ?-сетях для разрешения конфликтов на переходах и синхронизации событий. Седьмой элемент — множество ? = {фп} процедур переходов. Восьмой элемент М0 = (М0 (pi), ..., М0 (Р\р\)) обозначает начальную маркировку позиций. При построении ?-сетей используется ограниченный набор типов переходов: Г, /, F, X, У, MX, MY. Два последних типа (MX и MY) являются соответственно макрорасширениями X- и У-переходов (рис. 3.12). Схемы выполнения переходов каждого типа приведены ниже: Тип Т (Рь рг) Схема выполнения A, 0) -* @, 1) Комментарий', переход активный, если р± имеет метку, а ра свободна. После срабатывания перехода появляется метка в р2, метка из р± удаляется. Тип F (Pi, pj, рз) Схема выполнения A, 0, 0) -* @, 1, 1) Комментарий: переход активный, если имеется метка в рь а в р2 и р3 свободные позиции. После срабатывания перехода появляются метки в позициях р2 и р3. Метка из рх удаляется. Тип I (рх, ра. Рз) С*ежа выполнения A, 1,0) -> @, 0, 1) Комментарий: переход активный, если рг и р2 имеют метки, а р8 свободна. После срабатывания перехода появляется метка в р3. Метки из Pi и р2 удаляются. Гил X (г/, рь ра, Рз) Схема выполнения @, 1, A.1. @, 1, @, 1, 0. 1. A. 1. 0, 0)-(*. 0, 0) - ( * , 1, 0)-(«, 0, 1)-(», 1, 0)-(» 0, !)-*(* 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0. 1, 0) 1) 1) 1) 1) 1) 112
Комментарий: если р8 и р8 свободны, а в pj имеется метка, то на переходе возникает состояние конфликта. Конфликт исключается по значению решающей позиции: если М (rj) — 0, то метка «переходит» из рг в р2; если М (rj) — 1, то метка переходит из рг в р8. Значения М (rj) находятся в результате применения решающей процедуры q (rj) ? Q. Ее выполнение заключается в проверке значений предикатов prl (rj) и pr2 (rj). При истинности какого-то одного из них, например prl (rj) = 1, М (rj) — \\ при истинности другого М (rj) = 0. Если оба предиката имеют ложные значения, то М (rj) — «Неопределенность». В этом случае решающая позиция блокирует переход до момента результативного выполнения процедуры q (rj) (* означает, что необходимо снова определить значение М (rj)). Если на переходе конфликта нет (свободна только какая-то одна выходная позиция) и имеется метка в позиции plf то переход будет выполняться по Г-схеме и по единственно возможному пути, независимо от того, какое значение имеет при этом решающая позиция. Тип Y (rj, pi, р2, р3) Схема выполнения @, 1, 1, 0)-+(*, 0, 1, 1) A, 1, 1, (>)-+(¦, 1, 0, 1) @, !, 0, 0)-+(*, 0, 0, 1) @, 0, 1, 0)-+(*, 0, 0, 1) A, 1, 0, 0)-+(*, 0, 0, 1) A, 0, 1, 0)-+(*, 0, 0, 1) В бесконфликтных случаях переходы выполняются по Г-схеме и по единственно возможному пути независимо от значения М (rj). Макропереходы определяются несколько сложнее, чем соответствующие схемы Х- и F-переходов. Однако главным в них по-прежнему остается сравнение значений решающей позиции и меток инцидентных переходу дуг [15, 25]. Важно заметить, что при определении ?-сетей не вводились какие-либо ограничения на тип переходов, составляющих множество А. Поэтому ?-сети, в которых используются только лишь переходы заранее установленных типов, образуют некоторый специальный подкласс. Смысл введения такого подкласса можно объяснить соображениями удобства реализации программ функционирования ?-сетей на широко распространенных языках моделирования (например, СИМУЛА-67 или GPSS) [5, 8, 16, 17]. Каждый переход ?-сети имеет три характеристики и записывается как ап = (лп, zn, г|)п), где л^П — тип перехода; гп ? ? Z — время перехода; урп — процедура перехода. Переход ап ? ? А выполняется в три этапа. Сначала проверяются условия активности перехода, а для Х- и F-переходов еще и находятся значения решающей позиции и определяется конкретная схема срабатывания. На следующем этапе реализуется задержка выполнения перехода на время Z и пересчитываются значения атрибутов метки по правилам, указанным в процедуре tyn. На заключительном, третьем этапе в точном соответствии со схемой перехода изменяются маркировки его входных и выходных позиций. Пример 3.5 [12]. Гибкий производственный модуль (ГПМ) автоматизированного участка имеет в своем составе пять РТК и один ТМ. Кассеты с заготовками, пустая тара (палетки и кассеты), палетки с обработанными деталями хранятся 113
Рис. 3.13. Фрагмент ?-сети на автоматизированном складе (АС) участка. На вход РТК подаются заготовки в кассетах. Из кассет заготовки выгружаются в приемный бункер станка. На выходе РТК устанавливается палетка, в которой фиксируются обработанные детали. Кассеты с заготовками и пустые палетки подаются на РТК со склада с помощью ТМ. Кроме того, ТМ переносит пустые кассеты, кассеты с ненужными заготовками и палетки с готовыми деталями от РТК на склад. Все операции по загрузке ячеек склада выполняет робот-штабелер (РШ). Воспользуемся приведенным описанием материальных потоков в ГПМ для построения ?-сети (рис. 3.13). Введем обозначения: рх — состояние бункера РТК перед проверкой; р2-- в бункере имеются заготовки; р3 — бункер пуст; р4 — ТМ загрузил в бункер первую партию заготовок; рб — заготовка может быть подана на рабочую позицию РТК; Ре — требуется загрузить в бункер заготовки того же типа; р7 — требуется загрузить в бункер заготовки другого типа; р8 — РТК подготовлен к выполнению операции обработки заготовки; р9 — число партий обработанных заготовок меньше установленного производственным заданием; р10 — обработка очередной заготовки завершена; рп — состояние РТК после завершения обработки; р12 — обработанная заготовка зафиксирована в палетке; р13 — выработана очередная партия изделий; р14 — производственная программа обработки партий заготовок данного конкретного типа выполнена; р16 — завершена подготовка РТК к выполнению новой производственной программы (из бункера выгружены оставшиеся в нем заготовки, РТК переведен на программы обработки заготовок другого типа); р1б — число заготовок в палетке меньше установленного размера партии; р17 — иа выходе РТК установлена пустая палетка; Pi8 — обработанная заготовка может быть установлена в палетку; р19 — сгенерирована заявка 1-го типа; р20 — сгенерирована заявка 2-го типа; р21 — заявка /-го типа (/ = 1,2) от /-го РТК (i = 1, ..¦, 5) принята ТМ и поставлена послед- 114
ней в очередь; р22 — первая в очереди заявка поступила на обслуживание; р2з — ТМ выполняет заявку 1-го типа; р24— ТМ выполняет заявку 2-го типа; р25— местоположение ТМ установлено; р26 — ТМ подошел к РТК и взял кассету (пустую или с выгруженными из бункера заготовками); р27 — ТМ подошел к месту контакта с РШ передал ему кассету; р28 — ТМ получил от РШ кассету с новой партией заготовок; р29 — ТМ свободен; р30 — ТМ подошел к РТК и взял палетку с обработанными заготовками; рг1 — ТМ подошел к месту контакта с РШ и передал ему палетку с партией обработанных заготовок; р32 — ТМ получил от РШ пустую палетку; р33 — ТМ свободен; гг — оценка результатов проверки заполнения бункера РТК; г2 — оценка вариантов возможных состояний бункера РТК; /*з — оценка вариантов состояния РТК при пустом бункере; г4 — оценка варианта заявки 1-го типа; гъ — оценка состояния РТК перед проверкой заполнения бункера; гв — оценка результатов проверки готовности партии; г7 — оценка результатов проверки выполнения производственной программы; rQ —¦ оценка вариантов состояния РТК по наличию свободных позиций в палетке; гд — оценка типа заявки, поступившей от РТК к ТМ; г10 — оценка вариантов заявок, поступивших от РТК к ТМ; г^ — оценка вариантов возможного местоположения ТМ; У± — анализ состояния бункера; Х2 — проверка заполнения бункера; К8 — проверка возможности подачи заготовки из бункера на позицию обработки; Х4—формирование заявки 1-го типа; Уь— генерация заявки 1-го типа; /в — проверка готовности РТК к выполнению технологической операции; /7 — обработка заготовки; F8 — установка обработанной заготовки в палетку; Х9 — проверка готовности партии; Х10 — проверка выполнения производственной программы; Уц — проверка состояния палетки; Т12 — подготовка РТК к выполнению новой производственной программы; Т13 — генерация заявки 2-го типа; МУи — постановка заявки в очередь на обслуживание; Г1б — вход заявки в очередь; 7\6 — выход заявки из очереди; Х17 — идентификация заявки; /18 — включение ТМ на обслуживание заявки 1-го типа; /19 — включение ТМ на обслуживание заявки 2-го типа; Г20 — перемещение ТМ к РШ; Т21 — ТМ ожидает прибытия РШ с кассетой с заготовками; F22 — ТМ перемещается к РТК и загружает заготовки в бункер; Г23 — перемещение ТМ к РШ; Т24 — ТМ ожидает прибытия РШ с пустой палеткой; F2b — ТМ перемещается к РТК и устанавливает на нем пустую палетку; У26 — генерируется сигнал о местоположении ТМ. Полная модель материальных потоков должна содержать не один, как показано на рис. 3.13, а все пять РТК, действующих в составе ГПМ. Способ включения нового РТК в построенную на рис. 3.13 ?-сеть очевиден. Заметим, что и эта полная модель материального потока в ГПМ может быть естественным образом расширена до масштабов модели материального потока ГАУ, где будут взаимодействовать несколько ГПМ, работающих по конвейерной схеме через один общий склад [12]. Возможны и другие, представляемые в виде ?-сетей, варианты расширения имитационной модели материальных потоков в ГПМ. В качестве количественных оценок функционирования ?-сети, представленной на рис. 3.13, можно, например, выбрать следующие переменные: иг—¦ число заготовок в бункере; v2 — тип изделия — код (а, Ь, с, ...), применение которого связано с назначением условий обрабогки на РТК и транспортирования с помощью ТМ и РШ заготовок каждого типа; v3 — число партий, выработанных в ходе выполнения текущего производственного заказа (партия соответствует Н обработанным заготовкам и целиком помещается в одной палетке); с>4 — число заготовок в палетке; t>5 — тип заявки к ТМ (vb = 1, 2); и6 — местоположение ТМ (i>e= PTK1, ..., РТК5); u7 — номер РТК, пославшего заявку на обслуживание; v8 (v9) — число выполненных ТМ заявок 1-го B-го) типа; viq — среднее за интервал моделирования значение времени простоя РТК по причине дефицита заготовок; vn (v12)— средняя (максимальная) за интервал моделирования длина очереди заявок 1-го типа, поступивших к ТМ от РТК; ui3 (vu) — средняя (максимальная) за интервал моделирования продолжительность пребывания заявок 1-го типа в очереди к ТМ и др. Множество V переменных модели образует две группы: Vi — переменные, обеспечивающие выполнение ?-сети; V2 — собственно оценочные переменные, характеризующие функционирование сети. Так, в рассматриваемом нами при- 115
мере из четырнадцати указанных переменных первые семь можно отнести к Vlt а остальные — к V2. Количество фактически используемых переменных ограничивается выбором длины L вектора атрибутов метки М (pt) — (М [pt A)), ..., М (pt (L))), pt ? P\R. С каждым атрибутом связываются значения какой-то определенной переменной из множества V. Например, в случае, когда L = 7, можно положить, что М (Pt A)), ..., М (pi G)) описывают соответственно значения переменных vx> ... ..., v7. При этом все остальные введенные нами ранее переменные (и8, ..., 1>14, ...) при построении формального описания ?-сети игнорируются. Выполнение ?-сети регулируется решающими процедурами и процедурами переходов. Указанные на рис. 3.13 решающие процедуры описываются следующим образом: Я (ггУ (М (рг A)) > 1 -+ М (гг) : = 0, иначе М (гх) : = 1); Я (гг): (М (р Д1)) = (число заготовок, загруженных в бункер) ->¦ М (г2) : = 1, иначе М (г2) : = 0); Я (г*): (М (Рз C)) > 0 -* М (г3) : = 0, иначе М (г3) : = 1); Я Ы: (М (р6 C)) > 0 -* М (г4) : = 0, иначе М (г4) : = 1); Я (гьУ- W (р1В A)) = 0) Д (М (р15 C)) - 0) -+ (М (г5) : = 1, иначе М (гь) : = 0); Я (геУ {М (р12 D)) < (размер партии) -* М (гв) : = 0, иначе М (г6) : = 1); q (r7): (M (р13 C)) < (число партий в задании) -+ М (г7): = 0, иначе М (г7) : = 1); Я (г*): (М (р17 D)) = 0~+М (г8) : = 1, иначе М (г8) : = 0); q (г9): (циклический опрос РТК* (/= 1, ¦ .., 5): (BМ (р4 G)) - 1) б {1, 3, 5, 7, 9}) Л (М (р4 E)) = 1) -+ М (г9) : = 0, иначе (BМ (р20 G) € {2, 4, 6, 8, 10}) Д (М (Рго E)) = 2) ->- М (г9) : = 1), иначе опрос следующего РТК (..¦)•••); (гго): (М (р22 E)) = 1 -+ М (г10) : = 0, иначе М (г10) : = 1); (Гц): (М (р29 F)) = (номер РТК, вход/выход) ->> М (ги) : = 0, иначе М (гХ1) : = 1). Условимся соблюдать при описании процедур переходов следующие правила: 1. В обозначениях переходов идентификаторы входных (выходных) булевских позиций записываются в скобках. Позиция р% — булевская, если М (р{) ? € {0. 1}. 2. После идентификаторов выходных позиций указываются: в круглых скобках — номера атрибутов метки, значения которых изменяются в результате срабатывания перехода. Значения атрибутов, не указанных в скобках, при переходе копируются; в квадратных скобках — число сохраняемых при переходе первых атрибутов метки. Значения этих атрибутов копируются. Остальные атрибуты теряются. Если после идентификатора выходной позиции скобки (круглые или квадратные) отсутствуют, то вектор атрибутов метки при переходе копируется. 3. Правила п. 2 выполняются безусловно для Г-переходов, а также для Х-, Y-y MX-t МУ-переходов, схемы срабатывания которых в каждом конкретном варианте их активности аналогичны схеме Т-перехода. Примеры описаний: Т (Рь Рг) — при переходе М (р2) : = М (р^; Т (Рь Рг C,5)) — при переходе вычисляются значения атрибутов М (Рг C)) и М (р2 E)). Значения остальных компонент вектора М (р2) равны значениям соответствующих компонент вектора М (рО; Т (рх, р2 [3])— при переходе устанавливается новая длина вектора атрибутов метки, равная 3. Значения компонент этого вектора равны соответственно значениям трех первых компонент вектора М (р0; X (гь р1} р2 [2], рз A,6)) — при М (/*!) = 0 переход будет выполняться, как Т (рь р2 [2]), а при М (гх) = 1, как Г (рь р2 A, 6)). 116
4. Если какая-то одна из входных позиций /-перехода булевская, то схема срабатывания перехода считается аналогичной схеме Г-перехода. Например, переход / (рь (р2), рэ [2]) выполняется как Т (рь р3 [2]), а переход / (рь (р2), Рз C, 4)) как Т (рь р3 C, 4)). Если обе входные позиции Г-перехода не булевские, то он выполняется по собственной схеме. Правила п. 2 в этом случае не применяются. 5. Схема срабатывания ^-перехода считается аналогичной схеме Т-переходаЛ если векторы атрибутов меток обеих выходных позиций Т7-перехода равны. Например, переход F (рь р2, р3) выполняется как Т (рь р2), или, что то же самое, как Т (рь Рз)» поскольку М (р2) = М (р3) = М (pj); переход F (рь (р2), (р3)) выполняется как Т (рь (р2)), или, что одно и то же, как Т (pi, (Рз)), поскольку М (рг) = М (р2) = М (р3) (в последнем случае обе выходные позиции булевские); переход F (рь р2 [3], р3 [3]) выполняется как Т (рх> р2 [3]) или, что все равно, как Г (рь рэ [3]). Если векторы атрибутов меток выходных позиций F-перехода не равны, то переход выполняется по собственной схеме. Правила п. 2 при этом не применяются. Запишем с необходимыми комментариями формулы переходов для ?-сети, приведенной на рис. 3.13: У?-' (Yi ('в» Pii, Pis, Pi). (О, 0), —) — при М (г5) = 0 переход К* срабатывает как Т (рп, рх), а при М (гв) = I как Т (р15, рх). В обоих случаях задержка времени на переходе г (Y{) = 0; Х3: (Х2 (rit рь р2, рз), @, 0), -); У* (У* fo, Р2, Р4, Рв), @, 0), —); Х4: (X, (г3, Рз, рв> р7), @, 0), -); Уш'- Рь (г*> Ре, Ръ Ри B, 5, 7)), @, 0), [Г-* (М (pi% B)) : = (тип изделия), М (ри E)) : = 1, М (pi9 G)) : = (номер РТК)))); !•: (/в (Л, Р» Ре). @)» Г/+(М(р8A)): = Л*(рвA)), М (р8 B)) : » Л* (р5 B)), Л1 (р8 C)) : = Л1 (р9 C))) ]) — переход выполняется по схеме / с ну- левой задержкой; '?: (А (Ре. Pis, Рю), *обр, [/ -* (М (Рю (О) : = == Л1 (р8 A)) — 1, ЛГ(р10 B)) : = М (р8 B)), Л* (Рю C)) : = М (р8 C)), М (рхо D)) : = М (ри D)))]) - — переход срабатывает по схеме /. Задержка г A7) = т0бр имитирует затраты времени на выполнение программы обработки заготовок типа М (ps B)); JV (Ft (Pio, Ри D), Рй D)), твых, [Г -* (М (ри D)) = = М (р12 D)) : = М (р10 D)) + 1)]) — переход срабатывает как Т (Рю, Рп D)) или, что то же самое, как Т (р10, р12 D)). Задержка 2 (F8) = твых имитирует затраты времени при выполнении РТК программы установки обработанной заготовки в палетку; *•: (X* (г§, Ри, Pie, Pi3 C)), @, 0), [Т -* (Af (rj - 1 -* M(PiaC)):=M(p12C))+ 1)]); *i0: (*w (гъ pl3, p9, pi4), @, 0), —); Уц'- (Kufo, Pie, Pi7, Pu), @, 0), -); Ти- (Tl% (p14, Pl6 A, 2, 3)), хпер> [Т — Ш (p15 A)) : « 0, Af (?„&):=¦ (новый тип изделия), Af (p16 C)) : = 0)]) — переход срабатывает с задержкой г (Г12) = хПер, которая имитирует затраты времени на выполнение всех необходимых операций по подготовке РТК к работе по новой производственной программе; 7\а: (Т19 (Pig, Р20 E, 7)), @), [Г -+ (М (р20 E)) : = 2, М (Р2о G)) : = (номер РТК))]); 117
MYH: (MYи (r9f p}9, p?0, P?9. Pio. —I P19» Pio» P21). @, 0, 0, 0, ..., 0, 0), —); Tu: (Tu (p2l, Очередь), @), -); Tu: (Г1в (Очередь, p22), @), -); X17: (*i? (^10» P22» P23» P24)» (Of 0), —); hs- (As (#>з> P26, A*). Tlf [/ -> (Af (p2e [5]) : = Af (p23 [5]), Ai (P2e F)) : = M (p26 F)), M (p26 G)) : - M (p23 G))) ]) - переход pea- лизуется с задержкой z (/18), имитирующей затраты времени на перемещение ТМ ко входу РТК и захватывание кассеты. Здесь М (р2в [5]) : = М (р2з [5]) означает, что значения первых пяти компонент вектора М (р2в) и вектора М (р23) соответственно равны; V (/w (P24, Р25, Рзо), % [/-*- (Af (Р30 [5]) : = М (рщ [5]), М (Рзо F)) : = М (р2б F)), А* (Рзо G)) : = М (р24 G)))]); 7^20: ('20 (Р2в» Р2?)> ТЭ> )) ^Я- (^21 (Р27> Р2в)» Т4> —); ^22-' (^22 (Р28» Р4, Р2э)> Ч> ^ "^ (ДО (Р4 @) : = (количество заготовок в кассете), М (р4 B)) : = М (р2в B)), М (р4 C)) : = М (р28 C)), Af (р4 D)) : - М (р28 D))); (Af (р29 F)) : = М (р28 G))))]). Использованные в описаниях переходов /19, Г^, Тц, F%2 задержки т2, т3> т4, тБ обозначают соответственно затраты времени на перемещение ТМ к выходу РТК и захватывание палетки, переход ТМ к РШ, ожидание в зоне контакта с РШ, переход ТМ к РТК и загрузку заготовок в бункер; 7*23: (^23 (р30> P3l)» Т6> )» ^24• (^24 (РЗЪ Р32), *7> —); F* (^26 (Рз2, Pi7> Раз). V lF-+№ (Pi7 D)) : = 0, Af (рзз F)) : = М (р32 F)))]). Формулы переходов Т23, 74, ^26 содержат задержки z (Т2з) ~ t*t * (TV*) = = т7, z (Fib) — т8, с помощью которых имитируются затраты времени на переход ТМ к РШ, ожидание в зоне контакта с РШ, перемещение ТМ к РТК и установку палетки; Уse: (Уи (Гц, Р29» Рзз), @, 0), —). 3.2.3. /ГОЛШ/-сети Наиболее полный набор средств описания дискретных и дискретно-непрерывных систем в виде сетей событий применяется при построении КОМБИ-сотеп [2, 19, 21, 22]. Множество Р позиций КОМБИ-сетей объединяет шесть подмножеств: Рэ — элементарные; Рт — с временной задержкой; Рд — долгоживущие; Pv — гибридные; Рк — комплексные и Рм— макропозиции. Каждой позиции сети отвечает некоторый характерный для данной позиции набор атрибутивных переменных (ATTR (Pi),Pi?P). Позиции сети могут не иметь маркеров, иметь единственный маркер, накапливать маркеры (М : Р-+ N). При выполнении сети общее число действующих в ней маркеров изменяется и в каждый текущий момент времени равно МА. Все множество МА маркеров разбивается на четыре класса: булевские, с атрибутивными переменными, долгоживущие, изменяющие вид с элементарного на долгоживущие и обратно. С двумя первыми классами связаны элементарные маркировки (запрещены для позиций Рд), третьему и четвертому классам соотносятся долгоживущие маркировки (запрещены для позиций РЭ1 Рт, Р^. Каждый класс МК 118
использует определенную структуру данных, все маркеры класса МК> за исключением булевского класса, имеют множество атрибутивных переменных ATTR (М/С). Множество Т переходов КОМБИ-сетей состоит из пяти подмножеств: Тэ — элементарных; Тпр — с прерыванием; Тп — дол- гоживущих; Тк — комплексных; Гм — макропереходов. Каждый tj ? Т характеризуется набором атрибутивных переменных (ATTR (<,)). Объединение всех наборов атрибутивных переменных сети образует множество ATTR ее локальных переменных. Связи Е между позициями и переходами в КОМ Б И-сетях задаются обычным для сетей Петри способом: Е s (Р X Т) [] U (Т X Р). Необходимые условия возбуждения переходов описываются логическими выражениями. Переход tj ? Т может перейти в возбужденное состояние, если соответствующее этому переходу логическое выражение будет истинным. Другое необходимое условие возбуждения связано с текущей разметкой входных и выходных позиций перехода (см., например, условия возбуждения переходов в ВССу п. 3.2.1). В тех случаях, когда количество маркеров в Pi ? i (tj) больше, чем это необходимо для возбуждения перехода, возникает вопрос о механизме выбора маркеров, удаляемых из pi при срабатывании tj. В КОМБИ-сетях механизм выбора может быть реализован различными способами, например, по схеме FIFO, LIFO, HVFy LVF, согласно заданным приоритетам или по указанию пользователя. После перехода в позицию рг ? Рт а Р маркер становится недоступным в ней на время задержки т (р,). Наиболее простой механизм подобного типа действует в временных сетях Петри. В КОМБИ-сетях (аналогично в ВСС) значения х (pt) могут быть определены различными способами, например произвольным выбором из множества значений случайной величины, имеющей заданный закон распределения; назначением констант из множества неотрицательных целых чисел; вычислением значения заданной функции; выбором значений атрибутивных переменных маркеров из некоторого МК или перехода tj ? / (р,«), имеющих смысл х (pi); выбором по указанию пользователя. Если | О (tj) \ > 1, необходимо указать конкретную позицию Pi ? О (tj), в которую переходят маркеры (при выполнении переходов в ВСС имеется возможность изменения маркировки сразу в нескольких выходных позициях), В КОМБИ-сетях реализуются различные механизмы выбора принимающих позиций, например равновероятный по тестовым условиям, по значениям атрибутивных переменных маркеров или по указанию пользователя. Еще одна особенность выполнения КОМБИ-сетей обусловлена структурой ее связей: в позициях pt ? Р\РЮ | О (р<) |> 1 возможны конфликтные ситуации, связанные с необходимостью вы- 119
бора какого-то одного из нескольких возбужденных переходов, смежных с pt. Для исключения конфликтов этого вида в КОМБИ- сетях применяются специальные механизмы случайного выбора, выбора по номеру перехода или по вероятности и др. Большое разнообразие возможных вариантов построения схем переходов в КОМБИ-сетях обусловило разработку основного набора таких схем, а также способов построения составных схем, создаваемых на базе элементов из основного набора [211. Изменения значений атрибутивных переменных при выполнении сети задаются пользователем в форме процедур переходов, подобно тому, как это делается в ВСС или в ?-сетях. Локальные переменные КОМБИ<етей изменяются в интервале (/0, 0), (te, ze), (*о» 0), (*•» 2е) ^ (^ X ?), где (/0, 0) — начальный момент имитации; (^ X 2;),^^R, Z ? N — временной базис сети [21 1. Построение программ моделей, представляемых в виде КОМБИ- сетей, поддерживаются средствами системы моделирования СИМКОМ [10, 19]. 3.2.4. ^Д-диаграммы При разработке концептуальной схемы ЕД-диаграмм [12] использовались идеи построения потоковых сетей моделей системной динамики (см. гл. 4) и некоторые механизмы функционирования, характерные для расширений сетей Петри. Объекты моделирования в ?Д-диаграммах представляются в виде совокупности параллельно совершающихся процессов. Каждый такой процесс отображает временную динамику некоторого подмножества переменных состояния, описывающих функционирование какой-то одной определенной материальной компоненты объекта. Всякая включенная в модель материальная компонента задает только один процесс, а любому действующему в модели процессу и притом во всех случаях соответствует только одна и та же компонента. Построение ?Д-диаграмм начинается с определения «границ» модели и выявления состава ее материальных компонент. Так, при моделировании производственных систем в качестве материальных компонент можно принимать: отдельные виды оборудования и группы оборудования, целые технологические участки и линии; предметы и продукты труда, инструмент, приспособления, тару, отходы производства; запланированные работы; бригады рабочих и операторов оборудования и т. п. Материальные компоненты в ЕД-диаграммах являются условно независимыми, т. е. никакие две из них не взаимодействуют непосредственно (компоненты не имеют общих элементов). Структуры компонент задаются в виде орграфов, вершины которых обозначают состояния, а дуги — возможные пути переходов состояний. Вершины-состояния компонент обозначаются Ри ? Pj (* — номер вершины, / — номер компоненты), а дуги — uikJ 120
(i, k — соответственно номер вершины, из которой исходит и в которую заходит дуга). Полустепени захода и выхода для вершин- состояний записываются как d+ (ptj) и dr (pu). На дугах компонент размещаются ключи двух типов: rikj — ключ, замыкающий (прерывающий) связь; fihj — ключ-селектор. Дуги могут не иметь ключей, могут иметь только один какой- нибудь ключ, могут иметь сразу два ключа — по одному каждого типа. При наличии двух ключей на связях селектор / всегда ставится после ключа типа г. Подобно тому, как это уже имело место в рассмотренных нами расширениях сетей Петри, в ЕД-диаграммах также используется механизм разметки. Разметка выполняется отдельно для каждой компоненты диаграммы. Вершины-состояния компонент в каждый момент времени могут иметь или не иметь маркеров. Актуальные в текущий момент времени состояния маркируются. Маркеры в вершинах компонент не накапливаются: Л1;:Р-* -> {0, 1} — функция маркировки вершин компоненты. Количество маркеров в компоненте ограничено и не может превысить числа ее вершин-состояния. Поскольку компоненты ?Д-диаграмм не имеют общих элементов, они не могут обмениваться своими маркерами. В любой момент времени в каждой компоненте диаграммы обязательно имеется хотя бы один маркер. В пределах каждой компоненты все вершины-состояния характеризуются одним и тем же набором переменных Vj = (yjlf vjz> •••> vjN.)- Маркеры ЕД-диаграмм являются носителями определенного числа атрибутов. Каждый маркер, связанный с/-й компонентой, имеет вектор атрибутов М;- [Nj] длины [Nj]. При переходе маркера в позицию ptj его атрибуты занимают места переменных (vJlt ...,v3N\ в списке Vj(pij)9 причем на место переменной vjn (Ptj) заносится атрибут Mj (л), который при этом получает обозначение MPij(n), п ? A, 2, ..., Nj). Состояния в материальных компонентах разделяют на активные и пассивные. Переход маркера из некоторого активного состояния ри в какое-либо другое состояние pkj (активное или пассивное) возможен только в том случае, если маркер, находящийся в актуальном для текущего момента времени состоянии р<;-, оказывается доступным, т. е. с момента его перехода в это состояние истекло время предусмотренной задержки. Время задержки — один из обязательных элементов списка Vj в каждой материальной компоненте, имеющей активные состояния. Маркер в пассивной позиции рц является доступным в любой момент времени. Переход маркера из актуального пассивного состояния ри в любое смежное с ним состояние phj происходит сразу же после замыкания ключа на соответствующей связи uik (т. е. когда rihj = 1), Если на связи uih ключа типа г нет, то метка, совершившая в некоторый момент времени переход в вершину пассивного состояния, покидает ее в непосредственно следующий 121
за этим момент времени. Если вершине активного или пассивного состояния инцидентна только одна дуга на выходе, то при замкнутой связи переход маркера из вершины в вершину определяется однозначно. Переход совершается независимо от того, имеется маркер в принимающей вершине или нет. В том случае, если маркер переходит в уже маркированную вершину, число маркеров в последней не увеличивается, но происходит пересчет значений атрибутов маркера. Если некоторой вершине ptj инцидентна единственная выходная дуга u(i, иц = О (ри) р / (Ри)> то маркер в данной вершине восстанавливается после каждого акта перехода. Здесь Uu — петля, инцидентная ptj. Вершинам-состояниям материальных компонент могут быть инцидентны две выходные дуги: uik и иц> При условии, что связь uih замкнута, а маркер в ptj доступен, происходит переход маркера из ри в phj по дуге uik и восстановление маркера в ptj по дуге и.ц. Переход маркера из ри при двух или более исходящих дугах (без петель) может совершаться только в соответствии с каким-то одним из рассмотренных нами двух вариантов. Недопустимость иных способов выполнения перехода обеспечивается логикой срабатывания ключей на связях. При переходе маркеров значения их атрибутов пересчиты- ваются, если этот переход осуществлялся по связи с ключом- селектором. Значения атрибутов маркера принимающей вершины находятся в функциональной связи с значениями атрибутов маркеров, определенных в актуальных вершинах собственной для принимающей вершины компоненты и других компонент диаграммы. Если на дуге перехода ключа-селектора нет, то значения атрибутов маркера, поступившего в принимающую вершину, сохраняются неизменными. Материальные компоненты ЕД-диаграмм имеют начальную разметку М0 = (М0ь ..., М01 j i), M0/ = (MQ (pu), ..., М0 (р| р^/)), где J — множество материальных компонент модели. Целостность модели придает информационная компонента. Она объединяет все материальные компоненты и обеспечивает их взаимодействие. Информационная компонента представляет собой связный двудольный граф G = (Р U S; R [} F), где Р = U Pj — множество вершин-состояний; S = {sm} — множество вершин, соответствующих экзогенным переменным модели; этим вершинам инцидентны только исходящие дуги информационной компоненты (d+(sm) = 0); R = U {rtkj} — множество всех ключей типа г\ F = / — U {fihj) — множество всех ключей-селекторов. В каждый момент времени разметка материальных компонент М/ = (М* (piy), ..., М+(р|Р |/)) задает подмножество актуальных вершин-состояний и тем самым определяет подграф G' ^ G, на котором в этот момент реализуется расчет значений ключей типа г. 122
Ключи rikj ? Rj могут иметь только два значения: 0 -^«евязь прервана»; 1 — «связь действует». Для вычисления этих значений используется функция ^:(n(M^-(M^[^])T)xSJ->{0, 1}, где М/ — текущая разметка материальной компоненты номера / ? J; Мр [Nj]— вектор, составленный из векторов текущих значений атрибутов маркеров, занимающих позиции рь ..., р\р.\ в компоненте номера j ? J. С помощью ключей fikj ? F задаются процедуры $Г пересчета значений атрибутов меток маркеров, совершивших переход в соответствующую принимающую позицию. Подобно функции 52 в процедурах $Г могут быть использованы значения атрибутов меток маркеров любых актуальных в текущий момент времени позиций всех компонент диаграммы. Построение ?Д-диаграмм может быть автоматизировано. С терминала задаются: число материальных компонент j J |; для каждой материальной компоненты / ? J— число вершин- состояний | Pj | и текстовые комментарии по каждому состоянию; номера активных вершин-состояний; число атрибутов маркеров Njy текстовые комментарии к используемым атрибутам, тип и область допустимых значений каждого атрибута; пары номеров вершин- состояний (дуги); для каждой дуги — информация о наличии на дуге ключей типов г и /; число, ограничивающее допустимое количество меток в компоненте; начальная разметка; для информационной компоненты — число параметров и текстовые комментарии к параметрам; список уравнений для расчета значений состояний ключей типа г; список уравнений для расчета задержек в активных состояниях; процедуры пересчета значений атрибутов маркеров на ключах-селекторах. ?У7-диаграммы можно лишь условно отнести к расширениям сетей Петри. При их построении фактически использовался только механизм маркировки вершин, в некотором смысле аналогичный применявшимся в ВСС, Е- и КОМБИ-сетях. Однако этот факт не является принципиальным в ?Д-диаграммах. Например, маркировку вершин-состояний можно полностью исключить, если вместо ключей на дугах компонент разместить протоколы, которые, представляя в совокупности информационную компоненту диаграммы, формально задают функционирование всей модели в целом. Основное отличие ?Д-диаграмм от любых возможных расширений сетей Петри, ориентированных на имитацию, состоит в том, что в ?Д-диаграммах реализуется качественно иной принцип построения моделей, в основу которого положена идея описания систем в пространстве состояний.
ГЛАВА 4 МОДЕЛИ СИСТЕМНОЙ ДИНАМИКИ 4.1. ОБЩАЯ СТРУКТУРА МОДЕЛЕЙ СИСТЕМНОЙ ДИНАМИКИ Модели системной динамики получили широкое распространение в задачах исследования сложных систем из сферы производства и экономики, торговли и городского хозяйства, из области социальных проблем, проблем экологии и охраны окружающей среды [2, 3, 7, 8, 111. Эти модели были первыми машинными моделями, положившими начало новому направлению в системных исследованиях — так называемому глобальному моделированию, охватывающему проблемы мирового развития [1, 9]. Методы построения и техника проведения вычислительных экспериментов с моделями системной динамики оказали большое влияние на формирование технологии моделирования. Математической основой методов системной динамики являются дифференциальные модели, в которых используются представления динамических процессов в пространстве состояний. Модели такого вида — это системы дифференциальных уравнений: х=/(х, и, t), DЛ) где х = (хъ ..., хт)г — вектор состояний; хг, ..., хт — переменные состояния; и = (Wj, ..., ир)г — вектор входов; t — символ времени (в дальнейшем для краткости t опускается). Дифференциальные модели, применяемые в математической теории систем, включают кроме уравнений D.1), называемых уравнениями состояния, еще и уравнение у = Я (х, и), в котором переменная у = (yl9 ..., уI — вектор выходов моделируемых процессов. При составлении дифференциальных моделей производится выбор переменных состояния и устанавливаются связи между этими переменными в виде функций правых частей уравнений состояния. Процессы отбора, анализа и формализации различных фактов и предположений экспертов об изучаемой проблеме в значительной степени обусловлены структурой, которой наделяются искомые функциональные зависимости. Как правило, сформулировать такие зависимости только с использованием переменных состояния бывает очень трудно. Более продуктивным оказывается подход, 124
Рис. 4. К Граф функциональных зависимостей переменных дифференциальной модели основанный на детальном описании цепочек причинно-следственных связей между факторами, отображаемыми в модели с помощью переменных состояния. Разработка и формальная запись таких цепочек невозможны без включения в модель некоторых дополнительных переменных, специально предназначенных для явного определения в модели структуры причинно-следственных взаимосвязей между переменными состояния. Желательно, чтобы необходимое расширение набора переменных состояния дифференциальных моделей совокупностью дополнительных переменных осуществлялось стандартным «технологичным» способом, обеспечивающим эффективное выполнение процессов структуризации информации о проблеме. Обозначим через w = (wl9 ..., ws)r векторную переменную, компоненты которой образуют в совокупности множество включаемых при структуризации правых частей уравнений состояния DЛ) дополнительных переменных. В качестве общей структурной схемы при описании вектор- функций / (х, и) можно использовать граф, вершинам которого соответствуют переменные модели, а дугам — непосредственные функциональные связи между этими переменными. Поясним на примере, о каких графах идет речь. Пример 4.1. Требуется описать структуру правых частей уравнений состояния *i = h (*ь *2, tfi); *2 = U (*i> хъ "i)« D.2) После факторизации правых частей этих уравнений были получены структурирующие соотношения вида: /i (*ъ *2> "i) =* Fi К> о>2); Щ— ^2 (*i, *2); ш2= F9{wlt щ)\ h (*1, *2» "l) = ^4 К, "l). Этому случаю будет соответствовать граф непосредственных функциональных зависимостей между переменными, представленный на рис. 4.1. Данный граф имеет четырехъярусную структуру: Вершины графа Ярусы графа *1» *2, «1 О о>1 1 w2 2 Xi, хг 3 Структуры правых частей уравнений дифференциальных моделей всегда могут быть представлены многоярусными графами, не имеющими контуров. Вершины таких графов могут быть размечены в соответствии со значениями их порядковых функций [4]. Одинаково размеченные вершины в каждом графе образуют один 125
\?' 1хг иу Xt+t •й-i? Выходы Рис. 4.2. Структурная схема функциональных зависимостей переменных модели Рис. 4.3. Общая структура моделей системной динамики ярус. Любому значению порядковой функции отвечает какой-то один ярус графа: нулевой ярус образуют вершины, отображающие на графе переменные состояния и входные переменные модели; последний ярус (с наибольшим номером) составляют вершины, представляющие на графе переменные левых частей уравнений состояния D.1); вершинам всех промежуточных ярусов соответствуют переменные состояния и дополнительные переменные дифференциальной модели. Общая схема построения структур правых частей уравнений состояния формально задается следующим образом: / (х, и) - Ф, (Ф^ (... Фх (Ф0 (х, и» ...)), D.3) i где Ф^ ¦ (J Zj -> Zj+1; I — О, kt a Zj означает множество всех пе- ременных модели, определенных на /-м ярусе, причем (х, u)T = z0; w = (гъ ..., zft)T; Zfc+ Пример 4.2. Построим описания вида D.3) для модели D.2) из предыдущего примера. Модель имеет четырехъярусную структуру. Ярусы модели образуют следующие множества переменных: z0 = (*i, х2> и{?\ гх = Щ\ Ч = (*1, *«) Используя определение отображений Ф$, запишем Ф0 B0) = F2 (Xif Х2)\ Фх (Фо (Ч)) = Fs (Щ, иг); Ф2 (Фх (Фо Ш = (Fi (щ, w2); FA (w2t Ul))\ Такому структурированному представлению соответствует схема на рис. 4.2. Аналитические и алгоритмические формы записи дифференциальных моделей системной динамики имеют характерные особенности: 126
1. Правые части уравнений состояния этих моделей задаются в виде произведений /(х. u)-JF(x, u), D.4) в которых в качестве сомножителей выступают (т X я)-матрицы J и отображения F : (х, и) ->- v. Здесь v = (vlf ..., vn)r — вектор всех переменных модели, определенных на предпоследнем ярусе ее структурированного описания, т. е. v = zk. Принимая во внимание D.3), следует положить, что v - F (х, и) - Фк_г (фм (.. .Фх (ф0 (х, и))...)). Учитывая D.4), отображение Фк в D.3) необходимо считать линейным. Тогда где J — (т X я)-матрица с элементами из {0, +1, —1}, имеющая полный строковый ранг (rank J = m). 2. Нормативной схемой решения уравнений в моделях системной динамики является одношаговая схема первого порядка. Уравнения состояния моделей составляются в форме разностных уравнений вида x<+i = xt + hf(xu uf). Здесь h — шаг дискретизации, a t = 0, 1, 2, ... Общая структурная схема уравнений моделей системной динамики приведена на рис. 4.3. На схеме выделены две части: / («Сеть потоков») : хм = xt + hS\t\ 11 («Сеть информации») : \t = F (xt9 щ). 4.2. ОСНОВНЫЕ ПОНЯТИЯ. ПОТОКОВАЯ СТРАТИФИКАЦИЯ Модели системной динамики разрабатываются на основе предоставляемых экспертами сведений об объектах исследования и в зависимости от целей изучения этих объектов. При построении моделей указанные сведения подвергаются тщательному анализу, в ходе которого находятся решения двух основных взаимосвязанных вопросов: выбора и интерпретации переменных состояния модели; выявления причинно-следственных отношений между переменными состояния и описания этих отношений в форме структурированных функциональных зависимостей вида D.4). Применительно к уравнениям вида D.4) в системной динамике используются два взаимодополняющих подхода к структуризации представлений об объектах моделирования. Первый подход позволяет структуризировать представляемую экспертами информацию по схеме: «От структуры причинных связей к переменным состояния». Второй подход применяется при структуризации данных, осуществляемой по обратной схеме: «От переменных состояния к структурам причинных связей». Формальной основой 127
r?A fij ц "i ( ^ Ц» JS  *11 a) t) Рис. 4,4, Сеть потоков Рис. 4.5. Основные символы потоковых сетей: а *— узлы сетей; б — потоковая дуга с символом темпа этих двух схем структуризации является использование в них матрицы J. В любой модели системной динамики матрица J имеет смысл приведенной матрицы инциденций некоторой сети Jf = = (X, V), в которой X обозначает множество узлов, а V — множество дуг. Пример 4.3. Построим матрицу J для сети, приведенной на рис. 4.4. Сначала запишем матрицу инциденций J0 для данной сети: *1 h = xt х. Vi /+1 0 V-i Приведенная матрица J получается i одной строки. Например, вычеркивая ветствующую узлу Хо, получим '-? Vi г: v, —1 +1 0 V, +1 —1 0 V, °\ -')• +1/ 13 J0 путем удаления последнюю строку (— V, —1 +1 V, +1 —1 ^4 -Э- из нее 1, 0, 0, какой-либо + 1), соот- D.5) Узел Х0, для которого в матрице J отсутствует строка, будем называть нулевым узлом или «нулем» сети. Если сеть одноком- понентная (как, например, сеть на рис. 4.4), то в качестве ее нуля можно выбрать любой узел. Если сеть многокомпонентная, то нуль такой сети должен являться точкой сочленения ее компонент. В моделях системной динамики нуль сети принято обозначать специальным знаком «Озеро». Остальные узлы сети изображаются в виде прямоугольников (рис. 4.5, а). Сеть Jf, определяющая матрицу J уравнений D.4), рассматривается в качестве сети потоков материальных ингредиентов модели. Каждая компонента сети JC соответствует какой-то одной совокупности однородных ингредиентов (например, предметы труда, население, денежные средства и т. п.), динамика которых учитывается в модели. Узлы компонент сети Jf (за исключением нулевого узла) изображают наиболее существенные с точки зрения разработчиков модели состояния выделенных ингредиентов, а дуги сети задают 128
Рис, 4.6. Диаграмма сети потоков 0*г возможные переходы их элементов из одного состояния в другое. Распределение элементов по состояниям меняется с течением времени. Эти изменения для системной динамики являются нормативными образами моделируемых процессов. В качестве характеристик распределения элементов входящих в модель ингредиентов по состояниям Xlt ..., Хт рассматриваются переменные xXt ..., хт уравнений состояния модели. Переменные vx, ..., vn принимаются аа характеристики интенсивности (скоростей), с которыми совершаются переходы элементов из состояния в состояние по дугам Vu ..., Vn сети Jf. Такая интерпретация справедлива для структуры части / уравнений D.4). Она напоминает структурные формы задания автоматных моделей дискретных процессов. Однако модели системной динамики — это дифференциальные модели, переменные состояния которых непрерывны. Поэтому приведенной здесь структурной концепции уравнений состояния моделей системной динамики обычно дается более естественное объяснение, основанное на гидравлической интерпретации потоковых сетей. В этой интерпретации каждый узел Xt ? X сети JT рассматривается как резервуар, уровень наполнения которого в момент t равен xt (/), i = 1, 2, ..., т. Дуги Vj ? V сети соответствуют потокам жидкости между резервуарами. Они указывают направление потоков, темпы которых характеризуются объемными расходами жидкости Vj (/), / = 1, 2, ..., п на интервале времени lthy (t + 1) h]. Темпы потоков символически изображаются в виде вентилей на дугах потоковых сетей (рис. 4.5, б). Гидравлическая интерпретация хорошо согласуется с балансовым видом уравнений состояния моделей системной динамики. Наглядность гидравлической интерпретации обусловила ее важную роль при структуризации моделей, специальную «потоковую» терминологию и общую трактовку математических схем моделей системной динамики. Пример 4.4. Изображение потоковой сети JP из примера 4.3, построенное с использованием принятых в системной динамике обозначений для темпов и уровней, дано на рис. 4.6. Балансовые уравнения неразрывности потоков для такой сети имеют вид Xi (* + 1) = xt @ + Ч (t) - hv2 @ + hv3 (*); Ч (< + 1) = *2 @ + hot @ - to, М - ho€ (О или с использованием матричных соотношений x*+i = х/ + AJv/, где xt = (хх @, ха (OF; v< (vt (t), v2 (t)> v3 (t), u4 (*))*; J — матрица, указанная в D.5). 5 П/р СВ. Емельянова 129
Рис. 4.7. Символические ура» f:0, ^^Т~| , i=/,2,...,/i нення В соответствии с терминологией системной динамики переменные состояния х1у ..., хт называются уровнями модели, а переменные vu ..., t>n— темпами. Уровни и темпы — основные переменные моделей. Все переменные, входящие в состав вектора w, за исключением темпов, называются вспомогательными. Вспомогательные переменные используются при структуризации функциональных зависимостей F темпов от уровней и входов, а также функциональных зависимостей Я выходов у от уровней х и входов U. Основой структуризации вектор-функций F и Я является анализ цепочек причинно-следственных связей факторов, подлежащих, по мнению экспертов, обязательному учету при описании динамики состояний моделируемого объекта. Структуризация функциональных зависимостей завершается построением информационной сети модели. Подобно структуризованным описаниям вектор-функций дифференциальных моделей, рассмотренных в п. 4.1, описания информационных, сетей в моделях системной динамики представляют собой многоярусные графы без контуров. При построении информационных сетей особую роль играют темпы. Ранее мы исключили темпы из списка вспомогательных переменных моделей системной 'динамики. Вспомогательные переменные главным образцом используются для построения логически ясных, хороню интеррретируемых структур взаимосвязей переменных, с помощью которых в моделях отображаются представляемые экспертами разнородные сведения об объекте моделирования. В отличие от вспомогательных переменных темпы рассматриваются как основные вспомогательные переменные. Чем же вызвана необходимость ведения такого различия? В типовой форме D.4) представления уравнений моделей системной динамики был зафиксирован вид функции ФА последнего яруса информационной сети. Задание Фк с помощью матрицы J, имеющей элементы 0, +1, —1, определяет очень удобную, т. е. простую схему сбора и формализации информации, получаемой от экспертов в процессе построения моделей. Данная схема в обозначениях системной динамики имеет вид символических уравнений (рис. 4.7). В этих уравнениях темпы играют роль основных «плюс — минус» факторов, с помощью, которых определяются изменения переменных состояния разрабатываемой модели. Вспомогательные переменные при этом структурируют влияние переменных состояния на эти «плюс — минус» факторы. Рассмотренная схема структуризации информации о причинно- следственных взаимосвязях динамических процессов в объектах моделирования достаточно хорошо известна как схема конструи- 130
»- Рис. 4.8. Причинно-следственный граф модели рования моделей. Указания на ее использование имеются в методиках описания сложных технических систем, разработанных инженерами-радиотехниками еще в 20-е годы (см. послесловие к [9]). Применение схемы формирования моделей на базе «плюс — минус факторов позволяет получить общую структуру дифференциальной модели системной динамики. Такой структурой является знаковый орграф, известный под названием причинно-следственной диаграммы. Смысл этой диаграммы становится ясным, если соединить дугами одноименные вершины нулевого и последнего ярусов рассмотренных ранее структурных графов. Пример 4.5. Построим причинно-следственную диаграмму для структурного графа из примера 4.1. Проводя дуги от вершин хг и х2 последнего (третьего) яруса к вершинам соответствующих переменных состояния хх и х2 нулевого яруса, получим искомую причинно-следственную диаграмму (рис. 4.8). На дугах графов причинно-следственных диаграмм обычно расставляются знаки «+» и «—» (отсюда — «знаковые орграфы»), с помощью которых фиксируются предполагаемый или же эмпирически обоснованный характер влияния переменных, соответствующих конечным вершинам дуг. Наличие знака «+» на дуге (а, ft), направленной из вершины а графа в вершину ft, означает, что при прочих равных условиях рост переменной а приводит к росту переменной ft. Знак «—» описывает противоположный эффект влияния а на ft: с ростом а величина ft убывает. Построению и анализу знаковых орграфов при разработке моделей системной динамики уделяется большое внимание. Эти простые приемы качественного описания взаимосвязей факторов, учет которых признается необходимым для отображения в модели принципиальных моментов развития моделируемых процессов, оказываются эффективными при структуризации информации. Говоря в целом о методах разработки моделей системной динамики, их можно охарактеризовать как способы структуризации дифференциальных моделей, базирующиеся на концепции потоковой стратификации систем. В рамках этой концепции системная Динамика предлагает две нормативные схемы формирования общей структуры моделей: Схема 1. Разрабатывается причинно-следственная диаграмма модели. В число учитываемых при разработке модели факторов и связей включаются все те из них, которые используются экспертами при содержательном описании моделируемого объекта. Таким образом осуществляется ограничение модели. Выполняется анализ зафиксированных в разработанной диаграмме цепочек причинно-следственных связей и определяются факторы, которые описываются в модели уровнями и темпами. В результате формируется сеть потоков модели. 5* 131
Выделяется и уточняется в качестве структуры, дополняющей сеть потоков в причинно-следственной диаграмме, информационная сеть модели. Схема 2. Выделяется множество основных материальных ингредиентов, динамику которых необходимо отобразить в модели» Таким образом осуществляется обособление модели. Для каждой выделенной совокупности однородных элементов определяется множество их возможных состояний и устанавливается структура переходов элементов ингредиентов из состояния в состояние. В результате формируется сеть потоков модели. Устанавливается структура причинно-следственных связей между уровнями и темпами сети потоков, т. е. разрабатывается структура информационной сети модели. Эти обе схемы являются лишь общими правилами структуризации. Потоковая и, в частности, гидравлическая интерпретации структур уравнений состояния моделей системной динамики — это также всего лишь схема, которая в ряде случаев чрезвычайно удобна и наглядна, но в некоторых задачах ее применение становится условным. Тем не менее в методическом плане рассмотрение обеих схем целесообразно, поскольку сообщает средствам формализации моделей системной динамики концептуальное единство. 4.3. СХЕМЫ И ПОТОКОВЫЕ ДИАГРАММЫ МОДЕЛЕЙ Рассматривая характерные особенности уравнений моделей системной динамики, мы неоднократно обращались к различным графовым представлениям этих уравнений: сетям потоков, информационным сетям, причинно-следственным диаграммам. Для дальнейшего важно заметить, что сети потоков и ярусные информационные сети описывают структуру уравнений моделей системной динамики только по частям, а причинно-следственные диаграммы, напротив, отображают взаимосвязи переменных моделей только в целом, не разделяя их но типам. Еще одним средством наглядного описания дифференциальных моделей являются структурные схемы. С помощью таких схем задаются структуры взаимосвязи и типы переменных уравнений моделей. Пример 4.6. На рис. 4.2 представлена схема функциональных зависимостей переменных дифференциальной модели D.2). Вводя в эту схему интегрирующие блоки для каждой из переменных состояния хх и х2, получим структурную схему модели (рис. 4.9, а). Воспользовавшись графом, приведенным на рис. 4.8, можно построить эквивалентное этой структурной схеме представление модели (рис. 4.9, б). Для этого на каждой дуге графа (см. рис. 4.8) нужно поставить метку, указывающую тип связи переменных, инцидентных этой дуге. В качестве типов связи здесь используются интегральный / и функциональный F типы. Интегральному типу связи соответствует дуга, проходящая через интегратор, а функциональному типу — дуга, проходящая через функциональный блок. Граф на рис. 4.9, б представляет всю информацию о модели D.2), содержащуюся в ее структурной схеме (см. рис. 4.9, а). 132
Рис. 4.9. Структурная схема модели: а — диаграмма; б — схема Введем компактную форму представления структурных схем дифференциальных моделей. Назовем схемой дифференциальной модели орграф G = (N, А) ее причинно-следственной диаграммы, на множестве дуг которого реализуется булевская функция вида 0, если дуга а ? А заходит в вершину, соответствующую выходу ^-блока структурной схемы модели; 1, если дуга а ? А заходит в вершину, соответствующую выходу /-блока структурной схемы модели. Ф (я) = Функцию ф условимся называть схемной функцией орграфа G. Очевидно, что для любой схемной функции будут выполняться следующие условия: 1 ? ф (А) — схемная функция не является тождественно равной нулю; для всех а ? Л, заходящих в одну и ту же вершину графа G, функция ф (а) = const; 1 6 Ф (°0> гДе а —множество дуг, образующих произвольный контур графа G. Использование графических форм представления информации, получаемой от экспертов в ходе сбора и анализа сведений о моделируемых процессах, — это очень важный аспект техники структуризации информации в любой технологии системного моделирования. Разработчики дифференциальных моделей системной динамики используют особую технику графического описания структур моделируемых систем. Основу этой техники составляет применение для описания структур моделей так называемых системных потоковых диаграмм. В потоковую диаграмму объединяются гра- I I _ . Ч~ 1 LJ~*t V -те I—I—I 1^_ *ш 2 Рис. 4.10. Потоковая диаграмма: — дуге — дуга потоков; сети информации ч Рис. 4.11. Структурная схема потоковой диаграммы 133
a) 5) t I f в) г) д) Рис. 4.12. Основные символы блоков потоковых диаграмм и структурных схем: а — суммирующий интегратор; б — уровень; в — функциональный преобразователь; г — темп; д — вспомогательная переменная фовые конструкции сетей потоков и информации (рис. 4.10), в результате чего обеспечивается целостность представления структуры уравнений, которая ранее достигалась только в описаниях моделей структурных схем. Символика структурных схем отличается от обозначений, принятых для потоковых диаграмм. Несмотря на явное различие в обозначениях, переход от потоковых диаграмм моделей системной динамики к их структурным схемам не вызывает затруднений (по крайней мере для тех случаев, когда в потоковой диаграмме используются нормативные структуры потоковых и информационных сетей). В качестве примера на рис. 4.11 приведена структурная схема, перестроенная из потоковой диаграммы, представленной на рис. 4.10. Необходимые дополнительные объяснения можно получить из рис. 4.12. Рассмотрим характерные свойства дифференциальных моделей системной динамики, наличие которых делает возможным представление этих моделей потоковыми диаграммами. Такие свойства (иногда их называют аксиомами системной динамики [10]) удобно сформулировать, используя представление потоковых диаграмм схемами G (jV, Л), вершины которых «раскрашены» литерами шифров типов уравнений моделей: L — уровень; R — темп; А — вспомогательная переменная; С — вход (константа, параметр, экзогенная переменная); 5 — выход (дополнительная переменная), а дуги — литерами I н F> определяющими разметку дуг схемы с помощью ее схемной функции ср (А). Пример «раскрашенной» таким образом схемы приведен на рис. 4.13. В случае представления потоковых диаграмм раскрашенными причинно-следственными графами аксиомы системной динамики выступают в качестве условий правильности потоковых раскрасок- орграфов G (Ny А). Эти условия можно задавать с помощью графа разрешенных сочетаний цветов раскрасок (рис. 4.14) или таблицей Рис. 4.13. «Раскрашенный» причинно-следственный граф 'К? Рис. 4.14. Разрешенные сочетания цветов потоковых раскрасок: L — уровень; R — темп; А — вспомогательная ременная; С — вход; выход пе- S — 134
L R A С S I I R F F F A F F F С S F F F строки и столбцы которой соответствуют символам потоковых диаграмм, а элементами являются литеры / или F. Пустые клетки указывают нормативно запрещенные виды соединений диаграммных символов. Сопоставляя структуру сети потоков модели системной динамики и орграф G ее схемы, можно следующим образом сформулировать условия правильности потоковой раскраски G: схемная функция ср (А) унимодулярна в том смысле, что принимает значение 1 только на дугах, исходящих из вершин схемы G, полустепень исхода которых не превышает 2. В случае, когда орграф G является знаковым, в данное условие включается требование различия знаков соответствующей пары дуг; схемная функция ср (А) внутренне устойчива в том смысле, что принимает значение 1 только на ориентированно несмежных дугах, инцидентных внутренним вершинам графа G I—]; схемная функция однотонна в том смысле, что ср (а) = = const для всех а?А, одинаково (положительно или отрицательно) инцидентных одной и той же вершине орграфа G. Свойство однотонности схемных функций орграфов схем потоковых диаграмм соответствует введенному в [10] «предположению совместимости». Схемные функции орграфа G, обладающие всеми перечисленными свойствами, будем называть потоковыми, так как дуги орграфа G, на которых потоковые схемные функции принимают значение 1, идентифицируют в причинно-следственных диаграммах моделей системной динамики сети потоков и, следовательно, порождают потоковые раскраски этих диаграмм. Действительно, пусть ф — потоковая схемная функция орграфа G. Раскрасим дуги А графа G в «цвет» / или F в соответствии со значениями функции ср, а затем раскрасим вершины графа G по следующему правилу: входные вершины — в «цвет С»; выходные вершины — в «цвет 5»; внутренние вершины, из которых исходят /-окрашенные дуги, — в «цвет R»; внутренние вершины, в которые заходят /-окрашенные дуги, — в «цвет L»; остальные внутренние вершины — в «цвет Л». 135
Подобная раскраска возможна, поскольку потоковая схемная функция ф является внутренне устойчивой. Все вершины графа G будут окрашены, причем каждая вершина получает только один цвет. Принадлежность потоковых схемных функций ф к классу унимодулярных функций обеспечивает сопоставление /-окрашенных дуг G и дуг потоковой сети. Остается проверить допустимость сочетаний цветов раскраски смежных вершин графа G по таблице разрешенных сочетаний цветов (или по аналогичному графу на рис. 4.14). С этой целью построим таблицу смежности верщин раскрашенного графа G. Легко убедиться, что все дуги, исходящие из tf-окрашенных вершин, и все дуги, заходящие в L-окрашенные вершины, будут иметь «цвет /», а все дуги, исходящие из Л-, С-, L-окрашенных вершин, или дуги, заходящие в R-j Л-, S-окрашенные вершины, будут иметь «цвет i7». Учитывая однотонность схемной функции ф, можно утверждать, что каждая строка и каждый столбец формируемой таблицы смежности должны включать только одинаковые символы (либо /, либо i7), а также, возможно, символ 0 — «пусто». Высказанные соображения иллюстрирует таблица L R А С S L I F I 1 1 F F 0 R F 1 F F F 0 А F I F F F 0 С 0 0 0 0 0 S F I F F F 0 Так как противоречивое требование окраски одной и той же дуги графа G одновременно в «цвета / и F» означает отсутствие такой дуги в графе, то приходим к искомой таблице смежности вершин L R А С S L 0 I 0 0 0 R F 0 F F 1 0 А F 0 F F 1 0 С 0 0 0 0 1 0 S F 0 F F 0 136
Рнс. 4.15. Основные этапы технологии системной динамики: / — концептуализация; // — структуризация; /// — параметризация; IV — формализация; / — вербальная модель; 2 — знаковый орграф модели; 3 — потоковая дна- грамма модели; 4 — дифференциальные (разностные) уравнения модели; 5 — машинная модель Все рассмотренные нами графовые представления структуры моделей системной динамики использовались в качестве абстрактных (алгебраических) описаний взаимосвязей переменных и в основном служили целям выявления структурных особенностей дифференциальных моделей, создаваемых на основе концепции потоковой стратификации систем. Ясно, что такие графы легко построить, если уравнения модели уже известны. Однако их использование в обычных формах представления [@,1)-матрицами или графическими стрелочными диаграммами] вряд ли удобно при структуризации экспертной информации на этапе разработки уравнений. Данное обстоятельство приводит к необходимости оснащения графов балансовых уравнений (сетей потоков) и ярусных графов функциональных зависимостей темпов (сетей информации) специальной выразительной символикой (рис. 4.15). Основные символы, их назначение и условия использования представлены в табл. 4.1. При использовании описанной символики рассматриваемые графы превращают потоковые диаграммы в средство наглядного отображения информации о динамике моделируемых процессов или, другими словами, — в язык общения экспертов по проблеме и системных аналитиков. Такой язык определяет форму выражения обсуждаемых вопросов, выступает в качестве средства разделения на части задач анализа причинно-следственной структуры моделируемой системы и последующей «сборки» их результатов в целостную картину организации процессов развития системы. Важность языковой функции потоковых диаграмм как технологического средства структуризации информации влечет за собой необходимость разрешения в потоковых диаграммах ряда отступлений от нормативной структуры моделей системной динамики: допускается введение в информационную сеть потоковых диаграмм уровней, в результате чего она превращается в концептуальную сеть потока информации; в потоковых диаграммах появляются так называемые запаздывания (см. табл. 4.1), что позволяет сокращать описания уравнений состояния высоких порядков и в то же время хорошо интерпретируют алгоритмы усреднения (выравнивания) информации в модели. Совмещение в конструкции потоковых диаграмм явной (сеть информации) и неявной (сеть потоков) форм графового описания 137
Таблица 4.1, Основные символы потоковых диаграмм моделей системной динамики Условное обозначение венное графическое Назначение н условия использования О о -> cfi ф <я пи К?\ t-in -о Нулевой узел потоковых сетей. Обозначает истоки и стоки потоковой сети Дуга потоковой сети диаграммы. Может соединять уровни с уровнями, истоками и стоками. Проходит через темп Дуга информационной сети диаграммы. Может соединять входы (параметры), вспомогательные переменные и уровни с темпами, вспомогательными переменными и выходами Узел потоковой сети диаграммы. Обозначает переменную состояния модели Уровень специального вида. Характеризуется временем и порядком. Темп выходного потока определяется значением уровня, временем и порядком запаздывания Обозначает скорость потока, проходящего по соответствующей дуге потоковой сети. Единица измерения темпа равна единице измерения уровня, деленной на время. Темпы не зависят непосредственно друг от друга Если идентификатор переменной заключен в дефисы сверху и снизу, то это означает, что переменная находится с помощью табличной функции Переменные модели, характер изменения которых во времени интересует исследователя 138
Продолжение табл. 4.1 Название Вход Уел венное С графическое ¦% ><3 Назначение н условия использования Экзогенная переменная модели либо константа зависимостей переменных состояния моделируемых систем, а также развитая графическая символика диаграмм приводят к тому, что потоковые диаграммы дают значительную часть той же информации, что и системы уравнений модели, но в иной, более наглядной форме. Построение потоковых диаграмм оказывается непосредственно связанным с решением задач предмодельного анализа исследуемой проблемы, служит своего рода итогом исходной содержательной проработки информационной базы процесса моделирования. По-видимому, без большого преувеличения можно сказать, что концепция потоковой стратификации систем, на которой базируются методы системной динамики, без языка потоковых диаграмм вряд ли оказалась такой привлекательной для специалистов, применявших и применяющих системную динамику в различных областях исследования сложных систем. 4.4. ПОСТРОЕНИЕ МОДЕЛЕЙ СИСТЕМНОЙ ДИНАМИКИ При нормативном подходе к разработке динамических моделей предполагается систематизация форм причинно-следственных описаний моделируемых процессов и соблюдение определенного порядка построения этих описаний. Основные этапы технологии моделирования в рамках рассмотренной нами в п. 4.2 формальной схемы «от структуры причинных связей к переменным состояния модели системной динамики» поясняет рис. 4.15. Рассмотрим, каким образом могут быть использованы средства структуризации моделей на первых трех этапах технологии моделирования. Краткое описание техники реализации уравнений моделей системной динамики в программу-имитатор с помощью языка моделирования ДИНАМО приведено в п. 10.3.8. 4.4.1. Концептуализация проблемной ситуации Начало разработки модели системной динамики обычно определяют как этап построения «вербальной модели» исследуемой проблемной ситуации. Такой этап работы безусловно входит в лю- 139
бую технологию моделирования. В процессе построения вербальной модели осуществляются постановка проблемы, анализ исходной информации, формулировка целей моделирования и т. п. Этот этап, пожалуй, наиболее ответственный и сложный. Успех его выполнения во многом зависит от уровня подготовки и опыта системных аналитиков, участвующих в создании модели. Что же конкретно предлагает системная динамика на первом этапе формирования модели [7, 11]? В качестве основной задачи здесь рассматривается формулирование целей моделирования и наиболее принципиальных гипотез, которые впоследствии должны найти отражение в модели. Работа по сбору информации о моделируемой системе и представлению ее в сжатом, хорошо организованном виде должна начинаться с интенсивных дискуссий со специалистами, конкретно знающими систему. Эти специалисты (мы их называли экспертами) должны быть активными участниками данного этапа разработки модели. Проводимые дискуссии необходимо нацеливать на скорейшее выявление границ моделируемой системы, основных факторов и процессов, отображение которых в модели является обязательным для достижения поставленной цели моделирования. Организация информации о системе оказывает существенное влияние на будущую структуру модели. Информационная база модели должна формироваться из условия замкнутости системы. Границу системы выбирают таким образом, чтобы обеспечивалась возможность включения в состав системы всех ее взаимодействующих компонент, динамика которых определяет наиболее важные аспекты поведения и состояния системы. Принцип замкнутости говорит о том, что поведение и состояния моделируемой системы обусловлены структурой взаимодействия ее компонентных процессов. Наличие замкнутой границы не исключает воздействие на систему внешних факторов. Однако предполагается, что сами по себе эти воздействия не могут являться основными факторами развития системы. В результате выполнения первого этапа должно быть составлено предварительное описание всей структуры отображаемых в модели причинных взаимосвязей, сформулированное в виде четких словесных конструкций и зафиксированное в образах специальных диаграммных представлений, например в эскизах диаграмм потоков или причинно-следственных диаграммах. При разработке вербальной модели должны быть выявлены: основные ситуации, экспериментальное исследование которых предполагается проводить с помощью имитационной модели; критерии оценки поведения модели; временные параметры имитации; факторы, определение которых связано с необходимостью проведения специальных экспертиз. После того как работа по первоначальной, «предмодельной» структуризации информации о проблеме проделана, можно переходить к этапам детального обоснования и построения структуры 140
модели и составления уравнений. В соответствии с нормативной схемой технологии системной динамики в качестве исходных данных для детального описания моделируемой проблемы могут использоваться построенные на первОхМ этапе причинно-следственные диаграммы (знаковые орграфы) и эскизы потоковых диаграмм. 4.4.2. Построение потоковых диаграмм Этап разработки потоковой диаграммы является основным при структуризации модели системной динамики. Нормативное содержание данного этапа — переход от причинно-следственной диаграммы разрабатываемой модели к ее потоковой диаграмме. Такой переход связан с разметкой вершин (и дуг) орграфа причинно-следственной диаграммы в соответствии с основными типами переменных и аксиомами системной динамики. Выполнение аксиом обеспечивает в последующем разработку и алгоритмизацию по диаграмме дифференциальных (разностных) уравнений модели. В целом рассматриваемый переход неформален и, как правило, опирается на содержательные суждения о характере и причинах взаимодействия факторов, представленных в виде переменных модели. Однако, как и в любой машинно-ориентированной технологии системного моделирования, существенную роль в процессе структуризации моделей системной динамики играет формальная основа их алгоритмической схемы. Учет особенностей этой схемы позволяет автоматизировать контроль за соблюдением аксиоматики системной динамики в ходе структуризации моделей, а также реконструировать уже созданные модели, т. е. разрабатывать альтернативные модели, структурно эквивалентировать и упрощать модели системной динамики. Задача построения потоковых диаграмм как этап нормативной технологии структуризации моделей системной динамики сводится к следующему. Дан связный не имеющий петель (знаковый) орграф причинно-следственной диаграммы разрабатываемой модели. Требуется каждой вершине этого графа поставить в соответствие один из символов набора (L, Ry A, С, S) так, чтобы были выполнены все аксиомы системной динамики, т. е. предложить потоковую раскраску графа. Методы системной динамики обеспечивают решение этой задачи, если с их помощью могут быть получены ответы на следующие вопросы: 1) Существуют ли для заданного орграфа потоковые раскраски? 2) Сколько потоковых раскрасок имеет заданный орграф? 3) Как перечислить возможные потоковые раскраски орграфа? Обсуждая нормативную структуру моделей системной динамики, мы уже фактически сформулировали ответ на первый из этих вопросов. Если теперь учесть, что ответ на третий вопрос неявно включает и ответ на второй, то становится ясным основное 141
п«н О О 00 О О О /' 2' JV5'6' 7' Рис. 4.16. Орграф и соответствующий ему терм-граф алгоритмическое содержание решения задачи о построении потоковой диаграммы модели системной динамики по ее причинно-следственной диаграмме — это решение задачи о перечислении потоковых схемных функций орграфов. Необходимой предпосылкой решения задачи о перечислении потоковых схемных функций орграфов является умение строить на дугах орграфов булевские функции, обладающие каждым из характерных свойств потоковых схемных функций в отдельности. В качестве наиболее тонкого и интересного свойства рассматриваемых функций можно выделить свойство их однотонности. Однотонная схемная функция орграфа раскрашивает в один тон (цвет) все дуги графа, одинаково инцидентные его вершинам. Ясно, что такая раскраска определяет на множестве дуг орграфа рефлексивное и симметричное отношение однотонности. Обсудим данное отношение. Сопоставим орграфу G терм-граф G' матрицы его смежности, доли N и N' вершин которого соответствуют строкам и столбцам этой матрицы. Каждой дуге а = (л, т) орграфа G отвечает одноименное ребро (л, т!) графа G и обратно. Два графа — орграф G (см. рис. 4.13) и соответствующий ему терм-граф G' — показаны на рис. 4.16. Любая цепь графа G' задает подмножество дуг орграфа G, которые должны раскрашиваться однотонными схемными функциями в один цвет. Это обстоятельство означает, что отношение однотонности орграфа G индуцируется связностью орграфа G', и, следовательно, рассматриваемое отношение является эквива- Г\ в> г* FT в) (bw) г) Рис. 4.17. Построение схемы отношения однотонности 142
СиачалоЛ \ 1 /: "" 7 1 1 1 Ч'-"' \~ г. Hi =/*/(¦ 1 , •к*щ (jOHSU ^ Рис. 4.18. Орграф с расщепленными Рис. 4.19. Алгоритм разделен» ор«* вершинами графа на однотонные части лентностью на множестве дуг орграфа G. Условимся называть классы такой эквивалентности компонентами терм-связности либо однотонными блоками. Блочную структуру орграфа G, определяемую отношением однотонности, удобно представлять с помощью схемы соединения компонент связности графа G'. Пример 4.7. Переставляя вершины долей терм-графа на рис. 4Л7, можно заметить, что его ребра разделяются по двум компонентам связности. Эти компоненты помечены на рис. 4Л7, а символами Ль Л2, которые соответствуют двум однотонным блокам Въ В2 исходного орграфа (рис, 4Л7, б). Вершины каждого из этих блоков естественно разделены на левую и правую доли (не обязательно в строгом смысле отсутствия теоретико-множественного пересечения этих долей), соответствующие долям терм-графа на рис. 4Л6. Рассматривая эти доли в качестве входов и выходов блоков однотонности, изобразим их в стандартной символике структурных схем (рис. 4.17, в). Если теперь соединить одноименные входы построенных блоков, то придем к структурной схеме (рис. 4Л7, г), описывающей отношения однотонности орграфа, представленного на рис. 4.16. Схему отношения однотонности произвольного орграфа можно рассматривать как специальную форму его представления. Действительно, расщепим каждую из внутренних вершин орграфа G из данного примера, перестроив его в граф на рис. 4Л8. Ясно, что множество классов однотонности полученного орграфа состоит из всех классов однотонности графа G и одноэлементных классов, образованных дугами, соединяющими расщепленные вершины. Рассматривая эти новые одноэлементные блоки как связи блоков орграфа G, мы получим структурную схему, как на рис. 4.17, г. Для иллюстрации приведем один из возможных алгоритмов разделения орграфов на однотонные части — алгоритм выделения компонент связности двудольных графов. Пусть V — матрица смежности графа G' (орграфа G), at — ненулевая строка этой матрицы. Требуется построить матрицу V, из строк матрицы V и с помощью этой матрицы установить смежность вершин компоненты орграфа G, в которую входят ребра, содержащиеся в t. Схема алгоритма решения данной задачи приведена на рис. 4.19. На схеме использованы следующие обозначения: / (V,) — число строк матрицы V,; [V]* —матрица, составленная из строк V, параллельных строке матрицы V, явля- 143
ющейся t-й строкой V/. Параллельными здесь названы любые две строки матрицы V, для которых в V можно указать столбец с ненулевыми элементами в данных строках; V,-flVlj— матрица вида v» + ivl=|M где Vt — строки матрицы [V ]it не входящие в V,. Пример 4,8. Рассмотрим орграф G, заданный матрицей смежности V: 1 2 3 4 5 6 1 0 1 0 0 0 0 2 1 0 0 0 0 1 3 0 1 0 1 0 0 4 0 0 0 0 1 0 5 1 0 1 0 0 0 6 0 0 1 0 0 0 Применим описанный выше алгоритм для нахождения компоненты связности графа G, соответствующий первой строке V. Шаг 1 Vi 1 1 0 2 1 3 0 4 0 5 1 6 0 Шаг 2 [Vli = Vt 3 6 1 0 0 2 0 1 3 0 0 4 0 0 5 1 0 6 1 0 Vt 1 3 6 1 0 0 0 2 1 0 1 3 0 0 0 4 0 0 0 5 1 1 0 6 0 1 0 144
Шаг 3. Убеждаемся, что в матрице V нет строк, отсутствующих в V* и па- (аллельных второй и третьей строкам Vj. Матрица смежности Vj искомой ком- оненты связности графа G построена. Рассмотрим теперь метод построения 0, 1-раскрасок дуг орграфа, задающих схемные функции, которые, в свою очередь, порождают всевозможные потоковые раскраски. Метод строится как трехшаговая процедура графотеоретического анализа причинно-следственных диаграмм моделей системной динамики. Шаг L Разделение орграфа на однотонные части. Этот шаг сводится к выделению классов однотонности дуг причинно-следственного орграфа и построению схемы отношения терм-связности. Шаг 2. Анализ структуры однотонных блоков. Отбор 0-окра- шенных блоков. Конденсация О-окрашенной части орграфа. На этом шаге осуществляется анализ однотонных блоков орграфа, в процессе которого необходимо: 1. Убедиться в отсутствии блоков однотонности с запрещенной аксиомами системной динамики структурой (блоков с контурами). Если такие блоки есть, то орграф не имеет потоковой схемной функции. 2. Выделить те однотонные блоки, для которых по аксиоматике системной динамики является обязательной 0-окраска. К таким блокам относятся: все недвудольные блоки; все блоки, среди вершин которых имеются входы или выходы орграфа, и (или) внутренние неунимодулярные вершины орграфа. Если множество О-окрашенных таким способом блоков составляет все множество блоков однотонности орграфа, то такой орграф не имеет потоковой схемной функции. 3. Объединить (склеить) все О-окрашенные на данном шаге блоки орграфа в один 0-блок и убедиться в том, что этот блок не имеет контуров. Если последнее условие не выполняется, то для рассматриваемого орграфа построение потоковой схемной функции невозможно. 4. Выполнить конденсацию О-окрашенного блока, заменив его двудольным орграфом достижимостей вершин-выходов блока из вершин-входов блока, т. е. двудольным орграфом путей «Вход — выход» блока. Это заключительное на шаге 2 преобразование не обязательно, но желательно, так как упрощает структуру орграфа и облегчает его анализ на шаге 3. Шаг <?. Перечисление альтернативных 1-раскрасок орграфа. Этот шаг завершает решение задачи построения потоковых раскрасок причинно-следственного орграфа. На нем осуществляется выбор всех тех подмножеств однотонных блоков орграфа, которые не получили на шаге 2 0-окраску и допускают по аксиомам системной динамики 1-окраску. Обозначим зФ = {^0,^!, ..., s4>m) множество однотонных блоков орграфа G, которые следует рассмотреть на данном шаге метода. Каждый из блоков s^t является двудольным орграфом бФг = = (Nif Nl; At), множество вершин Nt (J N't которого есть под- 145
ом Рис. 4.20. Причинно-следственная диаграмма Рис. 4.21. Классы однотонности множество вершин G, а множество дуг At cz Nt X N't (подмножество соответствующего множества дуг орграфа G). Условимся, что блок s?0 является 0-окрашенным (после шага 2), а все остальные блоки из множества s? еще не получили окраски. Схему отношения однотонности G представим в виде орграфа вершинных пересечений блоков: G = (s4>, V), полагая, что в этом графе имеется дуга {s?b s?h) ? V, если и только если не пусто пересечение множества вершин-выходов блока six и множества вершин-входов блока stk: N'i f] М'кФ0. Рис. 4.22. Схема отношения однотонности 14*
Рис, 4.24. Схема с единственным О-блоком Рис. 4.25. Граф схемы с единственным О-блоком Рис. 4.23. Преобразование к блок-схеме с единственным О-блоком W 10, 10 12 'я о 2\L\ ^-У €> ом о 3 I ss; гхй / I - : I / Рис. 4.26. Варианты потоковых раскрасок: в первом столбце указаны номера вершин» во втором — цвета переменных 147
Задача, решаемая на шаге 3, состоит в следующем. Требуется перечислить все подмножества множества неокрашенных вершин графа G, которые удовлетворяют паре условий: 1) это внутренне устойчивые подмножества^; 2) это блоки, через которые проходит любой контур G. На дугах блоков таких и только таких подмножеств s4> потоковые схемные функции орграфа G могут принимать значение 1. Таким образом, если указанных подмножеств в s& нет, то орграф G не имеет ни одной потоковой схемной функции и, следовательно, для него поставленная задача о раскраске неразрешима. Пример 4.9. В качестве раскрашиваемой причинно-следственной диаграммы в данном примере выбран орграф (рис. 4.20), рассмотренный в работе [10]. Действуя по приведенному выше алгоритму раскраски, получим следующее. Орграф имеет шесть классов однотонности (рис. 4.21), блок-схема которых приведена на рис. 4.22. Как следует из рис. 4.21, все блоки орграфа являются двудольными и, в частности, среди них нет блоков с контурами; 0-окраска обязательна только для дуг блоков, помеченных на рис. 4.21 символами е, /. Исключив из рассмотрения входы орграфа, объединив (рис. 4.23, а) и сконденсировав (рис. 4.23, б) блоки е, /, приходим к схеме (рис. 4.24) с единственным 0-окрашен- ным блоком (заштрихован на рисунке). Граф построенной схемы изображен на рис. 4.25. Множество его неокрашенных вершин внутренне устойчиво. Все контуры исходного орграфа проходят через блоки a, b однотонных дуг. Таким образом, рассматриваемый орграф имеет четыре потоковые схемные функции, соответствующие следующим четырем случаям 1-раскраски его блоков: а) а, Ь\ б) а, ?>, с\ в) а, b, d: г) а, Ь, с, d. Потоковые диаграммы для каждого из этих случаев приведены соответственно на рис. 4.26, а—г. 4.4.3. Составление уравнений темпов Предположим, что в нашем распоряжении уже имеется потоковая диаграмма модели, на которой указана структура основных причинных зависимостей темпов модели от уровней. Задача данного этапа разработки модели состоит в выборе производящих функций темпов потоков, т. е. в составлении уравнений темпов, структура которых описана информационной сетью потоковой диаграммы. Составление уравнений темпов модели системной динамики представляет собой процесс перевода вербальных описаний взаимозависимостей факторов моделируемой проблемной ситуации на язык четких количественных соотношений. Естественно, что процедуры этого процесса нельзя рассматривать как обязательные в любом случае рабочие алгоритмы. Методы системной динамики в принципе не связывают разработчика модели какими- либо жесткими требованиями, предъявляемыми к форме уравнений производящих функций темпов, за исключением требования обеспечения корректности системы уравнений разрабатываемой модели. (В этом смысле, например, обязательным является условие непосредственной независимости темпов модели, выполнение которого на структурном уровне гарантируется правиль- 148
Рис. 4.27. Упрощенная схема Рис. 4.28. Фрагмент потоковой диа- модуля /ль/ граммы модели мировой динамики: / — относительная плотность населения; 2 — относительный уровень загрязнения; 3 —• относительный уровень питания; 4 — материальный уровень жизни ным составлением информационной сети потоковой диаграммы.) Системная динамика представляет разработчикам общие приемы, использование которых, как правило, облегчает и упрощает выбор и обоснование производящих функций темпов. Рассмотрим здесь два основных приема. Первый из них основан на том, что темпы потоков можно рассматривать в качестве функций принятия решений. Использование такой концепции особенно удобно и естественно при моделировании производственных и экономических систем, когда производящие функции темпов фактически представляют собой количественные описания решающих правил, действующих в механизме управления системой. При разработке, с этой точки зрения, уравнений темпов рекомендуется выделять и в явном виде отображать в производящих функциях темпов следующие структурные элементы: желаемое состояние потокового сектора, в котором действует определенный темп (задание цели решающего правила); существующее (текущее) состояние сектора; количественное выражение различия между указанными состояниями потокового сектора; соотношение для выработки корректирующего воздействия на темп, которое обеспечивает перевод сектора в желаемое состояние. Пример 4.10. Рассмотрим основной структурный элемент имитационной модели гибкой многофазной, имеющей К участков, многопродуктовой (выпускающей J видов продукции) технологической линии [3]. Этот элемент, который мы будем называть модулем модели и обозначать т^у k = I, ..., К\ / = 1, .¦., Л обладает характерными чертами системы управления. В нем отображаются процессы функционирования технологического участка линии, на котором обр а- батывается продукция /-го вида. Производство каждого /-го продукта складывается из параллельно осуществляемых на линии (и на участке) выпусков множества подвидов типов (/, xj)t Xj ? Xj промежуточного (готового) продукта. В каждом модуле m^j модели реализуются механизмы управления, обеспечивающие предусмотренные темпы и объемы выпуска по каждому (/, */)-типу продукции заданного /-вида при условий сохранения в допустимых пределах 149
ВРММ 1,5 10 I I I I i л 1 Рис. 4.29. Зависимость темпа ВР от материального уровня жизни 7 2 3 4 Материальный уровень жизни значений экономических показателей использования технологического оборудования и управления производственными запасами участка. В модуле выделяются три потоко- 0,51 I I 1 ^ 1 вые сети — сеть материалов (СМ), сеть обору- 0 1 2 3 4 5 дования (СО) и информационная сеть (ИС). В СМ отображается динамика уровней входного и выходного продуктов участка, а также динамика уровней различных типов продуктов, находящихся в обработке. В СО представляются процессы изменения во времени уровней технологического оборудования, занятого обработкой, освободившегося после обработки, подготовляемого к выполнению технологической операции. Динамика процессов в СО и GV\ взаимно обусловлена. Решения о распределении оборудования и, следовательно, о интенсивности обработки продукции каждого (/, х/)-типа формируются в ИС модуля. Текущее состояние СМ в модуле rrihj задается вектором Кем» а текущее состояние СО — вектором Усо- Оба эти вектора составляют базу принятия решений в ИС. Приоритет по управлению в модуле принадлежит функциям решений (темпам) в СО. Поэтому в ИС оценка состояний в целом приводится к YqQ — скорректированной по Усм оценке состояния СО. Желаемое состояние модуля К0 определяется в модели как управляющее воздействие, формирование которого возлагается на координаторы (специальные блоки модели) или оператора. Рассогласование Y—У?0 вычисляется в модуле т, . и служит основой для расчета необходимых значений темпов потоков в СО. Найденный в результате вектор темпов потоков Tqo играет роль вектора управлений потоками оборудования в модуле, действие которого направлено на уменьшение рассогласования YQ—Kqq и достижение желаемого состояния У0. Вектор управлений для СМ Гсм находится в зависимости от Гсо- Упрощенная структурная схема модуля приведена на рис. 4.27. Второй методический прием, широко используемый при разработке уравнений темпов моделей системной динамики, — это способ задания производящей функции темпа в виде произведения «нормального темпа» и корректирующих множителей, определяющих его зависимость от переменных состояния (уровней) модели. Пример 4.П. Рассмотрим фрагмент потоковой диаграммы (рис, 4.28) модели мировой динамики Дж. Форрестера [9]. Темп ВР определяется здесь как произведение численности населения Я, нормального темпа рождаемости ВРН и следующих сомножителей, отображающих зависимости темпа рождаемости от: материального уровня жизни — ВРММ\ плотности населения — ВРСМ; уровня питания — BPFM\ уровня загрязнения — ВРРМ. Уравнение темпа ВР имеет вид BP.KL=(P.K) (CLIP) (BPH, 0.04, 1970, Т1МЕ.К)Х X(BPFM.K) (ВРММ.К) (ВРСМ.К) (ВРРМ.К). Функция СЫР соответствует обычному оператору IF языков программирования: CLIP (...)¦¦ 0.04, если 1Ш<Т1МЕ.К\ ВРН, если №0>Т1МЕ.К. 150
Каждый из четырех перечисленных выше множителей представляет собой нелинейную функцию, вид которой отражает реальные совокупности данных о характере описываемой причинной связи, или же задает экспертную оценку (гипотезу) такой связи. Так, в частности, множитель ВРММ темпа ВР является функцией, представленной на рис. 4.29. Этот множитель определяет эффект только одной взаимосвязи темпа ВР — влияние иа темп рождаемости материального уровня жизни. Функция на рис. 4.29 описывает данный эффект при условии, что все уровни модели за исключением материального уровня жизни постоянны» Использование описанной формы уравнений темпов обеспечивает наглядность и простоту их содержательной интерпретации, является удобным средством для экспертной оценки информации о наиболее трудно формализуемых аспектах причинных связей компонентных процессов моделируемых систем. Отметим в заключение, что немаловажным обстоятельством, способствующим преемственности различных форм конструирования моделей при использовании рассмотренных нами приемов составления уравнений темпов, является четкое соответствие структур этих уравнений строению информационной сети потоковой диаграммы модели системной динамики. Например, структура представления производящих функций темпов в виде произведений нормальных темпов и корректирующих множителей непосредственно соотносится структуре причинно- следственных зависимостей, заданных диаграммами разрабатываемой модели. Каждый из корректирующих множителей ставится в соответствие дуге информационной сети потоковой диаграммы модели. При этом вид (возрастающая или убывающая функция) будет отвечать знаку, определенному для данной дуги в причинно-следственном графе модели. Таким образом, используя второй из рассмотренных приемов составления уравнений темпов, специалист по системной динамике на основе знакового орграфа модели может записать общее выражение для любого темпа модели и качественно охарактеризовать вид образующих его функциональных сомножителей. Преемственность различных форм описания моделей обеспечивает возможность создания эффективных инструментальных средств программной поддержки процедур и методов системной динамики. Общий подход к разработке таких средств заключается в автоматизации процессов построения уравнений темпов на основе использования наборов типичных формульных выражений для производящих функций темпов. Уравнения темпов формируются в процессе диалогового взаимодействия разработчиков модели и комплекса программных средств, поддерживающих методы системной динамики. В ходе диалога осуществляется ввод и анализ структурной информации о модели, а затем генерируются варианты формульных выражений производящих функций темпов (в частности, варианты типа произведения нормального темпа и корректирующих множи- 151
телей).Каждый из предлагаемых вариантов сопровождается стандартными описаниями входящих в него функций, их параметров и ограничений. Программные средства комплекса обеспечивают прием задаваемых экспертами спецификаций указанных стандартных описаний, их контроль на непротиворечивость, преобразование полученной информации в текст на языке моделирования ДИНАМО (см. п. 10.3.8) либо непосредственно в машинную модель, готовую для проведения вычислительных экспериментов.
Часть II ЗАДАЧИ ТЕОРИИ МОДЕЛИРОВАНИЯ Этап технологии моделирования, которому посвящена вторая часть книги, включает проверку адекватности моделей, анализ свойств их поведения, структурных особенностей и т. д. Этот этап становится тем более важным, чем выше сложность исследуемых проблемных ситуаций, так как позволяет упорядочить и систематизировать знания о них. Данные исследования базируются на теории моделирования, фрагменты которой здесь изложены. Теоретические исследования проводятся в следующих направлениях: дальнейшая структуризация проблемных ситуаций на базе дополнительно привлекаемых знаний о системе, уточненных представлений о целях ее изучения, предполагаемых сценариях проведения имитационных экспериментов; формирование новых математических моделей, имеющих своим прообразом исходную алгоритмическую модель, и предназначенных для целенаправленных аналитических исследований и вычислительных экспериментов, обеспечивающих анализ требуемых структурных и динамических характеристик системы; формирование требований к рабочей имитационной модели, спецификаций на сжатие и обработку данных, заданий на вывод результатов моделирования, планирование имитационных экспериментов. Объектом этих исследований в книге служат сигнальные графы и соответствующие системы дифференциальных уравнений многокомпонентных линейных стационарных систем, потоковые диаграммы и модели системной динамики, стохастические аг- регативные модели.
ГЛАВА 5 СТРАТИФИЦИРОВАННЫЙ ПОДХОД К ПОСТРОЕНИЮ ФОРМАЛЬНЫХ СТРУКТУР МОДЕЛЕЙ 5.1. КОНЦЕПЦИЯ СТРАТИФИЦИРОВАННЫХ МОДЕЛЕЙ Объяснение механизмов поведения системы и достижимых в ней состояний прежде всего связано с необходимостью выяснения, какими свойствами, в какой степени и при каких условиях данная система обладает. Синтез систем, имеющих необходимый набор заданных свойств, является главной проблемой проектирования. Анализ степени выраженности и обусловленности тех или иных свойств систем более всего разработан применительно к одноком- понентным несоставным системам. В этой главе рассматривается один из возможных подходов к поиску путей решения проблем анализа и синтеза составных систем на основе методов машинного моделирования. Исходным здесь является тезис об определяющей роли стратификации. Стратифицированные модели представляют собой математические описания иерархии детерминирующих связей, механизмов и структур сложных многокомпонентных систем. Они отображают структурированные знания о системах и, таким образом, являются одновременно целью и средством исследования логики образования феномена системы. Стратификация систем, являясь общим принципом системного моделирования, представляет собой выражение специфики такой гноссеологической функции математических моделей систем, как абстрагирование, в частности, способа перехода от абстрактного к конкретному. Этот переход осуществляется в основном двумя путями: во-первых, путем детализации и, во-вторых, путем построения дополнительных моделей. Первый путь связан с использованием в качестве моделей систем формальных структур различных композиционной и алгебраической общностей, когда в модель добавляются факторы, от которых первоначально абстрагировались. Эти новые факторы детализируют общую картину и относятся к характеристикам как элементов систем, так и связей, как к внутреннему содержанию системы, так и к внешним условиям их существования. Детализация заключается в расшифровке структуры первоначальных элементов, дополнительном учете некоторых взаимодействий, включении эффектов внешних воздействий и т. п. 154
Второй путь позволяет уточнить строение и свойства систем с помощью ансамблей различных по своей организации моделей. Этот путь конкретизации абстрактной системы эффективен в случае возникновения затруднений для уточнения знаний о свойствах систем с помощью детализации представляющих эти свойства специальных структур. При этом по меньшей мере требуется наличие имплицитных связей между моделями указанных ансамблей. Путь к исследованию сложных систем, связанный с построением ансамблей математических моделей может быть взят за основу при создании соответствующей машинной технологии моделирования. Ясно, что разработка такой технологии находится в прямой зависимости от особенностей развития концептуального и математического аппарата системного моделирования, являясь его прикладной интерпретацией. Вместе с тем существует и обратное влияние на формирование основных категорий системного моделирования концепции и конкретных результатов методов машинной обработки информации. Так, понятие стратифицированной модели при его общем рассмотрении имеет громоздкую абстрактную структуру. Уже по той причине, что стратифицированная модель есть ансамбль связанных отношением моделирования систем, ясна сложность ее исчерпывающего задания даже в смысле простого формального описания. Стратифицированные модели представляют собой машинно- ориентированные понятия. Фактически, говоря о стратификации систем, следует иметь в виду конструирование баз данных (знаний), над которыми определены вычислительные процессы решения локально исследованных задач теории систем и системного анализа [2, 10, 13, 16, 23]. Упорядочение и организация решений этих задач в общий целенаправленный процесс моделирования систем по частям составляют существо разрабатываемых проблем теории и технологии системного моделирования. Построение методологии системного моделирования находится в прямой зависимости от того, насколько продуктивным является развитие теории систем как теории стратификации. Актуальность данного направления исследований обусловлена сложностью и масштабами задач, стоящими перед теорией систем, и, в частности, междисциплинарным характером ее приложений. Теория систем должна стать проводником и организатором математических методов, привлекаемых для объяснения феноменов сложных систем [9, 21, 32], а системное моделирование — методом формирования абстрактных иерархий причинных связей, механизмов поведения и структур различных классов сложных систем. Ведущим принципом теории систем при изучении многокомпонентных динамических объектов является принцип функциональной целостности, органичности системы. Выявить обусловленность функций и структур компонент исследуемой системы, дать функ- 155
циональное объяснение системе с помощью абстрактных моделей на основе принципа органичности, ответить на вопрос, почему или с какой целью система ведет себя и устроена именно так, а не каким-либо другим образом, — основная задача системного моделирования. 5.1.1. Классификация систем по Дж. Клиру Важной задачей общей теории систем является разработка классификации систем, основанной на определении методологически различных типов семейств отношений между элементами системы. Концепция Дж. Клира [17, 32] приводит к построению иерархически организованной области всех систем. Классы, относящиеся к некоторому уровню в иерархической структуре Дж. Клира, характеризуют определенный эпистемологический уровень систем. Все эпистемологические типы систем в схеме Дж. Клира вместе с отношением «быть на более низком узком уровне, чем ...» составляют решетку (рис. 5.1). В качестве меток узлов решетки на рис. 5.1 используются: Р — исходная система (система без данных); D — система с данными; G — порождающая система; S — структурированная система; М (&), k — 1, 2, ..., К — метасистема порядка k\ ХМ (k = 0), X ? {GS, DS, PS, G, D, P}\ комбинации из двоек и троек символов G, 5, D, Р> М (k) на каждом уровне решетки означают различные типы полных систем, например, GSM B) = {(GSMt A) | i ? N); г B)}, где GSM B) — полная порождающая структурированная метасистема 2-го порядка, GSMt A) — семейство (/ ? N) порождающих структурированных метасистем 1-го порядка; г B) — правило, описывающее переходы внутри семейства подсистем GSMt A), i ? N, параметрически инвариантное на уровне 2. Раскроем смысл использованных обозначений и дадим объяснение иерархической организации эпистемологических уровней систем. Системой нулевого уровня называется исходная система Р = = ({xt | i ? /}; W; V), где xt — переменные системы (различают х* — базовые переменные и х° — опорные переменные); W — параметрическое пространство системы (х° ? W); V — пространство потенциальных значений (состояний) базовых переменных; W и V задаются с точностью до способа описания в терминах атрибутов реального мира. Указанием двух подмножеств (входного VBX и выходного Увых) множества V устанавливается факт «влияния» VhX на Увых. Системы, в которых подмножества VhX и Увых могут быть указаны, называются направленными, в противном случае — нейтральными. Допускаются и другие виды квалификации базовых переменных. Смежный для Р узел с односимвольной меткой представляет систему с данными (D-систему), которая включает в себя Р- 156
Рис. 5. К Иерархия эпистемологиче- GSM(K) DSHUO PSM(K) ских уровней системы систему и определяется как система первого уровня. Если в качестве формальной записи использовать D = (Р, d), то d будет обозначать данные, которые для исходной системы устанавливаются по какому- либо определенному правилу, например, d : W -> V, если все базовые переменные Р-си- стемы являются жесткими (вполне определенными); d : WxV -> -*¦ [0, 1 ], если все базовые переменные Р-системы— размытые. Системой-предшественником для D-системы является порождающая G-система. Это — система второго уровня. D-система и, разумеется, Р-система включаются в G-систему. Формально порождающая система задается тройкой вида G = (Р, М, /?), где М — окрестности мгновенных значений опорных переменных — параметров Р-системы; R — параметрически инвариантное отношение переходов состояний (R может быть детерминированным, вероятностным, небулярным и задается различными альтернативными способами). Именно на уровне G системы определенное для исходной системы множество базисных переменных при необходимости расширяется за счет включения в него дополнительных (внутренних) переменных, для которых задаются правила перевода в параметрическое множество W. Системы третьего уровня называются структурированными системами (S-системы). Они образуются на базе G-, D-, Р-систем. На рис. 5.1 структурированным системам соответствуют узлы, помеченные двумя символами GS, DS, PS. S-системы в качестве элементов имеют семейства подсистем полной системы-предшественника G-, D- или Р-типа. Подсистемы в S связаны отношениями. Формально S-системы записываются как XS = ({xt\t?N); {См|/, k?N}), где X ? {G, D, Р}; N — множество индикаторов подсистем полной системы; CJh — связи между подсистемами с индикаторами / и k. Все рассмотренные нами четыре типа систем условно относятся к классу метасистем нулевого порядка — М @). Метасистемы 1-го порядка, 2-го, ..., К-го порядков представляются на решетке (см. рис. 5.1) узлами с соответствующими метками. Метасистемы М (k) могут быть образованы на базе структурированных или неструктурированных систем. Методологическим различаю- 157 \СМA) г / У— х (МП) ГУ™» рл—^>-\— s 6S\ / DS PS
щим критерием при построении М (k) на основе соответствующих систем-предшественников является условие выполнимости в М (k) параметрически инвариантного правила (отношения) порядка k. В связи с рассмотренной классификацией Дж. Клира мы сделаем важные для последующего анализа замечания: первичным звеном классификационной схемы является исходная система. В операциональном смысле определение исходной системы состоит в обособлении ее от окружающей среды, т. е. в опознании некоторого интересного для исследователя объекта в качестве системы и формального описания этого объекта в форме Я-системы; наделяя исходную систему дополнительными качествами, исследователь развивает ее описание и получает ансамбль методологически различимых моделей, относящихся к различным эпистемологическим уровням системы; модели полученного ансамбля могут стать объектами постановки задач анализа свойств системы. Задачи исследования систем целесообразно ставить и решать таким образом, чтобы обеспечивалась неизбыточпость и однозначность представления оценок свойств и характеристик. Процесс исследования должен быть строго упорядочен в направлении раскрытия неопределенности — восхождения от исходной модели к моделям высших эпистемологических уровней, обладающих большим набором интересных свойств. 5.1.2. Схема системных графов Системные графы используются для исследования обусловленности функционально-целевых свойств систем их организацией [4, 7, 8, 15]. Главная идея схемы — указать путь к конструктивной технологии системного моделирования. Аналогично подходу Дж. Клира, схему системных графов следует рассматривать как развивающуюся научную программу, имеющую собственный способ классификации систем, системных проблем и соответствующих" им средств теории и технологии. Область применения системных графов связана с изучением многокомпонентных систем различной природы. В процессе анализа таких систем обычно приходится искать компромисс между желательной простотой описания систем и необходимостью включения в модели многочисленных поведенческих особенностей и морфологических характеристик. Поток эффективных методов моделирования базируется на применении концепции стратификации. В рамках рассматриваемого нами подхода стратификация системы приводит к ансамблям системных графов — неизбыточным формальным структурам специального вида, моделирующим состояние и поведение системы в ракурсах ее определенных свойств (например, устойчивости, управляемости, наблюдаемости 158
и'т. п.). Отношения моделей в указанных ансамблях могут носить достаточно общий характер, в том числе характер имплицитных связей по наличию некоторого заданного свойства. Цель описания систем ансамблями системных графов заключается в выявлении логики преемственности фундаментальных свойств системы при ее составлении из сепаратных функционально-целевых подсистем. Метод системных графов первоначально создавался для исследования морфологии составных линейных систем управления 'В случае представления сепаратных подсистем передаточными матрицами [4, 5, 6, 15]. В более общем плане вопрос о представлении сложных систем ансамблями системных графов, связанных отношениями гомоморфного подобия, но заданных во временной области, рассматривался в [8, 29]. Построение ансамблей системных графов наиболее естественно может, быть осуществлено путем конструирования моделей верхних уровней на основе факторизации моделей нижележащих страт ансамблей. Называя для определенности такое конструирование страт многоуровневой модели факторизующей К-операцией, можно содержательно поставить задачу следующим образом: «Пусть задано множество соединяемых систем. Применение Кооперации к соединяемым системам порождает новую их совокупность, структура которой подобна исходному соединению. Последовательное применение К-операции к результатам ее выполнения обеспечивает искомый ансамбль моделей. Необходимо выяснить, какие свойства исходного соединения (исходного множества соединяемых систем) будут инвариантны для построений, задаваемых К-операцией, и не является ли это множество пустым». Более глубокое изучение проблематики моделирования сложных систем по частям позволяет еще больше обобщить идею метода системных графов: целью метода в плане проблем моделирования является не только и не столько получение модели целостной системы в форме ансамблей системных графов, сколько выявление логики образования таких моделей из независимо моделируемых компонент; отношения моделирования при стратификации систем не обязательно должны носить характер гомоморфизма (в строгом алгебраическом смысле); эти отношения, вообще говоря, определяются тем набором свойств составной системы, формирование которых отслеживается в процессе моделирования; при моделировании по частям в общем случае всегда требуется доказывать по крайней мере два положения: 1) модель прямой композиции частей и модель, построенная по частям, равнопред- ставительны с точки зрения проявляемого ими свойства объекта моделирования (либо требуется указывать условия нарушения этой ситуации); 2) многоуровневое моделирование — стратификация в композиционные ряды моделей — не менее результативно, чем прямое моделирование композиции системных частей объекта. 159
6.2. СИСТЕМНЫЕ ГРАФЫ ЛИНЕЙНЫХ СОСТАВНЫХ СИСТЕМ УПРАВЛЕНИЯ Рассмотрим схему системных графов применительно к предметной области динамики многокомпонентных составных линейных систем управления. Принципиальным свойством таких систем, выделяющим их в особый класс динамических систем, является использование в системах управления текущей информации об управляющих воздействиях на входе и переменных на выходе для реализации обратных связей, действие которых уменьшает чувствительность систем управления к возмущающим воздействиям и изменениям параметров. В силу наличия в системах управления обратных связей их сигнальные графы обязательно содержат минимальные сильно связные подграфы [201. Этот факт является необходимым признаком, однозначно характеризующим топологию всех систем управления независимо от области их применения и выполняемых функций [4, 6, 151. Используя обратную связь в системах управления в качестве основного критерия различения, рассмотрим интеграцию подсистем в сложной системе. Процессу интеграции поставим в соответствие процесс построения одного из возможных типов системного графа таких систем. 5.2.1. Модель расширенной системы управления Прежде всего целесообразно выделить следующие модели: М8 — собственно системы управления S; MF и М$ внешней среды на входе и выходе системы соответственно; MSF — связи внешней среды с системой на входе; Мд-$ — связи системы и внешней среды на выходе. Совокупность введенных нами моделей образует модель Mrs = (МГ> Mrs> Ms, MSF, MF) расширенной системы управления SRa (рис. 5.2), Модель MR8 расширенной системы управления включает внешнюю среду на входе и выходе, т. е. включает причины и следствия, и таким образом оказывается автономной относительно внешней среды. Система SRS обеспечивает достижение целей управления с заданным качеством по одной или нескольким выходным координатам ^0Y объекта управления при наличии возмущающих и управляющих воздействий F0a. Модель внешней среды на входе системы управления MF = ({Foa\a~\(\)nF}) образуется на множестве моделей Foa независимых переменных (воздействий) внешней среды и представляет собой нуль-граф GFi 160
Рис. 5.2, Модель расширенной системы управления т. е. множество вершин, на которых определены воздействия Foa. Модели воздействий Foa внешней среды на входе системы управления могут быть полностью определены при наличии априорной информации, могут быть определены частично или полностью неопределены. В последних двух случаях априорная информация о внешней среде на входе системы должна быть частично или полностью доопределена за счет выбора типовых моделей воздействия Foa, наиболее полно отвечающих условиям работы и целям исследования системы управления. Модель внешней среды MF @) нулевого ранга неопределенности задает число воздействий, а модель MF A) первого ранга дополнительно квалифицирует класс воздействия. В моделях MF B) и MF C) соответственно второго и третьего рангов происходит дальнейшее раскрытие неопределенности структуры оператора воздействия (типа воздействия) и значений его параметров. Модель связи внешней среды со входом системы управления устанавливает отношения между множеством F0 = {F0a} переменных модели MF и множеством X = {ха} переменных ха на входе модели Ms системы управления, связанных единичными дугами с соответствующими переменными vt модели Ms, и представляется двудольным графом GSF. Причинно-следственная модель Ms системы управления 50 устанавливает отношения между множествами X входных, V внутренних (базовых) и Y cz V выходных переменных системы 50 и может иметь различный ранг детализации топологии в зависимости от того, какое число базовых переменных vt включается в модель Ms. Система управления 50 имеет специальную организацию, обеспечивающую за счет обратных связей уменьшение чувствительности к внешним воздействиям и изменяющимся параметрам, и поэтому ее модель Ms всегда представляет собой сильно связный граф G0 на множестве V. Свойство сильной связности графа G0 невырожденной системы управления 5 является принципиальным и однозначно характеризует структуру всех систем управления независимо от их функций и целей управления. Причинно-следственная модель Ms с максимальной топологической неопределенностью отражает только причинно-следственные отношения входных ха и выходных уу переменных системы б П/р С. В. Емельянова 161
и может быть представлена в виде полного (вследствие сильной связности графа G0) двудольного графа GYx> определенного на множествах X и Y). Модель Мр внешней среды на выходе системы управления образуется на множестве &~0 = {^ov) и представляет собой нуль- граф G^. Причинно-следственная модель Мъ многокомпонентной составной системы управления 52 мало отличается от модели автономной расширенной системы MRS и потому может быть представлена в виде Mb = (Мъ $r, Mps s, Ml Mh, Mjy Avv K^YV f*m 0 —E 0 0 1 0 E J vm vm 1 ^om = BVX 0 0 n m DVF 0 0 xm 0 5.2.2. Представление модели расширенной системы управления в виде системного графа Допустим, что система управления 52 построена на базе взаимосвязанных и взаимодействующих подсистем, каждая из которых в свою очередь является системой управления. Модель всякой отдельно взятой подсистемы Sm, m — индекс подсистемы, задается в виде EЛ) где Vm = {v™\ i = 1 A) пу} — вектор переменных подсистемы Sm (переменные vt соответствуют вершинам максимального сильно связного подграфа Gm сигнального графа подсистемы 5m); Xm = = (Х2|Л = 1A) Лл} —вектор, компонентами которого являются векторы входных сигналов подсистемы 5т, поступивших от других подсистем ее окружения (А — индекс подсистемы, от которой поступает вектор-сигнал X™); Ym = {Y? | В = = 1 A) пв) — вектор, компоненты которого суть векторы выходных сигналов подсистемы 5т, поступающие к другим подсистемам ее окружения (В — индекс подсистемы, к которой передается вектор-сигнал \т от 5m); F™ = {FjPa\ а = 1 A) О — вектор сигналов-воздействий на Sm со стороны среды; ЗГ™ = {#"™v|v = = 1A) Пу) — вектор выходных сигналов ^"о?, поступающих в среду; \mv — матрица подсистемы 5т; С™у и С<гу — соответственно матрицы, устанавливающие взаимосвязь Sm с другими подсистемами и внешней средой на выходе; В™х и Bvf — соответственно матрицы, с помощью которых описывается взаимосвязь Sm с внешней средой на входе. 162
Рис. 5.3, Пример построения системного графа Решение E.1) можно записать в виде YOT = Ф?хХш, E.2) где Ym= {Y3 | В = 0 A) /iS}, a Xw = {Х2 | А = 0 A) /tfb причем YJ» = ^J1; Xj1 = Fj». Используя E.2), можно ввести понятие системной вершины Яш, соответствующей подсистеме Sm: //OT = <{YS|B = 0(l)nS}; {Х2|Л=0A)п2}; Ф?*>. E.3) Вследствие сильной связности графа G™ передаточная матрица Фух системной вершины Нт всегда оказывается полной и задает представление Нт двудольным полным графом. Используя теперь понятие системной вершины, можно перестроить причинно-следственный граф G2 системы 5s в такой функционально-целевой причинно-следственный граф, в котором все подсистемы Sm> т = 1 A) N будут изображаться в виде системных вершин, а связи между этими вершинами задаваться уравнениями вида X2U - wm*Y^m, где Wm* — передаточная матрица, выполняющая преобразование вектора выхода системной вершины Hk9 ??{!,...,#}, в вектор входа системной вершины Ят, /я?{1, ..., N). Полученный в результате граф называется системным графом первого уровня интеграции (Gfej, L — идентификатор уровня интеграции). По отношению к графу Gf^0 неструктурированной системы в графе Gl=i сохраняются неизменными передачи входных сигналов на выход в каждой подсистеме и передачи на связях между подсистемами. В качестве примера на рис. 5.3, а дан граф GfUo» а на рис. 5.3, б построен соответствующий ему граф G/Uj. 6* 163
Действуя по тому же принципу, можно уже на Gf=\ выделить комплексы подсистем, а их сильно связные подграфы привести к виду системных вершин второго уровня интеграции #?=2> р ? {1» •••> | [Hpl=2\ | 1 — индекс системной вершины, В результате системный граф G/Lj будет преобразован в системный граф Gf=2» в котором также будут сохранены неизменными все передачи входных сигналов на выход в каждом комплексе и передачи на связях между комплексами. Ввиду неоднозначности определения комплексов можно построить множество системных графов второго уровня интеграции. В любой такой граф Gl=2 будет обязательно входить хотя бы одна системная вершина HPL=2 второго уровня интеграции. Подобно этому каждый 1-й этап интеграции будет приводить к образованию на Gl=/-i комплексов системных вершин, имеющих в своем составе хотя бы одну вершину вида #?=/_ь р ? eli, ...,| №.,-.} |Ь Используя представление S2 системными графами Gf, с каждой системной вершиной HPL на этих графах будем связывать модели следующего вида: МИ (р, L) — модель системы, представленной на Gf вершиной HPL. Заметим, что МИ (р, L) не содержит никакой информации об отношениях системы с внешней средой; Мр (р, L) и М$- (р, L) — соответственно модели внешней среды по входу и по выходу для системы, представленной на Gf вершиной HPL; Mtfp (p, L) и Af^r// (р> Ц — соответственно модели связей вершины HPL с внешней средой на входе и на выходе; MRH (р, L) = (Мр (р, L)\ Мдгн (Р> L)> мн (Р> L); MHF (P. L)\ MF (p, L)) — расширенная модель системы, представленной на G\ вершиной #?. Эта последняя модель содержит всю информацию о внешней среде и отношениях с внешней средой на входе и выходе. Модель MRH (p, L) представляет собой самое полное описание причинно-следственных механизмов, действующих в системе, рассматриваемой обособленно как системная вершина HPL\ M0RH (P. L) = (мвгн (P> L)\ MH (P. L)\ MHF (p, L)) — расширенная модель системы, представленной на Gf вершиной HPL при полностью неопределенной внешней среде (модели MF (p, L) и Мр (р, L) в M0RH (p, L) не входят). Как ранее было замечено, ранги неопределенности г причинно- следственных отношений однозначно характеризуют степень полноты описаний системы. Например, для G?=1 и MH=s> где Ms (/га, 1) задается в виде 164
имеем: Ms (m, 1,0) — модель нулевого ранга, которая задает лишь множества {vt} и {F0a} переменных или множества {е (vt)} и {<? (^оа)} вершин графа G™, на которых определены эти переменные. В такой модели отсутствует информация о классе операторов atj и bia и информация о том, какие из этих операторов тождественно равны нулю; Ms (mt 1,1) — модель первого ранга, которая включает в себя модель Ms (m, 1,0), но кроме того указывает, какие из операторов аи и bia тождественны нулю, и устанавливает классы этих операторов. Модели Ms (m, 1, 1) на графе Gj* соответствуют множества {(ej\ et)} и {(еа; ej)} дуг, для которых известны классы операторов преобразования переменных; Ms (tn, l, 2) — модель второго ранга, в которой полностью раскрывается структура операторов atj и bia при всех (или части) неизвестных параметрах {q}\ Ms (mt 1, 3) — модель третьего ранга, которая задает полное описание причинно-следственных отношений, выполняющихся для всех базовых переменных подсистемы Sm. В этом случае известен граф G™, классы и структуры операторов аи, bia и конкретные значения всех параметров {q} этих операторов. На базе моделей Ms (m, 1, г) могут быть решены задачи анализа фундаментальных свойств Sm. Модели M0RS {ту 1, г) = = /Mgrs (т, 1, 3); М$ (т, 1, r)\ MSF (m, 1, 3)\ могут быть использованы для анализа свойств передач, а модели MRS (т, 1, г) = (Mr (т, 1, 3); M0/?s (т, 1, г); MF (т, 1, 3)) удобны для изучения свойств основных процессов, протекающих в подсистемах. Введение рангов неопределенности причинно-следственных отношений применительно к G?>i в конечном итоге приводит к построению полного ансамбля моделей системы управления S2. Вопрос о рангах и упорядочении моделей труден уже при L = 2. Перспективы решения вопроса о ранговых моделях тесно связаны с развитием общей теории систем [8, 15]. (Еще с одним примером ранговых моделей, разработанных применительно к дифференциальным моделям системной динамики, мы встретимся в п. 6.1 при обсуждении вопросов структурной управляемости динамических систем с параметрическими связями.) 5.2.3. Структура ансамблей системных графов, представляющих модель расширенной системы управления Системные графы различных уровней интеграции и рангов неопределенности могут служить основой для разработки соответствующей машинной технологии системного моделирования. Ос- 165
новными объектами, которыми манипулирует исследователь в ходе построения морфологического описания составной системы, являются вершины и дуги системных графов. Любые характеристики этих объектов далее будем называть их атрибутами, а множество структур данных, представляющих атрибуты компонент системных графов и их взаимосвязи, — базой данных решаемой задачи системного моделирования. Будем рассматривать вершины системного графа g? некоторого уровня интеграции (L > 1) как двойки вида Я? = <(Г<\ Хр); А{Н1)\ где Хр — семейство входов; Yp — семейство выходов вершины #?", А (#?) — множество ее атрибутов. Аналогично дуги в G\ представляются двойками UTk = ((Xmk, Ymk); A{Ulk)). Кроме того, обозначим MPF = (F\ A [Mpf)\ M[r = <<Г'. A (Mir)) — атрибутированные модели среды на входе и выходе вершины Н[ системного графа GJF [1, 8]. Опишем структуру G\ мультиграфом CL, который зададим как полную алгебру @, 1, 1), CL = (IL, О, б, т). Здесь lL = = supp CL (носитель CL) — отрезок неотрицательных целых чисел, которые используются в качестве индексов HPL (yp), UTk (ym, k) и элементов Fp, 2F? (yp). Внешняя среда по отношению к графу G? отмечается индексом 0 ? IL. Унарные операции б, т определены для каждого элемента из IL и интерпретируются следующим образом: для 0 и индексов системных вершин графа Gf эти операции являются тождественными; для индекса любой дуги U™k они соответственно указывают индексы вершины HkL и вершины #?; индексу любого сигнала из Мр операция б соотносит 0, а операция % — индекс вершины Нр (наоборот, для индексов сигналов из М*^). Для представления CL будем использовать двухстолбцовую («индексную матрицу») BL, задающую ограничение сигнатуры CL (операций б, т) на множестве индексов дуг U™k (ym, k) и элементов семейств Мрг Мрдг (ур) [1, 8, 15]. Обозначим RL — отношение конгруентности в /L, соответствующее некоторому разбиению множества компонент графа Gf при образовании системного графа Gf+i- Фактор-алгебра CL+i = = clIRl описывает структуру графа Gl+i аналогично тому, как алгебра CL описывает структуру графа Gf. Пусть п — наименьшее число такое, что Card (supp (((IdRL)/RUi).. ./«u»)) -1 = 1. 166
Последовательность алгебр (и проекций cpL+i: CL+ul-^CL+i; i = 1A) п) вида К (G?) : CL -* CL+i -* ... CL+n будем называть композиционным рядом системного графа Gf. Для задания отображений cpL+i (у) введем двухстолбцовую («индексную») матрицу DL+i. В ходе построения стратифицированной модели для компонент системного графа Gf порождаются (вычисляются) множества AL атрибутов. Эти множества наряду с индексными матрицами BL, DL составляют для графов G? (у L) множество данных, которые используются при моделировании сложной системы управления. При этом каждая база данных задач системного моделирования состоит из наборов двух типов: 1) индексных файлов — наборов строк индексных матриц, представляющих композиционные ряды, которым принадлежит страта описания системы; 2) атрибутивных файлов — наборов, содержащих записи значений атрибутов из соответствующих атрибутивных множеств страты. Заметим, что на основе базы некоторой страты в общем случае может быть получено несколько вариантов баз следующей страты композиции. Это обстоятельство приводит к образованию подзадач в ходе решения исходной задачи системного моделирования и соответственно к образованию баз страт различных подзадач. Тем самым в целом база данных решаемой задачи системного моделирования представляется деревом, узлами которого являются базы страт, а каждый путь от вершины к листьям соответствует композиционному ряду некоторой подзадачи. Чтобы лучше объяснить специфику системных графов линейных систем как формальных объектов, рассмотрим два примера. В первом примере получим аналог формулы Мэзона [4, 6] для системных графов, а во втором — алгоритм рекурсивного построения передаточных матриц и определителей комплексов системных графов [27,29]. Пример 5.1. Пусть комплекс первого уровня интеграции имеет характерную структуру системного кольца [4, 27], рис. 5.4, а. Каждая вершина Нр{, р ? ? {1, ..., Pi} представляет собой полный двудольный граф, дуги которого в качестве меток имеют числители передаточных функций, определенных относительно соответствующих входных и выходных вершин. Каждая дуга имеет общий делитель Ар — определитель подсистемы Spt представленной в комплексе вершиной Нр [4, 15]. Системные дуги (У21, (У32, ..., UlPt представляют собой двудольные графы, дуги которых помечены передаточными функциями, определенными для соответствующих пар входных и выходных вершин [4, 15]. Определитель системного кольца может быть найден в результате применения следующей формулы [11, 27, 29]: д = П др+ ? <*)+ ?B) + --- + ? (*) + ••¦+ 2 м. E.4) 167
Рис. 5.4. Системные кольца где г — наименьшая из размерностей передаточных матриц системных дуг кольца; k, 1 ^ k ^ г — число несоприкасающихся скалярных дуг (из множества скалярных дуг, входящих в данную системную дугу), используется при образовании данного элемента формулы E.4); ? (k) — смысл этого слагаемого объясним на примере слагаемого ? B), полученного для k — 2. Для этого рассмотрим системное кольцо с двумя вершинами Я} и Н\ н двумя дугами U12, U21 (рис. 5.4, б). Слагаемое ? B) существует, если каждая системная дуга кольца содержит непустое множество пар несоприкасающихся скалярных дуг. Обозначим это множество пар дуг в U*2 через °Ul2y а в (У21 — через Ч1%1. Используя формулу Мэзона для определителя кольца, составленную для причинно-следственного графа кольца G\ нулевого уровня интеграции, можно установить, в какие члены этой формулы войдут передачи дуг, образующих элементы множества °U12 X Я121. Затем остается найти алгоритм конструирования таких членов, исходя лишь из известных передач четверок скалярных дуг — элементов множества <U12 X X °U21 — и передач системных вершин Я], tff. Например, дуги B,7), A,9), A0,6) и A1,5) замыкаются в два несоприкасающихся элементарных (первый случай) или в один элементарный (второй случай) контуры при использовании соответствующих пар несоприкасающихся в G0 путей между вершинами E,6) и A,2) в Я} и вершинами G,9) и A0,11) в Я?. Интересующие нас члены формулы Мэзона в первом случае будут иметь вид произведения передач контуров, образованных каждый на двух скалярных дугах, на определитель подграфа, полученного для G0 при исключении этой пары контуров, и во втором случае эти члены формулы Мэзона будут иметь вид произведения передач контура, образованного на полном наборе из четырех скалярных дуг на определитель подграфа, полученного из Gq при удалении из него этого контура. Для построения общего правила можно воспользоваться следующими рассуждениями. Пусть известна матрица Ар подсистемы Spt представленной на графе Gq в виде вершины Я?. Выражение вида (_l)^+'+/Mf<f E.5) будет в дальнейшем обозначать минор М^у матрицы А*\ полученный путем исключения из Ар столбцов с номерами d, r и строк с номерами it /. Можно показать, что E.5) представляет собой взятую по всем несоприкасающимся в Gq парам путей между входными (/, /) и выходными (d, r) вершинами системы Sp сумму произведений передач для каждой такой зафиксированной пары путей на определитель подграфа, полученного для Н$ в G* при исключении из Gq этой пары путей, 168
Рис. 5.5. Фрагменты системных графов Аналогично E.5), будет справедливым выражение для Ар Вида (-1) S=l S=l •<<ь E.6) где (il9 ..., ih) — входные, а (Д, ..., /ft) — выходные вершины системе Sp, зафиксированные для Н\ на графе Gf Решение будет S (_l,v=l связано v=l с использованием формулы [11] где В = А; В — минор матрицы В, образованный на строках ip и столбцах k р.-м^В^ВА;^, y^oi Oft h) с (&{, ..., fe)j_p) образуют полную систему индексов. Согласно E.6) находится минор матрицы Ар любого заданного порядка п (с необходимым знаком) через миноры (п — 1)-го порядка. При этом не требуется задавать матрицу А. Действуя подобным способом, можно получить аналогичную E.6) формулу для передач системного кольца. В результате возможен рекуррентный по уровням интеграции алгоритм на системных кольцах. Пример 5.2. Получим передаточные матрицы и определители комплексов системных графов, построенных для линейной системы, составленной из подсистем Sm, т— 1 A) лт. На рис. 5.5, а приведен фрагмент системы S2, заданной в виде системного графа G\_x. Штриховыми линиями на этом рисунке обведены вершины, на которых образуются комплексы HlL, H^t Я, tf^v систем ного графа Gf (рис. 5.5, б). 169
Составим общее описание системных вершин графа G^, использовав для этой цели лишь ту информацию, которая содержится в (??_р т. е. информацию о передачах системных вершин и системных дуг графа б?_р из которых построены соответствующие комплексы графа G|\ Обратимся к рис. 5.5. Уравнение комплекса Н[ запишем в виде E.1): A^V^B^ + B^F1, E.7) где CyyV = Y ; X = \Хц; Хщ|; XtI == х^; Xjjj = Xg; F = г ; Y =Yjy= = М; у?}. Решая E.7), получим y*v Kv)" 1 в1 .с1, Vx\ y%V I \-l „I Kv) V*2 Cl\v Ю -IBI "*?v К.)-' в I VF* I VF* X xjf *l\ Fa[ E.8) Теперь составим уравнение комплекса HlL> исходя из представления на G?_P Принимая в качестве внутренних переменных и переменных на входе и выходе комплекса соответственно наборы векторов V1 = {V1, V2, V3, х\, х\, х2, х^}; X1 = {х|, х2,}; F1 = F'2; Y1 = {yj, у}}, можно записать уравнения комплекса в виде E.1). Простой перестановкой столбцов матриц эти уравнения приводятся к форме II А1 Луу 0 0 0 0 w2Ic\v 0 0 Avv 0 WI2C2 y\v 0 0 w32c22l/ y\v 0 0 A3 Луу 0 W13C3 y\v 0 0 V*2 0 0 —E 0 0 0 Vx^ V*3 0 0 0 —E 0 0 0 -в2 2 Vx\ 0 0 0 —E 0 о ! 0 -В3 з 0 0 о —E X V V2 Vx[ 0 0 1 0 R2 V 5 0 0 0 1 R2 bVF* 0 X X E.9) 170
..1 • и = 1 с1. y\v | 0 0 0 0 г3 X vi V2 уз Блочная структура уравнения E.9) позволяет записать его в сжатом виде: KuUi + K12ut - g; K21Ui + K«u2 = 0, EЛ 0) где ux = {Vх, Vе, V3} = V1 — вектор внутренних переменных комплекса; u2 = {х^, х^, xf, x^} — вектор вспомогательных переменных комплекса. Решение уравнения EЛ0) находится с помощью блочного алгоритма Гаусса [11] и имеет вид ui ~ K7i б — K7iK12 (к22 — k21K7iK12)~ (K21K7ig) • Учитывая, что E.11) запишем структуру передаточной матрицы Ф\х ~ Gyy (^vv)~l^lYX комплекса HlL в развернутом виде через блоки уравнений E.11) и E.9). Структура этой матрицы будет подобна структуре матрицы Фур того же самого комплекса, поэтому в дальнейшем мы ограничимся анализом Фуг* Введем обозначение R = (К22— K21K7iK12). Выделяя в Ф1ух характерную группу ОК^В*, в которой О и В+ соответственно обозначают матрицы CYV (или K2i) и gVx (или Ki2), можно убедиться, что все С+ имеют только одну ненулевую клетку в каждой строке, матрица K7i — квазидиагональная, все матрицы В+ имеют одну ненулевую клетку в каждом столбце. Выполняя перемножение матриц C+KfiB+, достаточно просто получить результат, в котором в качестве элементов формальной записи передаточной матрицы Фух будут использоваться только передаточные матрицы Фух> ®yx> ®yx системных вершин #^_р #д_р #?_i и передаточные матрицы W12, W21, W13, W32 системных дуг графа Gf_v Остается объяснить простой рекурсивный алгоритм нахождения передаточных матриц вершин системных графов с изменением уровня интеграции L. Пусть заданы два смежных по значениям L графа GjF__j hGJ. По отношению к Gf_i известны передаточные матрицы всех его вершин #?_j» P € {!» .... | {Я?_,}|} и дуг </'' , (рр р} €A | {#?_,) |}). На графе <% выберем системную вершину #?, представляющую собой комплекс системных вершин, структура которого ясна из Gf_,j. Тогда: Шаг L Определяются X* — входной вектор комплекса, Хвн — вектор внутренних переменных комплекса, заданных на системных дугах связи; Y — выходной вектор комплекса. Размерности указанных векторов фиксируются. Например (см. рис. 5.5, а), X* = X1 = {х], х^}; х?н = u2 = [х\, x\t xj, х|};у*=у, = {у|, у73}. Шаг 2. Строится шаблон уравнения комплекса, приведенного к виду Ф1^. Например (см. рис. 5.5, а и 5.6), ФУХ = Щ + М2 ((— Е) + Щу{Щ. Шаг 3. На основе графа G^_{ строится граф Г (рис. 5.7). Построение графа Г осуществляется в следующей последовательности: вершины графа соответствуют компонентам векторов X , Хвн, Y ; две вершины графа соединяются дугой в том случае, если между этими вершинами существует путь на графе g?_j, проходящий не более чем через одну системную вершину; 171
yi У37 *<t x5 * Xn Xj Xj X о • 4 4 4 *\ 4 -E 4 -E 4 -E *i- -E\ 1 "' 4 л *1 4 x2 Рис. 5.6. Шаблон уравнения комплекса Рис. 5.7. Граф Г уравнения комплекса дуги графа помечаются переточными матрицами вида W<D, если они соответствуют пути на графе G^_p проходящему через системную вершину и системную дугу связи, или передаточными матрицами Ф, если соответствующий путь на графе проходит только через системную вершину. Шаг 4. Заполняется шаблон уравнения комплекса, для чего используется граф Г. В именованные клетки шаблона заносятся передачи соответствующих дуг графа Г, причем имя конца дуги на графе Г должно отвечать имени строки, а имя начала дуги — имени столбца соответствующей матрицы шаблоиа. В незаполненные клетки заносятся нули. Шаг 5. Заполненный шаблон используется для нахождения блоков искомой матрицы Ф* передач комплексов Hk. Блок, соответствующий клетке с индексами г, / матрицы ФуХ, представляющей собой передаточную матрицу Ф^, комплекса от /-го входа на /-й выход, находится по формуле ' Кн) ф?/~т«.- Е t«.r;;t««; /(x*h) = |(u2)|, где Т^1 — передача, записанная в клетке элемента Щ шаблона с индексами i, /; Т^1 — передача, записанная в клетке элемента М2 шаблона с индексами i, k\ T^j4 — передача, записанная в клетке элемента М4 шаблона с индексами /, /; R^} — передача, записанная в клетке элемента (— Е— М3)-1 шаблона с индексами ?, /. По-видимому, не требует пояснения тот факт, что элементы блочной матрицы Щ} в силу матричных передач, определенных на дугах Г, нельзя получить в виде У] п'д', где i — номер пути на графе Г; П* — передача i-то пути; Д'— i определитель графа Г при исключении из него i-vo пути. Вообще говоря, обращение R через блоки можно проводить на основе блочного алгоритма Гаусса. Однако при этом каждый разрешающий диагональный блок должен быть неособенным. Интересным частным случаем являются комплексы, имеющие структуру системного кольца [15, 29]. Обратная матрица для таких комплексов не 172
(-E-RjfRis) -R32R2{\ *«V (~E-R51RfS) Рис. 5.8. Модификация графа Г имеет нулевых блоков, поэтому любая клетка матрицы R может быть построена только через блоки R. Эффективность такого алгоритма повышается, если существует возможность независимого определения любой клетки R^1 матрицы R-1, _ ь а также если построение матрицы передач Фух комплекса осуществляется, как это было показано ранее, путем обращения не ко всем, а лишь к некоторым клеткам R-1. Наконец, сформулируем вывод относительно определителя комплекса HkL и его рекуррентного представления для любого уровня интеграции через известные выражения определителей соответствующих этому уровню вершин системного графа Gf__r Вновь обращаясь к уравнению E.9) и применяя к этому уравнению блочный алгоритм Гаусса, получим det Кц Kl2 К21 К22 il, = det(Ku)-det(K22-K2,K7JK12). Хорошей иллюстрацией процесса вычисления det (R) является последовательная модификация графа Г, суть которой заключается в последовательном удалении вершин графа Г и выполнении необходимых преобразований матричных передач дуг этого графа (рис. 5.8) [27, 29]. 5.3. МИНИМАЛЬНЫЕ ФОРМЫ ЛИНЕЙНЫХ СОСТАВНЫХ МНОГОКОМПОНЕНТНЫХ СИСТЕМ И ИХ ПОЛУЧЕНИЕ С ИСПОЛЬЗОВАНИЕМ СХЕМЫ СИСТЕМНЫХ ГРАФОВ Минимальность системы обусловлена структурой ядра ее выходного отображения —• отсутствием в этом ядре инвариантного подпространства состояний системы. Если такое подпространство у системы есть, то она минимизируется. Другими словами, при минимизации систем речь идет о моделях систем, для каждого состояния которых найдется хотя бы одно эквивалентное состояние в пространстве состояний моделируемой системы и наоборот, т. е. об эквивалентных системах. Модель системы, не имеющая эквивалентных состояний, называется минимальной формой системы. Минимальная форма определяется с точностью до изоморфизма пространства состояний и имеет наименьшую для моделей системы размерность этого пространства [29]. 173
Составление Рнс. 5,9. Схема минимизация составных систем Мы будем рассматривать минимизацию составной системы. Процесс минимизации будем проводить по частям, решая таким образом задачу стратификации системы в ракурсе данного свойства. В результате стратификации многокомпонентной составной системы получим минимальные формы компонент страт и в конечном итоге построим страту ранга 1, которая и будет представлять собой минимальную форму всей сложной системы в целом. Это означает, что минимизация сложной системы по частям и прямая минимизация системы, рассматриваемой как одно целое, приводят к изоморфным результатам. Построение минимальной формы по частям и в методологическом и в чисто прикладном аспектах более рационально, чем прямая минимизация (рис. 5.9). 5.3.1. Построение минимальных форм систем Рассмотрим систему Л, для которой указано общее матричное уравнение: Гу1"|н o|lhr|- EЛ2) Предположим, что система Л минимизируема и требуется построить матричное уравнение минимальной формы Л, сохранив соответствующие E.12) базисы пространств X, Y. Известна [12, 26], например, следующая процедура минимизации Л. Составим из первых пх линейно независимых строк диагностической матрицы N = || Н, HF, HF2, ..., HF*-1 ||т матрицу Т размера п^Хп. Найдем правую обратную к Т матрицу R размера пХп1у которая определяется равенством TR = 1. (Выбор п± строк заканчивается, как только найден блок матрицы N, все строки которого линейно связаны с уже выбранными строками N (/ii = rank N).) 174
Алгоритм построения R: из любых /х, /2, ..., /П1 линейно независимых столбцов Т составляется матрица Р, которая обращается; строки R с номерами /х, . ответственно первой, второй, ..., остальные строки R — нулевыми. Q Y ., /П1 полагаются равными со- /ix-й строкам матрицы Р, Система A-Q с матричным уравнением F H, nx^dimfQ) G О F G" Н О Щ- где F = TFR, G = TG, Н = HR является минимальной формой Л. Отметим две характерные особенности процедур минимизации систем, подобных рассмотренной: использование диагностической матрицы N и обращение матриц. Ясно, что при построении минимальной формы системы большой размерности обе эти особенности увеличивают сложность вычислений. Вместе с тем, учитывая, что минимальная форма системы определена с точностью до изоморфизма, можно предложить процедуру построения фактора А/./Г (Л* ^ ker H), т. е. минимальной формы А, без манипулирования диагностической матрицей системы и практически без обращения матриц. Эта процедура основывается только на итеративном способе локализации наибольшего инвариантного подпространства в ядре выходного отображения системы. Процедура. Дана пара (F, Н). Обозначим пг = rank (H). Ясно, что пг < п. В случае, когда пх = л, ядро отображения Н: Q ->¦ Y тривиально (ker (H) = 0), поэтому можно предположить, ЧТО 1 < Пг < П. Пусть в матрице Н последние пг столбцов линейно независимы. В противном случае перестановкой столбцов F и Н и строк F и G приведем тройку (F, H, G) к виду, когда такая ситуация имеет место. Обозначим Нт — совокупность (блок) данных столбцов Н и составим матрицу Н таких же размеров, что и размеры Н. rz—пх пх о Нх | н = Поскольку столбцы Нт являются координатными столбцами Н- образов той части базисных векторов Q, которые не принадлежат ker (H), то пространство Т, натянутое на эту часть базиса Q, есть некоторое прямое дополнение ker (Н) в Q, ker (Н) ф Т = Q. Представим столбцы Н линейными комбинациями столбцов Нт 175
и составим из коэффициентов этих комбинаций матрицу ТР порядка п с блочным строением вида ТР = Столбцы и строки ТР = || pih ||* однозначно соотносятся столбцам матрицы Н так, что любой i-й столбец Н может быть записан как сумма со1(Н(/))= ?pi*coI(H(ft)), где col ... (m) — m-й столбец матрицы, указанной в скобках. Дополнив левый верхний квадрат ТР единичной диагональю, получим невырожденную матрицу Т0 ранга п (det (T0) — 1). Введем преобразование координат Т: Q -> Q, задавая его матрицей Т = = TJ, транспонированной к Т0: П 1 о т = р 1 Заметим, что матрица Т * отличается от Т только знаком элементов нижнего левого блока. Перемножая Н и Т, видим, что НТ= НТР Нт т. е. Н = НТ. Выполняя преобразование F и G с помощью матрицы Т, находим TFT1 = ф F* п и G = TG. Блок Ф матрицы F задает ограничение F| ker (H) эндоморфизма F на ядре отображения Н. Пример 5.3. Пусть требуется найти минимальную форму системы ( q'=Fq + Gx; F = -5 1 —2 57 13 21 2 61 —32 —47 5 —2 19 —38 — 14 Н 1 3 —5 35 9 2 О -2 6 4 О 7 —10 1 —2 2 ; с = 0 1 1 15 0 1 0 —3 4 7 0 1 Шаг U Локализация ядра выходного отображения системы. Последние два столбца матрицы Н линейно независимы. Составим матрицу Ti преобразо- 176
вания координат пространства состояний системы, применение которой позволит обнулить первые столбцы Н. В соответствии с рассмотренной нами процедурой эта матрица порядка л = 5 имеет блочный вид Ti = 1 О р 1 где Р = 1 —1 —1 —1 3 1 Заменяя знак блока Р на противоположный, находим Т71. Первые три столбца матрицы F соответствуют ядру отображения Н. Приведем F к блочному виду: F = 1 ~5 1 —2 57 1 13 21 б 2 -2 61 19 —32 —38 —47 —14 1 3 —6 35 9 4 0 7 —10 1 Преобразуем F с помощью Т*: TJFT71 = 1 0 С D -Р 1 где Fx = А — ВР; Нх = PF* + (С — DP); II —2 10 2 F^ = —2 5 1 I 10 35 7 Н1 = Fi В Нх РВ + D 3 1 11 —1 2 Шаг 2. Структуризация ядра выходного отображения. Первый столбец матрицы Hi выражается через последние два: 2 11 (-D 3 II J 1 -1М2 и, следовательно, ядро выходного отображения может быть структурировано с помощью преобразования координат, представляемого матрицей следующего вида: Тогда Та = R 0 [ 0 1 R = S _j —1 5 0 0 | 1 0 1 0 1 1 RFiR-i = —2 0 0 10 -5 85 2 | — 1 17 1 Полученная матрица имеет квазитреугольную форму, следо*ательно, процесс структуризации завершен. 177
Полагая теперь, что 1=121!, Т = T^Tif1, найдем F «= TFT, 5 = = TG, Н = НТ1: —2 10 2 1 4 F = 0 0 0 0 -5 85 3 —1 —1 17 1 2 2 0 36 12 —4 | 27 1 —13 4 J G = 0 15 1 1 ~9 [ 53 1 —1 j 5 5 —1 н = иные здесь блоки матриц F, G, Н являются искомыми матрицами Ш№ов F, G, Н минимального фактора рассматриваемой системы. 5.3.2. Составные многокомпонентные системы Представление составных систем в виде структурных схем [18, 29, 31]. При представлении системы в виде структурной схемы каждый блок задает одну какую-либо подсистему Ah целостной системы Аъ (здесь k — индекс подсистемы). Динамика подсистемы описывается уравнениями в нормальной форме, где в качестве переменных используются переменные состояния системы, ее входные и выходные сигналы. При соединении К подсистем в целую систему Аг указываются: вектор входных сигналов (F); вектор выходных сигналов #~; вектор переменных состояния V. Вектор V задается как прямое произведение векторов переменных состояния \h сепаратных подсистем Ah. Предполагая, что связи между подсистемами в Л2 линейные, можно записать систему уравнений: X = EY + GF; Т = JY + CF, которыми определяется составление Аг из подсистем Ah. Здесь Е, G, J, С — матрицы связи. Элементы этих матриц принимают только три возможных значения: +1 —связь положительная; —1 — связь отрицательная; 0 — нет связи. Векторы X = = (xlf ¦.., xN) и Y = (t/i> ..., ум) строятся, соответственно, на векторах входных и выходных сигналов сепаратных подсистем (рис. 5.10). Основные определения. Говоря о составных системах, условимся использовать следующие понятия: ориентированное множество s& систем, композиция которого образует составную систему А, будем называть составом Л, а элементы этого множества — компонентами А; те из компонент Л, которые сами язляются составными системами, назовем комплексами А; 178
Рис, 5.10. Пример структурной схемы пусть А — А0 — составная система состава s?0 = {At: i ? k0}. Общую структуру композиции s?Q в ^о будем изображать прадере- вом К (А0) = (I, Г) с помощью следующего сопоставления: корень 0 графа К (А0) соответствует А0: I => k0 = ГО; висячая вершина К (А0); имеющий состав s^t = если i ? к0 и At — элемент Л0, то i — если i индексирует комплекс Аь = \Ат : т ? к,}, то I =э к, = П; ... Граф /( 04о) будем далее называть схемой составления многокомпонентной системы Л0; пусть 2 — множество систем, индексированных по построению К {А) вершинами из I. Назовем иерархией составной системы А верхнюю полуструктуру (?, •<), изоморфную множеству вершин схемы К {А) с порядком (/ < k) ~ (i ? f (k)), где Г — транзитивное замыкание в К (А); введем соответствие между подмножествами I схемы К (А) = = (I, Г), полагая, что (У*€1)Г« Н i, если Г (i) Ф 0; Г@, если Г(О#0. Стратой ранга 1 = 1 составной системы А будем называть одноэлементное множество бх = {А}у а стратой ранга / Е> 1 — множество систем: Число страт, т. е. наибольший ранг страты бь равно наибольшей из длин цепей иерархии составной системы Л. Например, для А = Л0, имеющей состав &0 — {At, Л2, Л3}, компоненты Л; и Л2 являются комплексами составов s^x — {Л4, Лб} и *я?2 — {А$, Л7, A8] соответственно. В свою очередь, компоненты Л6 и Лб также являются комплексами, имеющими составы s4>b = {Л9, Л10} и «5^7={Ли, Л12} соответственно. Схема составления К (А) и иерархия Л с размеченными стратами для данного случая представлены на рис. 5.11; страту наибольшего ранга называют элементным составом А; составная система Л, для которой указано семейство б — = FJ, / ? L, страт иерархии, называется стратифицированной, 179
10 11 ^JL- PfC 5.11. Схема составления К (А) и иерархия А а процесс построения б — стратификацией Л. Составные системы могут Л\ быть стратифицированы /_-// различными способами в зависимости от выбора компонентных составов комплексов страт. В том случае, когда фиксирован элементный состав системы, ее стратификация определяется выбором схемы составления К (Л); рассматривая компонентный состав s? системы А как страту некоторой иерархии А, будем называть множество s? соединением, представляющим А. Введенный термин по существу равнозначен понятию ориентированного множества систем, но отличается как от понятия «связанного множества систем», в частности, свободных соединений Л. Заде [14], так и от понятия соединения в операциональном смысле, использованного, например, М. Месаровичем и Я- Такахарой [24]. Мы рассматриваем соединение как множество совместимых, но раздельно воспринимаемых систем, притом множество, которое вводится применительно к контексту стратификации составных систем; задача стратификации: пусть задано соединение, которое принято за элементный состав $Ф системы Л, указана схема составления К (Л), требуется построить семейство страт б системы. Эта задача естественным образом сводится к задаче построения для некоторого соединения s?x такого соединения s&2, что пару {s?x, s&2) можно рассматривать в качестве двух смежных страт иерархии составной системы. Соответствие соединений s4>x и s&z называется морфизмом соединений, который в дальнейшем строго определяется для случая линейных стационарных систем. Соединения систем. Морфизмы систем и соединений. Пусть заданы множества Ти i ? m, абстрактных функций времени Т = = Z+: Tt = Х\ /?mx; определяющие некоторую систему общего вида Л с X {У\ : : i ? m}; mx, my — множества индексов функций входа и выхода соответственно. Предположим, что (yi) Xt, \t имеют структуру линейного пространства, а система А допускает представление тройкой линейных отображений F, G, Н, действующих на пространствах Q, X, Y. Здесь Q — пространство состояний системы Л; X = 2]С'Х; и Y= 2ч: Yj — области значений входных и вы- 180
Рис. 5.12. Морфиэмы динамик ц> и систем ходных процессов системы; FiQ-^Q; G:X-^Q; H : Q-*Y. Удобным способом записи таких систем является таблица = Q X Q F G Y Я. 0 E.13) Следуя [2], будем называть пару (Q, F) динамикой системы А. Динамика (Q, F) определяет изменение состояний под действием одиночного нулевого сигнала из X. Морфизм динамик (Qb Fx) и (Q2, F2) есть линейное отображение (p:Ql~^Q2, для которого коммутативна диаграмма, приведенная на рис. 5.12, а. Морфизм систем ср : Аг -> А2 (А1у А2 задаются в форме E.13)) есть морфизм динамик ср : Q!^Q2, для которого коммутативна диаграмма, представленная на рис. 5.12, б. При этом система А2 называется образом или моделью системы Аг [3]. Ввиду коммутативности диаграмм на рис. 5.12 справедливы равенства (у* ? Z+) Н^ = H2F[q>\ HlF[Gl = H2F[G2, откуда следует совпадение полных реакций системы Лх и ее модели Л2, находящихся в начальных состояниях qx @) и q2 @) = (pq± @) соответственно при любых входных воздействиях: (V0 :у W = HtF'tqt @) + ? Н^Г^%Х (А); / = 1,2. Состояния qx @) и ^2 @) называются эквивалентными в пространстве состояний Ах и Л2. Аналогично состояния q1 @) и <7i @) системы Лх, для которых имеет место совпадение реакций Лх при произвольных входных воздействиях, называются эквивалентными в пространстве Qx. Ограничимся в дальнейшем рассмотрением только эпиморфизмов систем, т. е. будем иметь в виду модели систем, для каждого состояния которых найдется хотя бы одно эквивалентное состояние в пространстве состояний моделируемой системы и наоборот. Не имеющую эквивалентных состояний модель системы будем называть минимальной формой. Примем число блоков системы А или, что для нас одно и то же, число компонент в составе зФ системы А равным k, а число связей — т. Обозначим / — отрезок целых чисел, 0 < / < п> к = = [i : 1 < i < k], n - к U @}, m = [i : 1 < i < m), n = k + 181
+ т. Индексируем блоки числами из к, а связи — числами из т. Индекс 0 приписывается окружению («среде») системы А. Введем на / унарные операции р, я, задающие инцидентность блоков и связей, полагая при этом, что: для любого i 6 n имеется равенство pi = ju = i\ для любого i ? m индексами pi, ni являются числа из п, задающие индексы компонент начала и соответственно конца связи, помеченной i. Индекс 0 полагается выделенным элементом /. Используя эти обозначения, будем задавать любую схему составной системы А с помощью алгебры С = A, 0, р, я), которую условимся называть схемой системы. Каждой дуге схемы поставим в соответствие линейное пространство. Обозначим V семейство линейных пространств: V = {\h : k ? m}. Каждой вершине схемы, кроме 0, поставим в соответствие абстрактную линейную систему вида E.13). Обозначим семейство этих систем А = = \Ат : т ? к) и будем задавать каждую Ат уравнениями стандартного вида q(* + l)-Fq@+Gx(<); Y@ = Hq(/). E. И) Матрицы в E.14) отвечают одноименным морфизмам в E.13). Соединением систем А будем называть пару s? — (Е, С), состоящую из двойки Е = (А, V) семейств А= [Ат)у V = {Vh} и схемы С = (/, 0, р, я), связанных между собой условиями: (V^k)Xm= E® V«; Ym= E® V». yf (Л(*=т) V* (P*effO Рассмотрим некоторое соединение st = (?, С). Пусть Лт, Дп — системы в А, для которых имеется пространство \k ? V, такое, что pk = m, nk = п. Поскольку Vfe ^ Ym, то можно указать пространство Qkm ^ Qm векторов qm ? Qm, для которых Hmqm € Vv Обозначим е : Qm ->¦ Qftm — проектор векторов qm на Qftm, h : Qfcm ->• Vfe — отображение, индуцированное Hm : Hmqe = = hqe, q8 6 Qftm- Так как \h с Хп, то на \k определено отображение Gnh = Gn/Vft. Тем самым определяется последовательность задающая морфизм Fnm = GnftHftm : Qm^ Qn. Соединение s? = (E, С) можно однозначно соотнести системе, заданной в форме E.13), такой что m ? к р/г=0 Y=S®Vft; Я/г=0 Fq= S® EFnmqm; E.15) п ? к m ? к ш
Hq= ?® H„mqm; Gx= ?® GnhV. EЛ5> p?=0, nk—n Систему EЛ5) будем называть составной. При записи композиции составной системы по схеме С будем использовать обозначение А = cs?. Поясним, каким образом осуществляется композиция при матричном определении морфизмов систем. Таблица E.13), составленная для системы Ат, т 6 к, может быть представлена в виде "т ^1т ¦ 2т • • • ^km 'От лт= хг х„ х, где (yt ? т) Xml, Y, т ml Ш2 mk тО Fm Gmi Gm2 Gmfc 1 Gm0 Him H2m . • • 0 Hfcm Нот E.16) = Vft для m — pk, i = nky т. е. строки и столбцы таблицы с метками Xm/, Y/m соответствуют (при i Ф 0) системе Л', i ? k. Ясно, что для некоторых i строки и столбцы могут отсутствовать, в частности, всегда отсутствует строка и столбец / = т. Наличие в данной таблице строки Хт, (столбца Y,-m), i ф 0 обозначает, что в таблице имеется столбец с меткой Ymi (строка \1т) и при этом справедливо равенство: Хт1 = = Ymi (X/m = Ylm). Учитывая это, упростим индексацию в E.16), положив (ym ? k) Хт = Хт0, Ym = Y0m, а при не равных нулю т = pkt i = nk : Xmf = Ym* = Vfc. В новых обозначениях E.16) записывается следующим образом: Am = Vk Xm| Gn Нь Hr E.17) 183
Уг У5 1 А' ! Уз т < 1 Аг у сЛ = А'®Аг 1 v2 ! v* . j Рис* 648* Схема двух компонентного соединения Вводя координатные столбцы: (Vm)| (V*) qm = col qm (t + 1); y™@€Ym; v*@6Vfc qm = col qm (*), xm = col xm (t), Ут = col ym (*), Vft = colvft@> и не различая матрицы линейных отображений в соагвртргвую- щих базисах и сами эти отображения, запишем EЛ7) в виде совокупности матричных соотношений: qm = Fqm + Ц Gftvfe + Gmxm; nk~m vfe = H,qm; 9к^т(пкф0); у = Hmqm. E Л 8) Объединяя соотношения EЛ8) по всем т ? к, получим общее матричное уравнение E.19) К V 1 У = F G Н 0 Н 0 G 0 0 X ql V х | где F = diag {Fi, ..., Fft}; H, G — ленточные матрицы, составленные из блоков Gft, Hh (у&); G, Н — ленточные матрицы, составленные из блоков Gm, Hm (vm)> Ч> v — столбцы, составленные из координатных столбцов qm, vft; x, у—столбцы, составленные из ненулевых координатных столбцов хт, ут. Исключая теперь v из EЛ9) и выполняя тем самым операцию Cs&, найдем F = F + GH и запишем искомое матричное уравнение для А = Cs& в виде q' = Fq + Gx; у - Hq. E.20) В порядке иллюстрации рассмотрим двухкомпонентное соединение s4> = (?, С), которое образовано на Л1 и Л2 в соответствии со схемой, приведенной на рис, 5ЛЗ. Композиция Cs& двухком- 184
понентного соединения s4> называется (прямой) суммой систем А1 и А2 : Csi =s A1 0 А2 и задается таблицей Л2 = 02 ^ = QX v4 хх = vx Qi Fi G4 Gx v8 H8 va = yi Hx 0 a '6 Qa Fa G3 Ga v4 H4 ve = y8 Ha 0 Q у JCa= VB Qi 8 Qa yi © Уа Cs* = Q X H = Qi — Ф 0 Q2 e Xl Fi GSH8 Gx 0 G4H4 Fa 0 Ga 1 Hx 0 0 0 Ha E.21) Предположим, что si = (?, С) — соединение общего вида. Обозначим Сг = (/lt 0, р, я) — подсхему С с вершинами пх = = кг (J {0}, к з кх ^ 0 и дугами тх е т; / з /х = щ [} тг. Соединение six = (?i> С2), в котором Ег = (Ax, V) образуется подмножеством Ах множества систем А, индексированных кь и подмножеством Vx пространств Vft ? V с индексами & ? п^, назовем частью соединения si = (?, С) : ^ е ^. Если siu i2?^H / = /iU4»T0 соединение si называется суммой и обозначается si = ^ + ^; (mi П m2 ~ 0)=^(^:=: = .5^! ф ^2). В операциональном смысле можно говорить о том, что соединение si—six + si2 составляется из частей six и si2 [3]. Операция прямой суммы и композиции связаны следующими условиями: (^ = ^9 sit) =* (Cstf = С^х ф Cstf,). E.22) Пусть N — некоторое ядро схемы С соединения si = (Е, С), состоящее из п + 1 классов смежности. Сопоставим этим клас" сам части si с подсхемами на множествах ненулевых вершин* представленных данными классами. Прямую сумму частей вида si—six Ф ^2 Ф ••• Ф ^п = Е®^* назовем разложением si по ядру N (или по соответствующей ядерной конгруентности). Учитывая E.22), можем записать тождество E.23) которое допускает следующую интерпретацию. 185
Обозначим х : С ->¦ С проекцию схемы С на ее редукцию (на фактор-схему) C/N и поставим в соответствие каждой дуге k схемы С пространство vh= Ee vm. Соединение si = (Е, С), двойку Е которого составляют семейства систем Csit (y/i ? %k) и пространств Vfc, индексированных дугами схемы С, называется редукцией соединения si по ядру N и обозначается si = si/N (либо st/Q, где Q — конгруентность С, соответствующая N). В силу E.23) ясно, что Csi = С (si/N) = С (jtf/Q). E.24) Этот результат может быть сформулирован в более общей форме. Рассмотрим ядерные конгруентности Р, Q схемы С. Предположим, что Р з Q. Тогда, если t, ix — две любые вершины С, равные по модулю Р, можно утверждать, что [i]p з U\]Q. Обозначим части si= (?\ С), схемы которых определены на вершинах, принадлежащих классам эквивалентности: U']P, WJq, как si [i\P и si U\\qсоответственно. Соединение si [tip представлено в вид Q Отсюда, принимая во внимание E.24), получим (V* б к) ((Р = Q) =* Csi [i]P = С (sfi[i]P/Q)). Введем определение морфизма соединений. Морфизмом со: si1^-si2 соединения six = (?х, Сх) в соединение ^2 = (?а, С2) называется упорядоченная пара со = (ф, Н), в которой <р — мор- физм схем; Н = (hm : т ? фкх} — множество морфизмов систем вида hm : Csim -*¦ Am, где sim = si [i]Q s silf Q — ядерная конгруентность, Am G A2, m = cp [i]Q ? k2, (y& ? фШх s S m2) пространство Vft ? V 2 равно (изоморфно) прямой сумме S®v„ v,6Vx. <pi=k Соединение six называется областью (началом) морфизма со, а соединение si2 — его кообластью (концом). 5.3.3. Задача построения минимальных форм составных линейных стационарных систем Условимся называть фазовой репликой соединения si семейство & = \ФШ : т 6 к} такое, что (ym g k) Fm^m s ^m ^ S ker Hm. Фактором соединения si с репликой SP по ядру N (конгруентности Q) назовем соединение si = (?\ С), семейство 186
систем которого состоит из фактор-систем [3] семейства st/N по существующим подпространствам реплики ^. Если фазовая реплика & составлена из наибольших инвариантных подпространств ядер выходных отображений систем соединения si/N, то фактор si будем называть минимальным фактором, а любое соединение, изоморфное si, минимальной формой si по 1Ч(или Q). Так как реплика 53, задающая минимальный фактор соединения, фактически определяется ядром N (конгруентностью Q), условимся обозначать этот фактор через min si. Q Можно показать, что верна следующая теорема: если six — = minsiy si2 = min si и PsQ, то существует единственный Q р эпиморфизм со : six -*¦ si2i индуцированный изоморфизмом min (min si\ ~ min si. E.25) p/q { q ) p Пусть задан компонентный состав системы А, соединение si = = (?, С) и указана схема составления. Решение задачи синтеза минимальной формы si может быть представлено процессом построения совокупности соединений, образующих ряд si -+• min si ->• rain (min si) -> ,.. 1 .. E.26) Каждый член этого ряда, начиная со второго, является минимальным фактором предыдущего члена ряда и связан с ним морфизмом- проекцией. Ряд E.26) будем называть композиционным. Члены композиционного ряда соединения si соответствуют минимальным формам страт составной системы Л2 = Csi. Последний член — вершина ряда — однокомпонентное соединение 1^—это минимальная форма страты ранга 1, т. е. минимальная форма целостной системы Л2. Результативность указанного процесса для решения задачи минимизации Л2 обусловлена тем обстоятельством, что ряд E.26), рассматриваемый как диаграмма проекций соединений, может быть «коммутативно» пополнен эпиморфизмом со : si —>• 1^. Причем, морфизму соединений со соответствует морфизм систем h : Csi ->¦ ->• С1^ такой, что Cl^ ~ Csi/kev Я = min С^. Покажем это, построив категорию т^ минимальных факторов соединения si [29]. Данное построение, являясь общим обоснованием возможности решения задачи минимизации составной системы по частям, будет одновременно служить демонстрацией «инвариантности» полученного результата по отношению к выбору схемы составления многокомпонентной системы Л2. Рассмотрим соединение si0 = si = (?, С). Обозначим Р^ — множество всевозможных ядерных конгруентностей Р|, 1 <; i •< л 187
схемы С; six = min si — минимальный фактор si по конгруент- рх ности Рх, соответствующий ядру схемы С, которое в качестве элемента содержит класс смежности к — множество всех ненулевых вершин С; sit — min si, 1 < i < n\ 0^ — множество объек- тов, состоящее из соединений siti 0 <; i <; п\ М^— множество морфизмов соединений, состоящее из единичных морфизмов е: si-у si, проекций со : si -> sit и эпиморфизмов, определенных согласно теореме E.25) для каждой пары siiy sik такой, что Р^ ^ Введем диаграммное представление т^ = @^, М^, р, я), где р, я : М^-*- 0^ такие отображения, что ро = sit — начало, а Ак — конец морфизма со : sit -> ^. Подмножество М^, состоящее из всех морфизмов с началом sit и концом sih, обозначим тог (/, k). Ясно, что при любых индексах / и k для представления ш^ имеется неравенство card [mor (i, A)]< 1. E.27) Представление ш^ является категорией, если заданы отображения Е : 0^ -+ М^; (#) : mor (&, m)®mor (t, &) ->- тог (t, т), обладающие следующими свойствами [30]: а) для любого объекта sit : p (Е^) = я (Е^) = .я^; б) композиция (о = (о2фсох морфизмов из М^ определена тогда и только тогда, когда рсо2 = яо^. В этом случае со : рсох ->¦ —>- яоJ; композиция (#) ассоциативна; в) для любого морфизма со : ^ -> ^ имеет место равенство (оф (Е^{) - (Е^)фсо = со. Построим категорию т^. Для выполнения свойства а) следует положить (V0E«^« = e:s?i^sti. Рассмотрим тройку соь со2> со ? M^ такую, что рсо — рсох = si или роз = рсох = min si; E.28) Pi рсоа = я(ох = min si\ ясо = ясо2 = min si ph pm И при этом имеют место вложения (Pfc=)Pfec=P. E.29) Составим из этих морфизмов диаграмму (рис. 5.14, а). Все морфизмы на этой диаграмме определены в силу E.25) единственным образом, что выражается в неравенстве E.27). Таким образом, отсутствует какая-либо альтернатива для задания композиции (ф) 188
Е& U>2 л- cot,. ^ а) "т 6) Рис. 5.14. Диаграммы морфизмов соединений морфизмов из М^ как соответствия о = (й2ф<*>1> которое можно вывести для любой тройки, удовлетворяющей E.28) и E.29). Аналогичные рассуждения подтверждают, что определенный закон композиции морфизмов схемы ш^ обладает свойством ассоциативности. Действительно, предположим, что может быть составлена диаграмма (рис. 5.14, 6). Учитывая E.27), можно записать > (оJ ф о)х) = со3 • о)б = оL ф сох = (со3 ф (оа) i ю. i COi. Таким образом показана выполнимость аксиомы б) категорного определения представления ш^. Справедливость а) очевидна, если принять во внимание E.29). Рассмотрим некоторую последовательность: 1 Ъ S&0 = рС0| —^ ЯСО; = p@fe —»* ЯО)! = Si>x> E.30) являющуюся путем диаграммы ш^. Используя E.25), поставим в соответствие этой последовательности «изоморфный» композиционный ряд вида E.26) (рис. 5.15). Поскольку в категории т^ определен морфизм сохф. . . ф со^фо^ = со : s&0 ->- s?lt убеждаемся (О в существовании последовательности морфизмов соединений $& —* со —+ st>x ~ \<?. Любому эпиморфизму соединений однозначно сопоставляется морфизм композиций начала и конца эпиморфизма, поэтому А = Cs& —> C^i = min C^^Cl^, следовательно, вершина 1^ любого композиционного ряда соединения представляет собой минимальную форму Ся?. А0=# min # сик ¦**• min A. mm #=#j p, ~*~ min Л Pi • mm (minA) - --и вгМ P Рис. 5.15. Диаграмма проекций соединений 1«9
Установим, как связаны между собой схемы составления и композиционные ряды соединения. Граф схемы составления К (А) определяет путь E.30) диаграммы т^. Из построения т^ ясно, что данное соответствие схемы составления и пути вида E.30) взаимно однозначно. Таким образом, используя любой путь составления многокомпонентной системы, можно получить искомое решение задачи ее минимизации, т. е. построить по частям одну из минимальных форм системы. 5.3.4. Процедура решения задачи построения минимальных форм составных линейных стационарных систем Программирование процедур стратификации, обеспечивающих синтез уравнений минимальных форм составных систем, связано с переходом от общих геометрических представлений, использованных при определении соединения s?> к более детальному и конструктивному описанию компонент системы и их взаимосвязей. Если каждая из компонентных систем Ат соединения^ атрибутируется матрицами своих морфизмов, то разложение (Vm€k)Xm = S® Ve; Ym= S® V, фактически определяет разбиение этих матриц на блоки, соответствующие пространствам V^. Данное обстоятельство уже использовалось при рассмотрении матричных манипуляций, реализующих операцию композиции соединения s4>. Предположим, что для каждой системы Ат соединения si заданы следующие блочные структуры матриц ее входного и выходного отображений: >G<m) « • • • Gft . . . Gm Н(/П) = н, н, E.31) Число столбцов любого блока Gh (соответственно число строк Нь) равно размерности пространства \k, k ? m, через которое связаны системы Ат, Ап\ Ату Ап ? А (т = pk, п = 190
= nk) такие, что GA — блок матрицы входного отображения А*$ НА — блок матрицы выходного отображения Ат. Схема С описывает структуру .$?, задавая только сам факт наличия связи между компонентами соединения. Для более детального описания связей систем дуги схемы соединения должны быть атрибутированы размерностями представляемых (индексируемых) ими пространств Vft> k ? m, и описателями вхождения этих пространств в разложения: (V*Gk)XTO = ?е V,; Yw= ?e V, или, что то же самое, указателями соответствующих блоков в матрицах входных и выходных отображений систем *я?. Зададим блочные структуры E.31), атрибутирующие схему С, целочисленной таблицей (реляционной матрицей) rel sf>> число строк которой равно числу дуг схемы С. Нумеруя пространство \fk числами из 1 < к <; п, будем полагать, что k-я строка матрицы rel st есть кортеж вида re\k s? = {pkt nk, orn Hft, orn Gft, dim Vk). Здесь orn Hft, orn Qk суть номера первой строки Hk и первого столбца Gk в структурах E.31) с индексами т = pk и п = nk соответственно. Рассмотрим построение атрибутов фактора minj^, задава- Q емого некоторым ядром N схемы С, в случае, когда системы Ат соединения sf> атрибутированы матрицами своих морфизмов, а схема С — матрицей rel бФ. Поскольку построение матричных уравнений минимальных форм систем любого соединения не меняет блочных структур E.31) этих уравнений, то rel /min sl>\ = rel (sf>/Q) и, следовательно, построение атрибутов min <& сводится к последователь- Q ному выполнению двух операций: нахождению атрибутов редукции j^/Q и построению матричных уравнений минимальных форм компонентных систем <s&/Q (см. п. 5.3.1). Ясно, что эта последовательность действий полностью согласуется с определением морфизма соединений. Построение матричных уравнений минимальных форм удается осуществить, практически не прибегая к обращениям блочных матриц. Основанием этому факту служит общая алгоритмическая идея факторизации систем, которая обусловила ориентацию алгоритма решения задачи на построение «конкретных» минимальных форм систем — минимальных факторов. Это дало возможность в полной мере использовать для решения задачи общеизвестный факт представимости эндоморфизма динамики неминимальной системы квазитреугольной матрицей. Результатом процесса предлагаемых матричных манипуляций является локализация наибольшего инвариантного подпространства ядра выходного отображения системы, после которой искомые матрицы морфизмов минимального 191
фактора извлекаются в качестве блоков из преобразованного матричного уравнения системы. Нахождение атрибутов редукции si/Q. выполняется по следующей схеме. Используя rel si, находят матрицу инцидентности В графа схемы. Строки В соответствуют вершинам, а столбцы — дугам С. Затем: 1) определяют матрицу N±: =N0<g>B инциденций дуг С элементам ядра N и матрицу N2: = (Nx о В) ф Nx вхождений дуг С в составы комплексов, индексируемых вершинами С (® — матричное умножение, в котором обычное умножение заменено на логическое, а сумма — на сумму по модулю 2; О — матричное умножение с заменой обычных умножения и сложения на логические; ф — сумма по модулю 2); 2) находят число дуг схемы С; 3) строится матрица М вхождения дуг С в дуги С (М задает ограничение %/т, % : С ->- C/N, размер матрицы — (пг X т))\ 4) выполняется атрибуция систем si матрицами эндоморфизмов динамик и матрицами входных и выходных отображений. В результате устанавливается соответствие блочных строк и столбцов матриц морфизмов систем соединений si и si. Этим завершается алгоритм построения атрибутов редукции si = si/Q.
ГЛАВА 6 СТРУКТУРНЫЕ СВОЙСТВА СЛОЖНЫХ СИСТЕМ 6.1. СТРУКТУРНАЯ УПРАВЛЯЕМОСТЬ ДИНАМИЧЕСКИХ СИСТЕМ С ПАРАМЕТРИЧЕСКИМИ СВЯЗЯМИ Процесс системного моделирования как целенаправленный процесс конструирования и исследования моделей проблемных ситуаций можно условно изобразить в виде некоторой траектории (рис. 6.1). Далее мы будем рассматривать задачу, связанную с тем участком этой траектории, который соответствует ее вхождению в область математической теории систем. На этом участке задачи системного моделирования связаны с преобразованиями различных по форме представлений о моделируемой системе к форме математических (или машинных) моделей. Основной вопрос, на который мы постараемся здесь ответить, — это вопрос о том, как проявляются особенности различных форм структуризации описаний моделируемых систем в свойствах математических (машинных) моделей, формализующих эти описания. В данном параграфе на примере динамических систем, структура которых описывается потоковыми диаграммами моделей системной динамики (гл. 4), рассмотрены вопросы разработки методов системного моделирования, ориентированных на структурные исследования. Обсуждение этих вопросов проведено в плане концепции рангов неопределенности стратифицированных систем. 6.1.1. Динамические сети потоков и модели системной динамики Представление систем в виде динамических сетей потоков играет важную роль в решении прикладных задач системного анализа и, в частности, является базовой для системной динамики формой первичного описания объектов моделирования. Наиболее простой моделью системной динамики, отражающей все наиболее важные особенности нормативной организации моделей данного класса, являются джейфы —• динамические сети с линейными производящими функциями темпов потоков [2]. В качестве структурного базиса джейфов используются потоковые диаграммы, в которых применяются только принципиально важные переменные: уровни, темпы, выходы, входы. Такие диаграммы условимся называть сетевыми. Все необходимые нам для дальней- 7 П/р С. В. Емельянова 193
Модель: х-Ах*да С бой cm бо: упрабляемость Предмодельные формы: джейфы Рис. 6.1. Схема процесса построения и использования моделей проблемных ситуаций: / — «траектория процесса построения модели»; // — фон задачи; /// — область математической теории си* стем шего символы сетевых диаграмм, а также допустимые варианты их соединения иллюстрирует упрощенное изображение сетевой диаграммы, приведенное на рис. 6.2, а. Конфигурации символов в виде стилизованных под геометрические графы представлений демонстрирует рис, 6.2, б. Каркасом диаграммы джейфа является потоковая сеть (связный орграф без петель), узлы которой соответствуют уровням моделей системной динамики, а дуги—темпам потоков ингредиентов, перемещающихся между уровнями. Обозначим X = = {Xi}> V = {vk} — множество узлов и дуг сети JF = (X, V) соответственно, причем I = О, т\ к = 1, п; т <; п. Выделим один какой-либо узел сети и назовем его общим внешним источником (стоком) потоков. Зафиксируем за ним индекс 0 и будем называть далее нулем сети. (Напомним, что в символике диаграмм моделей системной динамики нуль потоковых сетей означает внешнее «озеро» ингредиентов потоков.) Являясь способом изображения структур причинных связей моделируемых объектов, потоковые сети определяют структуру джейфов. Пусть Jf = (X, V) геометрическая сеть [3]. Введем в пространстве этой сети граф Кснига [14] 01 = (Р, Q), полагая, что Р = X U U, где X = Х\{0}, a U — множество (возможно пустое), не имеющее общих точек с X и кривыми V; Q = V U У, где V — система различных представителей V [11], не имеющая общих точек с X, а множество Y (возможно пустое) — множество произвольных точек, отличное от всех указанных ранее. Граф Я как геометрический, так и абстрактный будем называть реляцией сети ЛР, а пару 3) = (ИР, 31) — сетевой диаграммой. Рис. 6.2. Символика диаграмм: а — упрощенное изображение сетевой диаграммы; б — представление сетевой диаграммы в виде орграфа; 1 — вход; 2 — выход; 3 — уровень; 4 — темп; 5 — поток 194 О <хц <ег^ \ 5 \ S) >J а)
Рассмотрим некоторую произвольную геометрическую диаграмму Ф и спроектируем ее на плоскость так, чтобы образы всех элементов 2D были различимы. Легко увидеть, что, изобразив проекции вершин 32 черными кружками (светлыми — для V), а проекции дуг сети JC и ребер 32 — сплошными (и соответственно штриховыми линиями), мы получим конфигурацию, тип которой был задан на рис. 6.2, 6. Сеть JC ~ (X, V) может быть представлена матрицей инци- денций J размера (т X п) с элементами: [—1, если Xi есть начало дуги vh; aik = | + 1, если xt есть конец дуги vk; { О, в остальных случаях; t= 1, т; &= 1, п. Еще раз обратим внимание на то, что в J отсутствует строка, соответствующая нулю сети, вследствие чего эта унимодулярная матрица имеет максимальный строковый ранг т. Реляцию 32 ^ Р X Q сети JC будем задавать одноименной матрицей R = (rsi) размера (п + q) X (т + р), где р = \ U |, q = \Y |; р, <?>0: / 1, если (Ph Qs)?32; sl \ О, в противном случае. Параметризация сетевых диаграмм. Обозначим М произвольную конечную матрицу. Свойства М, обусловленные размещением нулевых элементов, могут быть описаны как свойства ее терм- графа. Если элементы М равны 0 или 1, то терм-граф М — это граф Кёнига, для которого М есть матрица смежностей узлов. Определение. Всякую матрицу F, терм-граф которой является суграфом графа Кёнига @, 1) — матрицы М, будем называть параметризацией М. Определение. Если F параметризует матрицу реляции 32 из 2D = (Л)у 32), то будем говорить, что F параметризует диаграмму 2). Введем в рассмотрение систему уравнений: x = Jv; v = Ax + Bu; у = Сх + Du, F.1) полагая, что вектор-функции времени этой системы принимают значения в одноименных координатных пространствах. Определение. Диаграмма iz> = (Jf, 32), в соответствие которой поставлена система F.1) такая, что матрица r A L. С В " D j m p параметризует SD, 7* 195
называется абстрактной динамической сетью с линейными производящими функциями, коротко — джейфом. (Везде далее мы говорим о джейфах, у которых D = 0.) Обозначим 36 = Rm — пространство уровней джейфа, У = = Rn — пространство потоков джейфа, °11 = Rp — пространство входов джейфа, °l/ = R* — пространство выходов джейфа. Аналогичные названия далее используются и для векторов в этих пространствах. Например, х = х (/) — вектор уровней джейфа в момент времени t, v = v (t) — вектор темпов потоков джейфа в момент t. Матрицы системы F.1) задают четверку линейных отображений, для которых имеет место коммутативная диаграмма: й ^АА с м ®J Легко убедиться, что этой диаграмме [системе уравнений F.1I соответствует пара линейных стационарных динамических систем x = J(Ax + Bu); y = Cx; F.2) v = AJx + Bu; у = CJv. F.3) Эти системы условимся называть подсистемами джейфа, а именно, F.2) — системой уровней, F.3) — системой потоков. Эндоморфизм пространства состояний линейной стационарной системы часто называют системной динамикой. Сеть с линейными производящими функциями имеет, по определению, две динамики: динамику уровней М = JA и динамику потоков N = = AJ, Множитель здесь задается матрицей инциденций сети джейфа и является связующим звеном для графа и динамики потоков. Так как данное обстоятельство, на наш взгляд, является весьма существенным, остановимся на нем более подробно. Рассмотрим сеть Л = {X, V). Обозначим С0, Сх линейные пространства нуль- и одномерных цепей Л\ которые определим над полем вещественных чисел, и введем граничный оператор б : Сх->С0 с (обычной) матрицей инциденций J0 сети Л. Преобразуем базис С0 с помощью матрицы Т, вид которой определяется уравнениями: ^0 = х0 х1 • • • *т> С| = хи i = 1, 2, . •., т. В НОВОМ базисе с0, с1э ..., ст пространства 0-цепей граничный оператор <?ети имеет матрицу ГО] Т-11 — J° — L j J * 196
1 Рис. 6.3. Схема движения азота в экосистеме пастбища: / — поступление азотных удобрений; 2 — вы* ход азота в атмосферу; 3 — уход азота с грунтовыми водами; 4 — приемник биомассы Ясно, что образ 6СХ = span {съ с2, ¦.., ст}. Если отождествить изоморфные пространства 8В ^ 6С1} У ~ Сх и обозначить р: 6Сх ->¦ С0 — вложение образа граничного оператора в его ко- область, то, сужая последнюю до 8В, получим приведенный граничный оператор J : У -^ SB {pi = 6). Назовем этот оператор граничным оператором джейфа. Легко проверить, что граничный оператор джейфа является морфизмом его динамик — он сохраняет динамики в том смысле, что MJ = JN. Более того, данный оператор в силу коммутативности диаграммы ®Л А)® является (эпи)морфизмом систем джейфа [21 ]. Таким образом, джейф — это сеть, узлы и дуги которой взвешены базовыми переменными пары линейных динамических систем, эпиморфно связанных приведенным граничным оператором сети. Исходные состояния линейной системы, при которых ее полные реакции на произвольное входное воздействие совпадают, называются эквивалентными. Аналогично определяется эквивалентность состояний пары систем. Ясно, что в этом смысле морфизм J устанавливает эквивалентность состояний системы F.2) состояниям системы F.3) и наоборот. Приведем несколько упрощенных примеров моделей систем, на основе которых постараемся дать необходимые интерпретации введенных нами понятий. Пример в А. Рассмотрим динамическую модель движения азота в экосистеме пастбища [6]. Азот поступает в систему вместе с азотными удобрениями (рис. 6.3). Интенсивность поступления на схеме обозначена иг. Азот транспортируется через почву (jcj), растительность (х2), животных (хэ) в атмосферу, грунтовые воды и приемник биомассы (например, скотоприемный пункт). Динамика запасов азота описывается системой разностных уравнений. При составлении уравнений используется закон сохранения массы азота в си- 197
Рис. 6.4. Схема использования производственного оборудования в пределах участка технологической линии стеме. Например, изменение количества азота в почве за единичный промежуток времени описывается уравнением вида *i, t+i — х1% t = и1% t — (vu t + и», t) + К t + е4. *)» rAe ^1» f» v2, и us, и v*% t — темпы поступления и ухода азота из почвы. Аналогичный вид имеют уравнения, отображающие динамику запасов азота в растениях и животных. Подставляя в эти уравнения оценки производящих функций темпов (например, vly % — 2хь *), можно получить в итоге искомую модель динамики запасов азота в экосистеме пастбища. Пример 6.2. Рассмотрим технологическую линию дискретного массового производства, на который осуществляется параллельный выпуск m видов изделий двух различных типов (подвидов) [10]. Полагая р = i + 2 (/— 1), где /— индекс типа, а /— вид продукции, обозначим Нр — оборудование некоторого участка линии, занятое обработкой р-го продукта, 1 ^ р ^ 2m, n = 2т. Структура Нр может быть задана в виде объединения п сетей (рис. 6.4). Станки Нр в момент / распределяются по подгруппам (см. пример 4.9) станков: xs, переналаживаемых после обработки продукта s-ro вида (s = 1, л); хп+ъ обрабатывающих р-й продукт; хп+2. закончивших обработку. Динамика численности станков в указанных подгруппах Яр задается соотношениями: *м,Ui = "е. t — (а$ — 1) х$ч t; Хп+и Ui = (aixu t + ад*, * + ••• + апхПч t) — (^ — 1) xn+lt t, где коэффициенты k, as определяются нормативными оценками времени выполнения отдельных стадий технологических операций. Пример 6.3. Сеть потоков системы сообщающихся водохранилищ [12] изображена на рис. 6.5. Входами системы являются осадки rlt r2 и управляемые перепуски воды из водохранилищ alt u2. В качестве выходов системы рассматриваются сток у! и водосброс у2 грунтовых вод. Состояние водохранилищ характеризуется наполнениями: xlt х2, хв наземных хранилищ и *4 — подземного резервуара (с учетом просачивания). Рис. 6.5. Схема перемещения воды • системе водохранилищ и 198
Рис. 6.6. Диаграмма потоков системы водохранилищ Динамика наполнений описывается балансовыми уравнениями: *i. <+i = *ь t — ai*i. t — uut+rut> *2, *+1 = ^2. < ~ fl2*2, t — , t + ''a, t J *з. i+i = % * + a8 (x4, f — *s, f) — **3, i + , t + . *; *4 л+i = xAt t + axxx% i + a2x2t t — aB (x4, * — x3, t). Здесь коэффициент Л характеризует поверхностный сток, а коэффициенты ах и а2— грунтовый сток. Связь между поверхностным и грунтовым стоками учитывается с помощью выражения а3 (*4 — дг3). Выходы системы имеют вид: ( Ух = ь3; I ^2 = ^3(^4 — *j). Сеть потоков диаграммы — потоков системы водохранилищ (рис. 6.6) характеризуется матрицей инциденций J = Структура реляции сети задается двудольным графом, матрица смежиостей которого имеет вид Г —1 0 0 L 1 0 —1 0 1 0 0 —1 0 о i 0! ¦ ¦ 0 : —1 ! —1 0 1 0 0 1 0 —1 0 1 1 0 0 000 R = 1 Размер данной матрицы: 10 X 8 = (8 + 2) X D + 4). 199
Реляция сети параметризована коэффициентами линейных форм, указанных на рис. 6.5. Уравнения темпов модели динамики системы водохранилищ, составленные по такой параметризации в непрерывном времени, имеют вид: i>i = ад; *s = ад v9 — kx3) v7 = и8; v* = —a3x9 + azx$ tf8 = "«• Введем вектору: хт — (xlt хг> х9, xd); VT=(tfx, V2t VS ., vey9 uT = («i, u2t u*, ut) Ш матрицы A = г «. 1 ° a2 0 k —яз 0 Я3 0 ;B- 0 i 0 1 0 t 0 1 с помощью которых уравнения темпов могут быть записаны в компактном виде v ~ Ax -f Bu. Дифференцируя балансовое уравнение х = Jv и подставляя в него vt получим уравнение х = J (Ах + Bu), которое равносильно системе *1 = *2 = *3 = х4 = —CLlXi а1х1 —ад +а2х2 —(аз + ?)*з -fa3*3 +а9*4 —Дз*4 —иг +«i — + ", +"з + "< Если теперь ввести матрицу О I \ к С = 200 -08 ^3
описывающую выходы системы водохранилищ, то можно получить джей ф, диаграмма которого параметризуется матрицей ГА ВТ F = [c о J- Система уравнений уровней этого джейфа есть не что иное, как структурированная по схеме системной динамики модель динамики запасов воды в водохранилище. 6.1.2. Структурная управляемость. Понятие систем с параметрическими связями Рассмотрим некоторые структурные свойства джейфов. Определение. Джейф, диаграмма которого допускает параметризацию с управляемой системой потоков, называется структурно управляемым. Системы потоков и уровней джейфа эпиморфно связаны граничным оператором. Вследствие этой связи управляемость системы уровней гарантируется в случае, когда имеет место управляемость системы потоков. Этот факт легко проверить: составим матрицы управляемости Кх и Ку соответственно для пар (JA, JB) и (AJ, В): Kx = [JB, (JA)JB, (JAJJB, ,.., (JA)m~!JB]; KV = [B, (AJ) В, (AJJB, ....(Ajy^B]. Если m 4^ n> то JKy = [Kx, (JA)m JB, ... , (JA)" JB]; F.4) поскольку каждая из матриц J и Ку имеет полный ранг, то ранг матрицы, записанной в правой части равенства F.4), также будет полным. Отсюда следует, что rank Кх — т- Определение. Джейф, диаграмма которого допускает параметризацию с наблюдаемой системой уровней, называется структурно наблюдаемым» Определение. Джейф, диаграмма которого допускает параметризацию с управляемой системой потоков и наблюдаемой системой уровней, называется структурно минимальным. Включения (AJ) ker J s кег J и кег J c= ker (CJ) очевидны. Из этого вытекает, что для любой пары (AJ, CJ) подпространство ker J ненаблюдаемо. Так как в передаточной матрице джейфа представлена только (полностью) управляемая и наблюдаемая часть динамики его потоков, то можно говорить, что диаграмма структурно минимального джейфа допускает параметризацию, при которой передача джейфа имеет наименьшую неопределенность относительно динамики потоков. Иначе, диаграмма структурно минимального джейфа обеспечивает возможность организации таких сетей с линейными производящими функциями, 201
система уровней которых является минимальной реализацией [11 ] передачи джейфа и одновременно минимальной формой (см. п. 5.3) его системы потоков. Задача исследования структурных свойств управляемости джейфов рассматривается здесь как характерный для технологии системного моделирования пример построения методов анализа свойств сложных систем, базирующихся на применении моделей этих систем, имеющих низкие ранги неопределенности (см. п. 5.1), В данном конкретном случае речь пойдет о распространении идей и методов исследования управляемости и наблюдаемости на системы, описания которых имеют вид моделей системной динамики [28]. Непосредственно для моделей системной динамики конструктивные приемы анализа структурных свойств управляемости и наблюдаемости не разработаны. Джейфы как линейные потоковые модели системной динамики имеют по сравнению с ними более низкий ранг неопределенности, На основе джейфов удается сформулировать и решить задачи структурного анализа свойств управляемости, наблюдаемости и минимальности. Данные решения позволяют придать обсуждению основного вопроса о структурной управляемости моделей системной динамики значительно большую определенность и конструктивность. Понятие структурной управляемости линейных систем впервые было введено в работе [9] в связи с задачей об управлении численностью биологических популяций (см. также [22]). В независимой от приложений формулировке задача о структурной управляемости линейных систем рассматривалась в [31]. Применительно к линейным одновходовым системам в [31 ] было получено необходимое и достаточное условие структурной управляемости. В более поздних публикациях приводились изложения методов решения задачи анализа структурной управляемости линейных систем с произвольным числом входов [30, 32, 34]. Обсудим задачу о структурной управляемости линейных систем в наиболее общей постановке, когда на область параметризации систем накладываются ограничения. Рассмотрим линейную систему к (t) = Ax (t) + Bu (*), х ? R", u ? Rm. F.5) Будем считать систему F.5) заданной или параметризованной, если указана пара числовых матриц (А, В). Элементы этих матриц являются параметрами системы. Сформулированная в [31 ] задача о структурной управляемости относится к ситуации, когда пара (А, В) параметрически определена не полностью. Именно, часть элементов матриц А и В считается зафиксированными нулями, а другая часть может принимать произвольные значения из множества вещественных чисел. Фактически речь идет не о линейной системе в обычном смысле, а о семействе систем, имеющих фиксированную структуру 202
размещения части нулевых параметров. Входящие в это семейство системы можно рассматривать как структурно эквивалентные. Линейная система с заданной структурой размещения части нулевых параметров @, 1-шаблоном) называется структурно управляемой, если существует структурно эквивалентная ей система, управляемая в обычном смысле [23]. Обозначим отличные от фиксированных нулей неопределенные параметры системы (А, В) как переменные pit i — 1,2, ..., М. Областью значений каждой такой переменной является множество вещественных чисел Pt = R, областью параметризации структурного @, 1)-шаблона системы в целом является декартово произведение Р = Pi ® Р2 ® • • • ® Р*. которое можно рассматривать как Af-мерное линейное пространство. Задача о структурной управляемости формулируется следующим образом. Допустим, что имеются семейства линейных систем, заданные структурными шаблонами. Требуется найти необходимые и достаточные условия существования в пространстве параметров каждого семейства структурно эквивалентных систем (А, В) вектора Р = (Pi* Рч> •••> Рм)* который соответствует управляемой паре (А, В) этого семейства. В формулировке основного результата теории структурной управляемости линейных многомерных систем [34] используются понятия запрещенных форм шаблонов этих систем. Говорят, что (О, 1)-матрица L размера п X (п + т) имеет: 1-форму, если существует такая перестановочная матрица Q, для которой будет справедливо равенство ГО 0 .0 Е. = U 0] . Ь4 L8J где Lx — квадратная подматрица порядка nlt 1 <С пх < п\ 2-форму, если терм-ранг матрицы L меньше п: t — rank L < п. (Напомним, что терм-рангом @, 1)-матрицы называется максимальный порядок ее квадратной подматрицы с ненулевым перманентом, т. е. максимальное число единиц в диагоналях матрицы (см. [18]).) Теорема [34]. Линейная система структурно управляема тогда и только тогда, когда ее структурный шаблон не имеет 1-, 2-форм. Модификация данной задачи, которую мы будем называть задачей о структурной управляемости систем с параметрическими связями, состоит в том, что на область параметризации систем налагаются ограничения: в качестве векторов р могут быть выбраны не любые векторы из Р, а только векторы некоторого заданного подпространства & сг р. Иначе говоря, выбор значений 203
Рис. 6.7. Этапы построения модели: / — определение моделируемой проблемной ситуации; // —разработка предмодельных форм представления; /// — технологический переход от предмодельного представления к модели; IV — модель неопределенных параметров системы (в самом общем случае — всех ее параметров) осуществляется не независимо, а в соответствии с некоторым заданным отношением & с= рг ® р2 ® . •. ® рМ9 М < /г (л + т), между возможными значениями этих параметров. Данное отношение и есть то, что мы понимаем под параметрической связью. В дальнейшем предполагается, что М = п {п + т), а пространство Р = R^ отождествляется с линейным конечномерным пространством систем, образованных всевозможными парами матриц (А, В) указанных выше размеров. Сложность задачи о структурной управляемости систем с параметрическими связями во многом определяется видом этих связей, а практически еще и тем способом, который используется для описания вводимых ограничений на область параметризации систем. Вопрос о том, каким образом задаются параметрические связи, важен не только по формальным соображениям, учет которых безусловно необходим при разработке подходов к решению обсуждаемой задачи. Этот вопрос не менее важен и содержательно, поскольку задача о структурной управляемости рассматривается нами в тесной связи с проблематикой стратификации систем. Поэтому естественно сделать предположение, что параметры системы (А, В) являются вторичными по отношению к реальному моделируемому процессу. 2fro может, например, означать, что имеющиеся количественные характеристики реального процесса проявляются в параметрах модели F.5) или что параметры модели F.5) вычисляются на основе количественных характеристик реального процесса в ходе построения его модели. Иными словами, можно считать, что налагаемые на область параметризации системы (А, В) ограничения обусловлены организацией предмодельных представлений об исследуемой ситуации, а также вычислительными особенностями того технологического процесса моделирования, во время которого осуществляется переход от предмодельных представлений к системе. Сказанное иллюстрирует рис. 6.7. Условимся, что количественные характеристики моделируемого процесса описываются в предмодельных структурах числовым вектором X = (кг, Х2, ..., Х$)> ^t € Rt а способы формирования моделей систем из предмодельных структур задаются в виде функций параметризации Т: R5 ->- Р или Т: X -> р, которые 204
Рис. 6.8. Схема включений классов с параметрическими связями: 1 — 9 — классы систем предполагаются известными. Примем данный способ параметризации систем 9* = Т (R5) как основной для последующего обсуждения. Основываясь на этом способе параметризации, выполним далее естественную классификацию систем с параметрическими связями и наметим некоторые подходы к решению рассматриваемой задачи. Введем некоторые необходимые нам дополнительные понятия. Линейной системой 9 с параметрическими связями типа Т будем называть семейство Т: А -> Р. Вектор-индексы X ? А назовем векторами параметров системы 9*у а элементы семейства 9 — параметризациями 9. Множество индексов А семейства & полагается частью линейного конечномерного пространства Rs (обычно А = Rs) и называется областью (пространством) параметров системы 9. Множество & f\ contr называется множеством управляемых параметризаций системы 9, а множество Г (contr) — множеством точек управляемости &. Выделим следующие классы систем с параметрическими связями (рис. 6.8): С1Х — системы общего вида; С12 — системы с непрерывными связями (Т — непрерывная функция параметризации); С/3 — системы со связями типа сплайнов (Т — кусочно-полиномиальная непрерывная функция); С/4 — системы с гладкими связями (Т — дифференцируемая функция); С1Ь — системы с полиномиальными связями (Т — полиномиальная функция); С1в — системы с кусочно-аффинными связями (Т — кусочно- аффинное отображение); С17 — системы с аффинными связями (Т — аффинное отображение); С18 — системы с линейными связями (Т — линейная функция); С/9 — системы без связей (Т — линейное отображение со свойством: Tt (kl9 X2> •••> ^s) = а^Ь ai = О' О- Именно системы класса С19 рассматривались в работах [30, 31, 32, 33, 34]. Кроме приведенной нами классификации ограничений, налагаемых на значения элементов матриц А и В, также необходимо учитывать естественно возникающие в реальных ситуациях ограничения на диапазоны изменений этих значений. 205
Для любой системы & с параметрическими связями типа Т можно рассматривать ее подсистемы &' ^ ^\ тип которых задается с помощью различного рода ограничений, налагаемых на Т. Например: &' = Т (М), где М — подмножество Л; &' = = 9> П 3), где ?Z> — подмножество Р. Подсистема &' является системой с параметрическими связями типа Т' = Т\М\ где М' = Подсистемы с параметрическими связями типа & = <?0 {] 3), где 9*0 g С1и ?Z> — подмножество Р, можно рассматривать для систем каждого из введенных нами классов. В результате будут построены классы Cli(?D)t i = 1, 2, ..., 9; ?Z>^P. Очевидно, что Clt = Clt (Р). Представляет интерес изучение классов Clt (Я)), определяемых ограниченными множествами ?Z> (при этом Р трактуется как евклидово пространство). В дальнейшем основное внимание уделяется исследованию структурной управляемости систем классов С1Ь {ЗУ) и, прежде всего, С1Ь. Наметим сначала некоторые возможные направления такого исследования. Рассмотрим систему 9* с полиномиальными параметрическими связями. Это семейство можно описать парой полиномиальных матриц (Я-матриц) А (к) и В (к), элементы которых суть многочлены из кольца R (к1у къ ..., ks). Такой способ задания системы & ? С1Ь позволяет предложить следующий прямой путь решения задачи о структурной управляемости систем класса С1Ъ. Используя алгебру Х-матриц, можно в общем виде сконструировать на основе пары матриц А (к), В (к) Я-матрицу управляемости (по Калману [11]) системы 9>\ Ж = [В {к), А (к) В (к), .. ., А"'1 (к) В (к)]. Вопрос о структурной управляемости системы !Р при этом подходе сводится к вопросу об исследовании общего ранга [2] ^-матрицы Жу т. е. к проверке равенства g — rank Ж {к) = п. Таким образом, располагая некоторым конструктивным алгоритмом анализа общего ранга полиномиальных матриц, можно получить решение задачи о структурной управляемости систем класса С1Ь. Рассмотрим более простой (с точки зрения описания семейств & ^ Р) случай систем с линейными параметрическими связями. Ненулевые элементы матриц А (к), В (к) здесь будут заданы линейными формами pi — cnki + ci2k2 + ..¦ + ciSks, ctj ? R. Эти формы в совокупности определяют линейное отображение Т: R5 ->• -^-Р с матрицей (с^) размера п (п + гп) X S. Ясно, что при этом & = span {С\, С2, ..., С5}, где Cj обозначает /-й столбец (си). Без потери общности можно считать, что S <С М и, следовательно, допускать вложение области ^-значений (пространства R5) в пространство Р = RM. Это означает, что вместо функции параметризации Т можно использовать линейный оператор С: Р -*• Р такой, что imC = & (матрица оператора С должна быть 206
составлена из столбцов Cj (/ = 1 ?,..., S)). Такая замена функций параметризации позволяет наметить еще один возможный подход к решению задачи о структурной управляемости систем с линейными параметрическими связями: поиск условий структурной управляемости, формулируемых через свойства линейного оператора С. Наконец, можно указать и на такой подход к решению рассматриваемой задачи, когда поиск условий структурной управляемости систем осуществляется непосредственно в их предмодель- ных структурах. Этот план задачи будет подробно рассмотрен в пп. 6.1.4—6.1.6. 6.1.3. Структурная управляемость систем с полиномиальными параметрическими связями Воспользуемся первым из намеченных выше подходов к решению данной задачи. Теорема 6.1 [1]. Множество управляемых параметризаций структурно управляемой системы 9 класса С1Ъ имеет полную меру в ^, индуцированную лебеговой мерой в Rs. Символически 9 ? С1Ь & &> П contr ф 0 =>• mess (Rs \ Г" (contr)) = О или эквивалентным образом: если отображение Т полиномиально! то [Т~{ (Р \ contr) = Rs) V (mess T~l (P \ contr) = 0). Доказательство. Пусть & f] contr Ф 0. Обозначим р ? ? & П contr, а через Ж — матрицу Калмана системы $Р\ поскольку & ? С1Ьу элементы Ж — полиномы S переменных Хи ^2, ...» Xs (эти полиномы являются координатами отображения Г). Полагая / > 0, ц ? R5, X = (К . . ., **), ^о € 71 (р), выполним подстановку X (t) = Х0 -f- /u в матрице ^ (X). Если Jf (X) — минор, у которого (в силу условия р ? contr) det Jf (Х0) Ф 0, то после подстановки получим многочлен одной переменной det JF (X (t)) = К @ с условием К @) ^ 0. Этот многочлен имеет конечное число корней; следовательно, если /(и) — луч, задаваемый подстановкой, то card (/ (u)\ T~l (contr)) < oo (на самом деле можно написать равномерную по и оценку: deg det JC). Отсюда mes5 (/ (u)\T_I (contr)) = 0 и, значит, mess (R5 \ T (contr)) = J mess (/ (u) \ T~x (contr)) d\x = 0 (здесь du означает интегрирование в сферических S-мерных координатах). Следствие 6.1. Если система класса С1Ь структурно управляема, то множество Т~1 (contr) всюду плотно в Rs. 207
Доказательство. Если Т~х (contr) Ф R5, то R^X^ (contr) — Непустое открытое множество и, следовательно, содержит не- Юторый открытый шар v. Так как mes5 и>0и v с Rs \T~l (contr) с Rs\ Г~! (contr), то mes5 (RS\T,~1 (contr)) > 0 вопреки теореме 6.1. Следствие 6.2. Если & ? С/б и iZ) — произвольная окрестность в Р, то структурная управляемость $Р {] ?Z> эквивалентна структурной управляемости $Р. Доказательство. Пусть 9* (] contr Ф 0. Так как & cz С1Ьу то по следствию 6.1 множество Г" (contr) всюду плотно в R5. Поскольку Т непрерывно, Г (ЗУ) — окрестность в R5 и, следовательно, содержит хотя бы одну точку к всюду плотного множества. Отсюда Т (к) ? contr и, значит, & (] 3) структурно управляема. Наоборот, из структурной управляемости ZP (] к) следует структурная управляемость & в силу соотношения & П @> ^ ^- Замечание 6.1. Если 2D — окрестность, то признаки структурной управляемости С1Ъ B)) совпадают с признаками для С1Ь. Следствие 6.3. Пусть & ? С/б. Если к — случайный вектор в R5, то Р (Т (к) ? contr) > 0 =>• 9> П contr =^ 0; если X имеет абсолютно непрерывную компоненту, то 9> П contr Ф0=>Р(Т(к)? contr) > 0; если распределение X абсолютно непрерывно (имеет плотность), то & П contr ф 0 => Р (Г (Я,) 6 contr) = 1. Доказательство. Первое утверждение очевидно. Второе и третье вытекают из теоремы 6.1 и соотношения Р(Т(^К contr) > J g(x)dxt Г~х (contr) где g — плотность абсолютно непрерывной компоненты распределения к. Замечание 6.2. Следствие 6.3 не вытекает из утверждения о плотности Г (contr) (следствие 6.1). Мы существенным образом использовали более сильное утверждение — теорему 6.1. Перейдем к исследованию условий структурной управляемости систем класса С7б. Из определения структурной управляемости следует, что & П contr = 0 <=> V Ь (rank Ж (к) < п) <=j> g — rank Ж (к) < п. Пусть F — поле вещественных рациональных функций S переменных, Ж? — матрица Ж> элементы которой трактуются как элементы поля F, rankF — ранг матрицы с элементами из F над полем F. Тогда справедлива следующая теорема. 208
Теорема 6.2. Если &> ? С/б, то & f] contr ф 0 <=> гапкг JC? = п. Доказательство опирается на две леммы. Лемма 6.1. Если 41 — квадратная (п X л)-матрица с элементами из F, то g — rank#/ = n<=> rankF Ш = л. Доказательство. Пусть g — rank <U <п. Тогда v^ (det ^/ (X) = = 0). Но det^i — полином, и его тождественное равенство нулю равносильно равенству нулю его коэффициентов, т. е. detp °и = 0, 0 — нулевой элемент F. Отсюда следует [16] линейная зависимость над F столбцов °U как векторов из F", т. е. гапкк °U < п. Остается заметить, что проведенные нами рассуждения обратимы. Лемма 6.2. g — rank <U = rank*<2/. Доказательство, Пусть g — rank °U = /n, тогда найдется минор JC матрицы °U и вектор kf для которых det JC (k) ф 0. Кроме того, не существует минор большего порядка с указанным свойством. По построению g — rank JC = m, а по лемме 6.1 rankF ЛР = = т. Для миноров матрицы Я1 порядка k>m имеют место соотношения g — rank JC < k и rankF Jf < k> следовательно, rankF °U — m. Завершим теперь доказательство теоремы 6.2. Из определения структурной управляемости и критерия Кал- мана следует, что & П contr ф 0 <=> g — rank Ж = п, но в силу леммы 6.2 правая часть может быть записана в виде rankF JC? = п. Пример 6.4. Рассмотрим систему, задаваемую матрицами: А = 0 в = Полиномиальная матрица JLV имеет вид 1 Ь, •А.^2 Приведение jfy-fr треугольному виду в поле F дает следующий результат; U Кл Ai —Л1Л9 откуда видно» что rank JC? = 2 и, следовательно, по теореме 6.2 исходная система структурно управляема. Замечание 6.3. На основании схемы взаимных включений классов Clt (/=1,2,..,, 9) можно заключить, что условие из теоремы 6.2 применимо к системам классов С77, С/8, С19. Обобщим 209
это условие структурной управляемости на системы класса С/3 и, следовательно, класса С7в. Теорема 6.3. Пусть 9>— система класса С/3, тогда соответствующее отображение Т имеет вид Т(Ц= Sie(/)(^)^(X), ^Rs, /=1 где \L — индикатор множества L\ G (/) — множества, образующие разбиение Rs; Tj — полиномиальные отображения из Rs в Р. Если у/- mess G (/) > 0» то к &> П contr ф 0 <=> П (rankF *^f, / — л) = 0. Здесь ^f, / — матрица Калмана, соответствующая отображению Tj. Доказательство. Пусть 9> П contr Ф0. Тогда существует Х0, для которого Г (К0) ? contr. Отсюда для некоторого / ? A, 2, ..., ?} 7;- (Я0) ? contr и, значит, система 3>i = Tj (R5) структурно управляема. По теореме 6.2 rankF ^?f,j = л, откуда rankp ^f,i — n = 0 и, следовательно, k П (rankp ^f, / — n) = 0. Обратно: пусть произведение из формулировки теоремы равно нулю. Тогда для некоторого / ? {1, 2, ..., k) rank ^f,/ = я> и по теореме 6.2 система &) структурно управляема. Если бы Т]1 (contr) f] G (/) = 0, то mess(Rs\T]1 (contr)) =^ 0 вопреки теореме 6.1. Это означает, что найдется вектор Х0 ? Rs со свойствами: Tj(h)? contr, но для X g G (/) справедливо равенство 7^ (к) = 7* (X.), откуда следует структурная управляемость 3*. Замечание 6.4. Теорема 6.3 еще раз демонстрирует полезность теоремы 6.1. Отметим, что условие положительности мер G (/) использовано лишь при доказательстве достаточности признака структурной управляемости, необходимость справедлива и без этого предположения. Обратимся теперь к вопросу о конструктивных возможностях проверки условий теоремы 6.2 и 6.3. Для этого достаточно описать алгоритм вычисления rankF^F. С этой целью введем ряд вспомогательных понятий. Определение. Гиперматрицей размера п X m X р назовем трехмерный массив действительных чисел А = (а?у), где i ? {1, 210
2, ..., n}y j ? {1, 2, ..., m}, ? ? {1, 2> ••• > />}• Следующие массивы будем называть сечениями гиперматрицы А: a*i = \aa)i=u Д;* = (^f/J/=i, ai} = (al7^=1, * / ft\m p ¦ * /ft \n p . «i* — \aLj)j=\> ft=l> "*/ = \Uii)i=\> k=U a** = [aifji^iy /=1, *=1 = A; a** = ^,7^=1, /==1. Для любого x ? Rs положим | x | = *! + *2 + ••• + xs- Определение. Пусть <Р ? C/5, А и В — соответствующие полиномиальные матрицы, причем М*ь .-.,XS)= I] a,/(u)X?e ...^5; &/(*. ,Xs)= E P(/(u)X?« ...X|s; U( H н = (u|u t(zt)s & |u|<d}, dez^; Я = CL-j-si \|> — единственный изоморфизм алгебры (Z+, О в алгебру f(ZoM, <"|, где < — отношение порядка, задаваемое Iv формулами | и| u<v; I u I =-^ | v I & u < v =^ u < v; < — j l J l отношение естественного лексикографического порядка. Гиперматрицами системы & назовем гиперматрицы А = а*,, В = Ь\ч размеров п X п х 2р, п X т X 2р соответственно, построенные по коэффициентам atj (u), E^ (и) следующим образом: aj/ = < *// = a,/(\|)(fc)) при 1</г<С</+5; 1 при /г = р + 1; О в остальных случаях; ' MW) при i<*<cf+5; 1 при k = р + 1; О в остальных случаях. Пример 6.5. Для системы из примера 6.4: 5 = 2, d = 2, л = 2, /л = 1, р= Q= 15. Упорядочение наборов и~ («ь ы2), определяемое изоморфизмом i|>, выглядит так: (@,0), @,1), A,0), @,2), A,1), B,1), @,3), A,2), B,1), C,0), ...). Выпишем сечения а*#: 1 0 о о "** 0 01 0 0J 0 0 _0 0 2 ' а** == "О 01 Г0 Г Lo о 1 1 211
ДЛЯ 0СТ84ГЫЙЭД Д "••"[о о]* Аналогичным образом строятся сечения Ь*ф» С гиперматрицами А размеров п X т X 2р можно биективно связать функциональные матрицы. Определение, Функциональной матрицей S переменных, ассоциированной с гиперматрицей А размеров п X т X 2ру назовем матрицу Af размеров п X т с элементами йц (F) из поля F, задаваемыми с помощью формул: u€ H и?Н Cdn+Si Ф = "Ф • Кроме того, в дальнейшем мы воспользуемся связью между гиперматрицами и матрицами с векторными элементами. Определение. Векторной матрицей Ак гиперматрицы А размеров п X т X 2р назовем матрицу размеров п X т с элементами из R2p вида ац (К) = яГу- Определим конструктивную программу последующих действий. Задавая определенным образом операции на R2p, превратим это пространство в поле К, изоморфное F. Построив в явном виде соответствия А <?*.%, (здесь А — гиперматрица) и воспользовавшись теоремами 6.2 и 6-3, сформулируем условия структурной управляемости в терминах некоторых операций над элементами гиперматриц системы. Эти операции, в свою очередь, имеют конструктивный характер, что и оправдывает наш план действий. Определение. Введем операцию умножения ® на Rp по правилу: если X, ix ? Rp, то X ® ix = v = (vb ..., vp), где Ф (О-И (*)«=* (/) Поскольку построение изоморфизма \|> зависит от выбора S ? Z+, то операция ® также зависит от фиксированного значения 5. 212 Р =
Определение. Через К0 обозначим алгебру векторов (Я, jli) из R2p (р ? Z+; Я, ju, ? Rp, ja ^ 0) с операциями вида: (Яь 1*0 ф (к2> \х2) = (Ях ® ца + Я2 ® цъ (Л! ® ца); (Я1э Hi) * (Ьа, цв) = (Хг ® Ьа> щ ® |ла); если Я^О, ja^=0, то (Я, ja) = (ja, X). Определение. Пусть v — отношение эквивалентности на Ко» определяемое следующим образом: (к1у |Xl) У (К Цг) <=> Э* ^(Х2 = СХХ & \Х2 = фХ). Положим К = К</у« Определение. Обозначим ^т — кольцо действительных многочленов S переменных, порожденное одночленами степени выше т> пт — отношение эквивалентности на кольце & всех действительных многочленов S переменных, задаваемых правилом: Лемма 6.3. Алгебра W = (R*, + , ®) является кольцом, изоморфным S^lndn\ алгебра К = (R2p, ф, *, П~*) есть поле, изоморфное полю F = 57л d„ (т. е. полю частных кольца &lndt). Доказательство. Введем для каждого а ? Rp многочлен Ж (a) =f(Xu ...Д8)= ? «Д?1 • • ¦ №> рассматриваемый как отображение в #7aidn. Из определения операции умножения ®, построения \|) и соотношения р — Cja+s вытекает, что отображение Ж биективно и обладает свойствами: Ж (а + ф) = Ж (а) = Ж ($)\ Ж (а ® Р) = Ж (а) Ж (Р), откуда следует первая часть утверждения леммы. Для доказательства второй части достаточно заметить, что искомым изоморфизмом является отображение # = («, & = Ж (а)/Ж (?). Замечание 6.5. Нулем и единицей кольца W являются соответственно векторы 0w = @, 0, ..., 0) и lw = A, 0, ..., 0). Нулем и единицей поля К являются классы эквивалентности по у, определяемые представителями 0к = @w; lw), 1к = 0w, 'w)« Замечание 6.6. Отображение X ->- (Я, lw) является алгебраическим вложением W в К0; отображение Я -^ (Я, lw) представляет собой алгебраическое вложение W в К. Замечание 6.7. Кольцо R вкладывается в W отображением с -> (с, 0, .... 0). Предыдущие определения позволяют ввести необходимые нам операции над гиперматрицами. 213
Определение. Пусть М = т\% и L = /*# — две гиперматрицы размером т X п X k\ суммой М и L назовем гиперматрицу с*,, где сц = тц + /</. Определение. Пусть М = m*#, L = 1\щ — две гиперматрицы размеров nXmx2pwmxqx2p соответственно; произведением М и L назовем гиперматрицу с\ч размеров п X q X 2ру где m С* = ? К * /f/). Замечание 6.8. В последнем определении матрицы пгЪ и /?/ рассматриваются как элементы поля К0 (или как представители элементов поля К). Если 2В : А -*• Ак — отображение, сопоставляющее гиперматрице А ассоциированную векторную матрицу (см. определение Ак), то ML = 3№-1Btt(M)9Jl(L)). Определение. Пусть А — гиперматрица размеров п X m X 2р. Рангом А назовем число rank A = rank КЯЙ (А). Замечание 6.9. Очевидно, что rank А <; min (л, т). Наряду с понятием ранга для гиперматрицы размеров п X п X 2р можно ввести понятие определителя det A = detK 2В (А). Его значение является 2/7-мерным вектором. Тогда rank A — это наибольшее ky для которого найдется минор А размера k X k X 2р с определителем, отличным от нулевого элемента поля К. Замечание 6.10. Нетрудно видеть, что для вычисления rank A может быть использована стандартная процедура приведения к треугольному виду, основанная на специальных правилах вычисления операций ®, *, а также деления в К. Лемма 6.4. Пусть А и В — гиперматрицы размера п X п X 2р> п X т X 2р соответственно, и Ж? =[ВР, AFBF, ..., АГ'Вр], ЛГ = [В, АВ, ..., АЛ~!В], тогда rankF^F = rank Ж. Доказательство. Утверждение леммы является непосредственным следствием изоморфизма К и F (лемма 6,3), а также определения ранга гиперматрицы. Теперь можно сформулировать конструктивную версию теоремы 6.2. Теорема 6.4. Пусть & ? С/5, п — порядок системы ^, S — число переменных отображения Г, р = Cdn+s> d — максимальная степень полиномов, (А, В) — соответствующая пара гиперматриц. Тогда 9 П contr Ф 0 <=> rank Ж = п. 214
Доказательство. Достаточно заметить, что по построению Mf степени всех соответствующих многочленов не выше р. Поэтому утверждение теоремы вытекает из теоремы 6.2 и леммы 6.4. В дальнейшем нам понадобится один факт, обусловленный следствием 6.2 из теоремы 6.1. Лемма преобразования. Если ^ ^ С1ь и g — гомеоморфизм Р на себя, то структурная управляемость &* эквивалентна структурной управляемости системы &' — g ($P). Доказательство. Обозначим Н = g'1 (contr). Это множество открыто в Р. По следствию 6.2 неравенство & П contr Ф 0 равносильно неравенству (&> f\ H) [\ contr ^0и, следовательно, влечет g (&* [) Н) Ф 0. Последнее, в частности, означает, что g(P П H)czg(P) П g(H) = g{$>) П contrФ0. Полученное в виде теоремы 6.4 решение задачи оценки структурной управляемости систем с полиномиальными параметрическими связями обеспечивает в принципе и оценку структурной управляемости джейфов. Однако вопрос о такой оценке, которая могла бы быть ориентирована непосредственно на структуру сетевых диаграмм, остается открытым. Поэтому дальнейшее исследование структурной управляемости джейфов носит уже графо- теоретический характер. 6.1.4. Особые формы сетевых диаграмм. Нормальные диаграммы Полученные в [31, 34] результаты можно рассматривать как нормативные образцы искомого графотеоретического критерия структурной управляемости джейфов. Определим две формы диаграмм, любые параметризации которых имеют неуправляемые системы потоков. Так как речь идет об управляемости, условимся для простоты опускать ту часть реляции потоковой сети, которая определяет выходы джейфа. Будем рассматривать параметризации сетевых диаграмм вида F - [А, В]. Определение (вариант 1). Если при любой параметризации сетевой диаграммы: 1) существует перестановочная матрица Q, для которой выполняется равенство rQ о- .0 Е. = К 0 1 _ А2 А3 J где А = AJ; В = В; Ах — квадратная (пг X я^-матрица A «< < пх < п)у будем говорить, что диаграмма имеет Г-форму; 2) ранг [А, В] меньше я, будем говорить, что диаграмма имеет 2'-форму. 215
Ясно, что структурно управляемый джейф не может иметь диаграмму указанных форм, и, следовательно, отсутствие этих форм у диаграмм есть необходимое условие структурной управляемости организуемых на ней динамических сетей с линейными производящими функциями. Хотя определение данного варианта «запрещенных фигур» сетевых диаграмм имеет те же содержательные основания, что и введенные в [34 ] определения форм, оно (в отличие от последних) не обладает конструктивностью. Для того чтобы установить, находится ли некоторая диаграмма в определенной форме, нужно либо рассмотреть все ее возможные параметризации, либо попытаться найти для этих форм более эффективный способ идентификации. Первое, естественно, неприемлемо, второе — противоречит самому принципу выделения особых структур потоковых диаграмм в качестве рабочего критерия при характеризации структурно управляемых джейфов. Принимая эти соображения, введем несколько иное определение рассматриваемых форм. Для того чтобы обосновать его правомерность, нам понадобится следующее утверждение. Обозначим Ау = О А J О Ву = Лемма потоков. Система потоков (AJ, В) управляема тогда и только тогда, когда управляема пара (Ау, Ву). Доказательство. Рассмотрим матрицу К размеров (т + л) X X 2пр, составленную из блоков: К, =АуВу, / = 1, 2, ... ,2л. Условимся, что в начале К расположены (все) блоки с четными индексами. Кроме того, если i четно, будем полагать, что k — = 0,5/ — 1, иначе k = 0,5 (i — 1). Блоки матрицы К имеют вид Ki = (AJ)A 0 о (M)*J В, { = 1, 3, ... , Bл— 1); JB, i = 2, 4, ... , Bл). Ясно, что число таких блоков не меньше лу = т + п и, следовательно, с точностью до порядка блоков к = [ю, А7+аву А2/-'вЛ, >де К/ — матрица управляемости пары (Ау, Ву). Учитывая равенство F.4), запишем 0 К/ JKk 0 216 K = [jKv oJ' F.6)
и, значит, Ку имеет максимальный ранг rij тогда и только тогда, когда пара (AJ, В) управляема. Отметим, что в доказательстве леммы использовалась только полнота ранга J. Все рассуждения доказательства сохраняют силу и при замене матрицы инциденций J на произвольную вещественную матрицу тех же размеров и того же ранга» Мы воспользуемся этим фактом в п. 6.1.6. Введем @, 1)-матрицу I, совпадающую с точностью до знаков с матрицей инциденций J диаграммы 2?> = (JC, $), и составим из блоков I, R матрицу -Г, ."]• Условимся называть матрицу L матрицей смежностей сетевой диаграммы SD. Определение (вариант 2). Если матрица смежностей сетевой диаграммы имеет 1-, 2-форму, определенную в [34], будем говорить, что в той же самой форме находится и сама эта диаграмма. Ясно, что данный вариант определения 1-, 2-форм сетевых диаграмм как «запрещенных фигур» структур управляемых джей- фов более удовлетворителен. В то же время оказывается, что условия 2-го варианта определения равносильны их исходным формулировкам в 1-м варианте. Рассмотрим определения первых форм. Наличие у диаграммы Г-формы означает, что при любой ее параметризации матрица управляемости Kv системы потоков имеет нулевую строку (строки). Аналогично наличие у диаграммы 1-формы означает, что при любой параметризации F = [А, В ] нулевую строку имеет матрица К/ пары (AJy By). Обращаясь к F.4) и F.6) и определению матрицы смежностей диаграмм, убеждаемся в равносильности 2-го и 1-го вариантов определения первых форм сетевых диаграмм. Чтобы убедиться в равносильности условий, фигурирующих в определениях вторых форм, достаточно заметить, что rank [A/, By]— rank [А, В] + т> и проверить равносильность равенств rank [А, В] = л; rank[AJ, В] = л. Таким образом мы подошли н необходимому условию структурной управляемости джейфов. Это условие запрещает 1-, 2-формы для диаграмм, параметризуемых в сети с управляемыми системами потоков. Отметим, что вопросы структурной управляемости потоков и уровней джейфов, имеющие много общего, полностью неравнозначны. Например, условие 2-формы для системы уровней является более тонким. Рассмотрим равенство rank [JA, JB] = rank JF = т. F.7) 217
Оно выполняется только тогда, когда rank F >- m, т. е. когда в матрице F есть ненулевые миноры порядка т. Ясно, однако, что не всякая невырожденная подматрица F порядка т может обеспечить выполнение F.7). Это равенство справедливо, если в F имеется ненулевой минор порядка пг> строки которого соответствуют линейно независимым столбцам матрицы J. Таким образом, если диаграмма 2) — (JC, 91) параметризуется в джейф с управляемой системой уровней, то двудольный граф 91 имеет паросочетание, сопоставляющее пг столбцам матрицы R остов потоковой сети диаграммы. Введем определение еще одной формы сетевых диаграмм, которую назовем нулевой @-формой). Эта форма соответствует одному из трех необходимых и достаточных условий «сильной структурной управляемости» (& ^ contr) систем класса С79. Она определяется нами в обобщенном и переформулированном виде по сравнению с условиями теоремы о критерии сильной структурной управляемости, доказанной в [33]. Определение. Сетевая диаграмма с матрицей смежностей L имеет 0-форму, если существует такая перестановочная матрица Q, для которой выполняется равенство: Q L 4 [О Е где Lx — ненулевая квадратная (под)матрица порядка пх\ L0 — (пг х я2)-матрица, все ненулевые столбцы которой имеют не менее двух отличных от нуля элементов; 1 < п1 < т + п\ п2 = = пг + п + р — пг. Условие нулевой формы будет играть в анализе структурной управляемости джейфов вспомогательную, но важную роль. Лемма нулевой формы. Если сетевая диаграмма не имеет О, 1-форм и ранг любой матрицы F, терм-граф которой совпадает с реляцией диаграммы, полон (равен л), то все указанные параметризации F этой диаграммы организуют на ней джейфы с управляемыми системами потоков. Доказательство проводится по схеме рассуждений, приведенных в [33], и опирается на формулировку критерия управляемости линейных систем в виде следующего традиционного для работ по структурной управляемости предложения (см. также [23]). Лемма Хаутуса. Пара (А, В), в которой А ? RaXn, В ? ? RnXPf является управляемой тогда и только тогда, когда для любого комплексного \л выполняется равенство rank [А — цЕ, В] = п. Иначе говоря, пара (А, В) неуправляема тогда и только тогда* когда существует такое комплексное число \х и ненулевой век- 218 Li L0 L2 L8 F.8)
тор z размера (я X 1), что одновременно выполняется пара равенств zTA = \iz\ zTB - 0. Доказательство (леммы нулевой формы). Учитывая лемму Хаутуса, выделим две требующие рассмотрения ситуации: а) \л = = 0; б) |х ф 0. Пусть F— [А, В] — произвольная матрица указанного в условии леммы Хаутуса вида и пусть это условие выполняется. Предположим, что пара (AJ, В) неуправляема, т. е. (в соответствии с леммой потоков) неуправляемой является пара (Ау, Ву). Такое предположение обусловливает (по лемме Хаутуса) существование числа |л и ненулевого вектора z, для которых выполняется равенство zT[Ay, Ву] = |>т, 0]. F.9) В ситуации а это равенство, очевидно, невозможно, так как rank [Ау, By] = т + п = п3. Обсудим ситуацию б (ja Ф 0). Будем считать, что вектор z размера я у X 1 имеет пх отличных от нуля элементов, 1 <; пх < яу. Обозначим Q перестановочную матрицу порядка /iy, приводящую zT к виду zTQ = [zl, zj], где z] — (под)вектор размера 1 X nv включающий все ненулевые (и только такие) элементы вектора z; zj — строка длины я0 = — tij — nlt состоящая из 0. Равенство F.9) равносильно в смысле управляемости пары (Ay, By) равенству "О 0 (zTQ)QT[Ay, By] 0 Е или, если обозначить Сх С0 -QT[Ay, В, равносильно паре равенств zjCi = }azI, zlC0 = [rztQ, 0] Q 0 .0 E 0. F.10) Рассмотрим эти равенства при трех различных вариантах значений пг. 1. Пусть пх = !. В этом варианте первое из равенств F.10) является равенством произведений чисел Zi> Сг и fi^i Ф 0, откуда следует, что Сх Ф 0, но Сг — это диагональный элемент матрицы Ау, следовательно, при п1 = 1 равенство F.9) невозможно. 2. Пусть пх = Пу. Этот вариант соответствует Q = Е, т. е. такой ситуации, в которой выполняется равенство zTBy = 0. 219
Рис. 6.9. Потоковая сеть модели мировой динамики: 1 — население; 2 — капиталовложения (фонды); 3 — загрязнение; 4 — природные ресурсы; 5 — часть фондов в сельском хозяйстве 4 ° Так как все элементы вектора z отличаются от нуля, последнее равенство возможно лишь тогда, когда в каждом из ч столбцов В (естественно считать, что в \}5 В нет нулевых столбцов) имеется не менее двух отличных от нуля элементов. Однако данное требование противоречит условию леммы, в соответствии с которым предполагается отсутствие у рассматриваемой сетевой диаграммы 0-формы. Значит, при пг = яу равенство F.9) невозможно. 3. Пусть 1 < пг < tij. Выполнение первого равенства в F.10) означает, что Сх = О*"*. Второе равенство может быть выполнено либо при наличии в каждом ненулевом столбце матрицы С0 не менее двух неравных нулю элементов, либо при условии С0 = 0niXn°. Оба эти требования противоречат условию доказываемой леммы: первое — отсутствию у рассматриваемой сетевой диаграммы 0-формы, второе — отсутствию у нее 1-формы. Таким образом, и в случае 1 < пг < rij равенство F.9) является невозможным. Итак, наше исходное предположение о неуправляемости пары (AJ, В) приводит к выводам, противоречащим условию леммы. Отсюда можно заключить, что рассматриваемая пара, по лемме Хаутуса, управляема. - В том случае, когда выполняется условие леммы 0-формы, джейф является «сильно структурно управляемым»: любая матрица F, терм-граф которой совпадает с реляцией сетевой диаграммы, удовлетворяющей условию леммы 0-формы, параметризует эту диаграмму в джейф с управляемой системой потоков. Таким образом, условие леммы 0-формы есть («сильное») достаточное условие структурной управляемости сетей с линейными производящими функциями. Наша задача заключается в поиске ответа на вопрос: является ли критерий структурной управляемости джейфов некоторой комбинацией условий 0, 1, 2-форм сетевых диаграмм или имеются дополнительные, более тонкие особенности графовой структуры диаграмм, не отраженные в данных условиях, но существенные для структурной управляемости сетей с линейными производящими функциями? Прежде чем перейти к решению поставленного вопроса, убедимся в том, что между условиями определений 1-, 2-форм сетевых диаграмм существует связь. С этой целью рассмотрим более внимательно потоковые сети и укажем на ряд особенностей их структур. В реальных задачах моделирования потоковая сеть диаграмм системной динамики является соединением (через 0) нескольких 220
12 3' 4 Рис. 6.10. Сеть потоков урбанизированной территории: сектор предпринимательской деятельности: / — новые предприятия; 2 — развитые предприятия; 3 — предприятия, пришедшие в упадок; сектор населения: 4 — неполностью занятые; 5 — занятые; 6 — менеджеры-профессионалы; сектор жилого фонда: 7 — дешевый жилой фонд; 8 — доходный жилой фонд; 9 — сверхдоходный жилой фонд 9 8 7 6 сетей разнородных ингредиентов модели. Например, при описании динамики производственных систем обычно выделяют шесть базовых ингредиентов, каждому из которых соответствует своя «базовая сеть» [26]. Определение. Диаграмма 3), сеть которой имеет в качестве 0 точку сочленения, называется многосекторной, а связные компоненты сети ЛР, на которые 0 разделяет сеть, — потоковыми секторами диаграммы. Такое определение сети распространяется также и на сети с кратными дугами, т. е. на потоковые мультиграфы. В качестве реальных примеров многосекторных потоковых сетей сошлемся на сети потоков модели мировой динамики (рис. 6.9 [25]) и сети потоков модели динамики развития города (рис. 6.10 [24]). Важными для исследования структурной управляемости джей- фов классами сетевых диаграмм являются диаграммы, удовлетворяющие условиям следующих определений. Определение. Диаграмма^ называется диаграммой с нормальной сетью потоков, если обе полустепени каждой вершины сети Jf отличны от нуля. Условие этого определения исключает из рассмотрения сетевые диаграммы с уровнями типа «сток», «исток», динамика которых фактически дублируется динамикой входящих (исходящих) для таких уровней потоков джейфа. Определение. Диаграмма 2) называется диаграммой с нормальной по входу реляцией, если обе доли последней имеют одинаковое число вершин. Матрица нормальной реляции квадратная, а диаграмма с такой реляцией имеет минимально необходимое для отсутствия у нее 2-формы число входов. Определение. Диаграмма 3), сеть и реляция которой нормальны, называется нормальной диаграммой. Отметим, что все потоковые секторы на рис. 6.9, 6.10 (кроме сектора природных ресурсов модели мировой динамики) имеют гамильтонов контур, а потоковая сеть динамики города является нормальной в целом. Рассмотрим 1-, 2-формы диаграммы с нормальной сетью потоков. Связаны ли они и, если да, то как? Ответ на этот вопрос дает следующее утверждение. 221
Лемма нормальности. Если терм-ранг матрицы реляции диаграммы с нормальной сетью полный (максимальный), то такая диаграмма не имеет 1-, 2-форм. Доказательство. Отсутствие у рассматриваемой диаграммы 2-формы очевидно. Для того чтобы обосновать отсутствие у нее 1-формы, предположим противное. Пусть матрица смежностей диаграммы 0 1Г I 0 "О А I 0 В 0 (R = F) F.11) Q 0 0 " Е. "Lu ^21 0 L22 0 L20 с помощыО некоторой перестановочной матрицы Q может быть приведена щ виду Lx - QTL где Lu — квадратный блок порядка nv 1 -< пх < п + т\ L22 — квадратный блок порядка п2 — п + т — пх\ L2l — блок размеров п% X пх\ L20 — блок размеров п2 х р. Введем орграф G = (?, Г), представляющий матрицу Lr Соответствие Бержа [14] этого графа определим условием: е-х ? ? Tej тогда и только тогда, когда (?, /)-элемент Ll равен-1. Обозначим: ?0 (множество входов графа G) — подмножество вершин, для которых Г_1?0 = 0> это подмножество соответствует столбцам L20; Ег — множество вершин, соответствующее строкам (столбцам) Lu; ?2 — множество вершин, соответствующее строкам (столбцам) L22. Множество дуг графа G разделяются на подмножества по условию их инцидентности двойкам подмножеств (?0, ?0), (E0i EJ, .„, (?2, ?2) — всевозможным двойкам элементов разбиения Е = Е0 U ?х U ?2. Таких (непустых) подмножеств дуг может быть выделено только четыре (Ц имеет блочную структуру). Идентифицируем эти подмножества символами блоков матрицы Lx: ¦^ll» ¦-,2l> ^22» ^20» Введенные разбиения вершин и дуг графа G (рис. 6.11) задают орграф G. Рассмотрим более внимательно его петлю Ln. Множество Ег — это подмножество вершин графа G, недостижимых из ?0. Так как достижимость всех вершин V cz ? графа G, соответствующих дугам потоковой сети диаграммы, влечет достижимость ?, то множество Ег обязательно должно включать непустое подмножество Vx a V. Ясно также, что Хг = = El\V1?>0 и Хг^ТУг_ Действительно, если бы Хг = 0 (т. е. достигалось бы X — множество вершин G, соответствующее вершинам потоковой сети диаграммы), то достигалось бы множество Vv следовательно, все вершины графа G были бы достижимыми из ?0. 222
hi Рис. 6.11. Разбиение вершин и дуг Рис. 6.12» Агрегированная структура графа 0 графа G Эти рассуждения свидетельствуют о том, что петля Iu графа G имеет в графе G агрегированную структуру, показанную на рис. 6.12, где /и, Ап — подмножества дуг G, представленные единичными элементами одноименных подматриц Iu, An матрицы I и соответственно матрицы А. Данное обстоятельство означает, что согласованной перестановкой первых пг строк и столбцов матрицы Ц, находящейся в 1-форме, ее можно привести к матрице вида L„ = О О ~L 21 -22 ^20 _J FЛ2) в той же форме. Определим, каким допустимым перестроением исходной матрицы L вида F.11) или с помощью какой перестановочной матрицы Q может быть получена матрица F.12). Очевидна результативность (и единственность) следующего двухшагового перестроения L. На первом шаге в блоках I, R матрицы L согласованной перестановкой строк и столбцов надо выделить подматрицы 1п, Ап: i ° — 1 2 3 4 1 0 0 Iu I« 2 0 0 Ii. 3 |au Aji 0 0 4 Aw 0 0 0 Bio B20 0 0 k / m-l F.13) n—k I m—l p 223
где l<k+l<n + m, n1 = k + L После чего матрица будет иметь четыре блочные строки и пять блочных столбцов. На втором шаге осуществляется одна из двух возможных перестановок блоков /1 2 3 4\ /1 2 3 4\ a==ll 3 2 4J ИЛЙ b = Vl 3 4 2J рассматриваемой матрицы, где а — перестановка блочных строк, а ь — перестановка блочных столбцов. В результате матрица Ln приобретает вид F.12). Запишем каждый из возможных результатов перестановок в виде матриц L?i и Lui 1 2 0 Il2 4 А12 0 0 Вю 0 '22 4 А22 О 2 Вго О _ О _ I a ' = mi, F.14) 0 In I» 0 Au 0 0 Аг1 А12 0 0 Агг 0 1и l22 0 В ю 0 0 В2о_ Iь 1 3 4 2 Из сравнения о F.12) следует, что 1И = 0; А12 = 0; В10 = 0. F.15) Таким образом, если матрица L находится в 1-форме, то согласованной перестановкой строк и столбцов она приводима к виду F.14), для которого справедливы равенства F.15). Рассмотрим входящие в F.13) блоки 1 и R матрицы Lj к I I / Iu lLi 0 h Au L A21 о A 22 0 B2oJ F.16) Каждая из этих @, 1)-матриц имеет полный терм-ранг, и, следовательно, в двудольных терм-графах I и R существуют паро- сочетания долей вершин, соответствующих строкам матриц, в доли вершин, соответствующие столбцам. По теореме Кёнига — Холла [14] простой граф Р = (X, Y; Г) имеет паросочетание, отобра- 224
жающее X в Y тогда и только тогда, когда для всех подмножеств XsX выполняется неравенство | ГХ | >- | X |. Этот факт позволяет утверждать, что размерности блоков 1п, Ап в F.16) должны быть связаны неравенствами к ;> / и одновременно / > к, откуда следует вывод: к — /, т. е. указанные блоки суть квадратные матрицы. Однако это противоречит условию нормальности потоковой сети диаграммы. Действительно, допустим, что с помощью перестановок строк и столбцов матрица инциденций J такой сети может быть приведена к виду к п — k J = [Jn ° L ^21 ^22 где блок Jn — квадратная матрица порядка к. Будем считать, что k > 1, и попытаемся «сократить» блок Jn, сохраняя структуру матрицы J с нулевым правым верхним блоком. С этой целью будем последовательно вычеркивать (точнее, переставлять первые k линий матрицы J, переводя часть строк «вниз», а соответствующую этим строкам часть столбцов «вправо») из блока Ju пары линий: столбец, в котором один и только один элемент отличен от нуля, и строку, в которую входит этот элемент. Данный процесс может завершиться двумя альтернативными ситуациями, для обсуждения которых нам понадобятся обозначения: X — подмножество вершин сети, соответствующее строкам квадратной подматрицы Ju; V — подмножество дуг сети, соответствующее столбцам этой подматрицы. Отметим, что 0 <? X. В первой из указанных ситуаций происходит полное сокращение матрицы Ju : X = V = 0. Оно возможно только в том случае, когда рассматриваемая сеть имеет висячие вершины (по крайней мере, одну такую вершину). Во второй ситуации процесс сокращения Jn заканчивается выделением такого непустого подмножества вершин X, для которых множество дуг V является подмножеством всех инцидентных вершинам X дуг сети. Это означает, что рассматриваемая нами сеть несвязна (по меньшей мере, имеет две компоненты связности). Таким образом, в обеих ситуациях налицо противоречие с условием доказываемой леммы. 6.1.5. Структурная управляемость одновходовых потоковых систем Рассмотрим диаграммы одновходовых джейфов, которые могут иметь управляемые системы потоков. В соответствии с определением 1-, 2-форм сетевых диаграмм необходимым условием структурной управляемости потоков является равенство t — rank R = п. F.17) '8 П/р С. В. Емельянова 225 к т — к
Рис. 6.13. Пример диаграммы на^ ордереве потоков Поскольку матрица R имеет здесь размеры п X X (т +1), то F.17) выполняется только в слу- wxi i " чае, когда п <; т + 1. ^и , Так как число дуг пото- <*) V кового графа диаграммы не меньше числа его отличных от нуля вершин (т ^ п)> то можно сделать следующий вывод: одновходовые структурно управляемые джейфы могут быть организованы только на таких сетевых диаграммах, для потоковых графов которых справедливо одно из условий: п — т или п — т + 1. Первое из этих условий соответствует диаграмме, граф потоков которой является ордеревом; второе — диаграмме с потоковой сетью, получаемой из некоторого ордерева добавлением в него еще одной дуги. Диаграммы на ордеревьях потоков. Сетевые диаграммы на орде- ревьях потоков отличаются от диаграмм других видов (в частности, от диаграмм с нормальной потоковой сетью). В этих диаграммах полнота терм-ранга реляции (отсутствие 2-формы) не гарантирует отсутствия 1-формы. Пример 6.6. Рассмотрим диаграмму на рис. 6.13, а. Граф G ее матрицы смежностей приведен на рис. 6.13, б. Этот граф—недостижимый. Очевидно, что диаграмма имеет 1-форму и одновременно не имеет 2-формы. Тем не менее диаграммы на ордеревьях потоков являются одним из наиболее важных для решения задач структурного анализа управляемости джейфов классом сетевых диаграмм. Данное заключение мотивируют следующие утверждения: любая сетевая диаграмма имеет «поддиаграмму» на (остовном) ордереве потоков; с учетом леммы преобразования систем класса С1Ь критерий структурной управляемости джейфов таких диаграмм получается непосредственной адаптацией условий теоремы Шилдса — Пирсона [34]. Теорема 6.5. Джейф с потоковой сетью в виде ордерева структурно управляем тогда и только тогда, когда его матрица реляции не имеет 1-, 2-форм. Доказательство. В силу того, что матрица инциденций ордерева потоков — квадратная (п — т) и невырожденная, очевидна эквивалентность управляемости пар (AJ, В) и (JA, JB). Но пары (JA, JB) принадлежат семейству fp ? C/8, которое можно рассматривать как гомеоморфный образ системы класса С/9 со структурным шаблоном R — матрицей реляции рассматриваемого джейфа. Указанным гомеоморфизмом является линейное отображение пространства систем на себя с блочной (квази)диагональ- 226
ч X, У -5Z. г -# Рис. 6.14. Пример сетевой диаграммы ной матрицей, составленной из (п + р ) матриц J. По лемме преобразования, структурная управляемость fp (а, значит, и ее признаки) эквивалентны структурной управляемости по Лину [31 ] систем (А, В). Нормальные одновходовые джейфы. Рассмотрим класс од- новходовых структурно управляемых джейфов, диаграммы которых удовлетворяют условию л=т+1. При этом ограничимся случаем нормальных потоковых сетей. Следствием такого ограничения является довольно радикальное сужение класса рассматриваемых сетевых диаграмм, а именно: эти диаграммы нормальны в целом и могут иметь потоковую сеть только в виде гамильтонова контура. Действительно, с одной стороны, управляемость одновходо- вого джейфа обеспечивается тем, что сеть потоков этого джейфа является ордеревом либо конструируется указанным выше способом из ордерева; с другой стороны, нормальность (диаграммы) джейфа обусловлена отсутствием висячих вершин на его сети потоков. Очевидно, что этой паре требований может одновременно удовлетворить только связный орграф, представляющий собой контур, проходящий через все вершины только по одному разу. Зафиксируем этот факт в виде следующего утверждения: матрица инциденций • одновходового нормального джейфа с управляемой системой потоков всегда приводима перестановкой строк и столбцов к каноническому виду: 1 1 —1 = [Ет, 0] - [0, Ет], где Ет — единичная матрица порядка т. Итак, ограничивая рассмотрение одновходовых управляемых джейфов случаем нормальных сетевых диаграмм, мы приходим к выводу (см. лемму нормальности), что общие необходимые условия запрещенности существования для них 1-, 2-форм сводятся к единственному условию 2-формы. Это же условие, в свою очередь, полностью обеспечивается при выполнении условия полноты терм-ранга матрицы реляции диаграммы с нормальной сетью в виде гамильтонова контура потоков. 8* 227
Рис. 6.15. Диаграмма с частичной Рис. 6.16. Орграф матрицы смежно- реляцией потоковой сети стей сетевой диаграммы Определение. Если терм-ранг реляции нормального одновхо- дового джейфа на гамильтоповом контуре потоков полон, будем называть этот джейф и его диаграмму гамильтоновыми. Возникает естественный вопрос, не является ли равенство F.17) не только необходимым, но и достаточным условием структурной управляемости одновходовых джейфов? Иначе говоря, не является ли любой одновходовый гамильтонов джейф структурно управляемым? Пример 6.7. Рассмотрим сетевую диаграмму на рис. 6.14. В матрице реляции этой диаграммы -+1 О Г 1 1 +1 .1+1 0_ знаком «+» отмечены элементы одной из диагоналей, задающих в терм-графе R максимальное паросочетание. Ясно, что t — rank R — 3. Используя только отмеченные элементы R, построим «сокращенный вариант» рассматриваемой диаграммы (рис. 6.15) с матрицей смежностей вида -С V]- 0 1 ПГ 0 1 1 1 0 0 | 0 0 1 0 1 0 0 Как следует из рис. 6.16, орграф матрицы L достижим. Выполним параметризацию R+ так, чтобы организуемый джейф имел управляемую систему потоков. Введем матрицу [А, &] —diag(alt a2> a3)R+^ О! О О О О а2 .0 а3 0 228
и рассмотрим пару (AJ, 6), в которой AJ = А {[Е2, 0] — [0, Е2]} - [А, 0] - [0, А] : Матрица управляемости (AJ, b) имеет вид ах —ах 0 0 0 0 0 а, — аа. 0 а2 0 — а^ 0 &2az — а{а2 0 —а2а1 Полагая а* = a2 = U Дз = а, получаем det К = —а (а + 1), следовательно, любая матрица F = diag A, 1, a) R+, в которой а отлично от —1 и, естественно, не является нулем, будет искомой параметризацией R. На основании рассмотренного примера можно заключить, что полнота терм-ранга матрицы реляции одновходовых нормальных джейфов действительно является необходимым и достаточным условием их структурной управляемости. Теорема 6.6. Одновходовые гамильтоновы джейфы структурно управляемы. Доказательство. В реляции любой гамильтоновой диаграммы имеется максимальное паросочетание, поэтому если удастся показать структурную управляемость гамильтоновых джейфов с «минимальной» реляцией в виде указанного паросочетания, то тем самым будет доказана теорема 6.6. Выделим два типа рассматриваемой реляции: вход диаграммы ставится в соответствие потоковой дуге, инцидентной нулю сети диаграммы; вход ставится в соответствие произвольной потоковой дуге, не инцидентной нулю сети диаграммы. Анализ управляемости гамильтоновых джейфов для этих альтернатив опирается на три леммы. Лемма входов. Если реляция гамильтоновой диаграммы является паросочетанием, которое вход диаграммы ставит в соответствие потоковой дуге, инцидентной нулю сети диаграммы, то джейфы такой диаграммы сильно структурно управляемы. Доказательство. Требуется показать, что рассматриваемая диаграмма 2Е> — (JC, Ж) удовлетворяет условию леммы нулевой формы. При этом очевидно, что проверке подлежит лишь тот факт, что структура Ф отличается от 0-формы. Предположим противное. Пусть ?) имеет 0-форму. Это означает, что матрица смежностей этой диаграммы приводится согласованной перестановкой строк и столбцов к виду блочной матрицы F.8), указанному в определении нулевой формы сетевых диаграмм. Рассмотрим матрицу L0. Она имеет отличные от нуля элементы. Так как по условию леммы реляция 01 является паросочетанием, 229
то в каждой линии матрицы R находится ровно одна единица, что означает, что ненулевые элементы L0 — это элементы из блока I матрицы L. Поскольку в каждом ненулевом столбце L0 должно быть не менее двух единичных элементов I, ясно, что ненулевыми столбцами L0 представлены только те столбцы I, которые соответствуют внутренним дугам сети Jft инцидентным узлам, отличным от нуля. Столбцы блока L0 соответствуют второй блочной строке матрицы F.8), поэтому реляция 31 должна сопоставлять вход диаграммы внутренней дуге сети JC. Этот вывод противоречит условию леммы и, следовательно, опровергает наше предположение о наличии у 3) 0-формы. Итак, мы рассмотрели случай, когда вход диаграммы определялся по отношению к потоковой дуге, инцидентной нулю сети диаграммы. Теперь разберем второй случай, когда вход отвечает произвольной потоковой дуге, не инцидентной нулю сети. Известно, что обратная связь по состоянию не сказывается на управляемости линейных стационарных систем. Зафиксируем этот нужный нам факт в виде следствия из леммы Хаутуса. Лемма обратной связи. Пусть А ? RnX^ в ? RnXp, С — произвольная вещественная (р х я)-матрица. Пара (А, В) управляема тогда и только тогда, когда управляема пара (А + ВС, В). Лемма минимальной формы. Пусть пара (А, В) составлена из (п X я)-матрицы А и (я X р)-матрицы В О в2 B2(ER**", kXp такой, что rank В2 — k\ 1 -< k < р. Разобьем А на блоки согласованно со структурой В: Ах Вх A2i A2j A2?R*xft. Пара (А, В) управляема тогда и только тогда, когда управляема пара (А1? Вг). Доказательство. Утверждение леммы равносильно предложению: пара (Ат, Вт) ненаблюдаема тогда и только тогда, когда ненаблюдаема пара (А]", В{). Воспользуемся геометрическим подходом к доказательству этого предложения, полагая, что все указанные выше матрицы задают одноименные линейные преобразования соответствующих координатных пространств. Так как rank Ы = kb то пространство, натянутое на базисные векторы столбцов А{, представляет собой ядро отображения В1, следовательно, пара (Ат, Вт) ненаблюдаема тогда и только тогда, когда это пространство имеет Ат-инвариантное подпространство. Последнее, очевидно, равносильно ненаблюдаемости пары (АТ, вт). 230
Рис. 6.17. Гамильтонова диаграмма с одним входом Рис. 6.18. Перестроение гамильтоно- вой диаграммы Возможно и иное рассуждение, при котором доказанная нами лемма может рассматриваться как еще одно следствие из леммы Хаутуса. Рассмотрим одновходовую гамильтонову диаграмму 3), реляция которой является паросочетанием, сопоставляющим вход диаграммы некоторой (произвольной) i-й внутренней дуге потокового контура (рис. 6.17). Матрица инциденций J диаграммы имеет канонический вид J = [Em, 0] — [0, Em]. Матрица реляции R диаграммы есть перестановочная матрица, в i-n строке последнего столбца которой размещена 1. На рис. 6.18 приведена одновходовая гамильтонова диаграмма ?DX, полученная из диаграммы на рис. 6.17 с помощью перестроения, сохраняющего в двудольном графе 2&х паросочетание 52. Матрицы Jx и Rx этой диаграммы имеют вид: Ji = 0 1 Rx- R 0 0 1 где е = @1Хт, 1) обозначена строка длины п, первые т элементов которой нули, а (т J~ 1)-й, последний элемент равен 1. Введем простейшую параметризацию Fx = [Alf Ь1] диаграммы^, полагая, что Fi = F 0 0 1 = Rx; F = [А, Ь] Система потоков (Хг Jly bx) управляема тогда и только тогд$^ когда управляема пара А1 = 0 Ai LJi о bi = 231
С помощью согласованной перестановки строк и столбцов матриц Alt bx эта пара очевидным образом приводима к виду Ах /-"^ А .0 b 0 = -0 F J 0 е 0 _0 0 0~ 0 — 1 0_ ; bi ^ ~0- 0 0 _1_ откуда, по лемме минимальной формы, следует, что (Ах, Jb bi) управляема тогда и только тогда, когда управляема пара (А, Ь). Управляемость этой пары, по лемме обратной связи, равносильна управляемости пары А + Ьст ГО А J 0 [_0 0 ьп 0 oj ь = в которой ст = (е, 01Х"). Вновь используя лемму минимальной формы, приходим к выводу о равносильности условий управляемости пар (AJ, Ь) и (Ах,^, Ь^. По лемме входов, пара (А^, Ьх) управляема, следовательно, управляема пара (AJ, b). Следствие 6.4. @, 1)-матрица, задающая любое максимальное паросочетание в реляции одновходовой гамильтоновой диаграммы, параметризует эту диаграмму в джейф с управляемыми системами уровней и потоков. 6.1.6. Графотеоретические условия структурной управляемости потоковых систем Результаты анализа структурной управляемости одновходо- вых нормальных джейфов естественным образом обобщаются на класс джейфов, сеть которых имеет гамильтоново соотношение потоков — число вершин и дуг сети удовлетворяет равенству п = т + 1. В качестве примеров таких сетей на рис. 6.19 показаны все возможные трехвершинные сети потоков с таким соотношением. Отметим, что только одна из приведенных на рис. 6.19 сетей нормальна. 0 °0 0' 0> аз е е Рис. 6.19, Сети с гамиль- тоновым соотношением числа вершин и дуг 232
Рис. 6.20. Варианты расположения единичного блока в матрице максимального паросочетания Е Е 1 - 1 1 А, &1 5) Гамильтоновы сетевые диаграммы. Влияет ли на критерий структурной управляемости F.17) гамильтоновых джейфов число их входов? Обсудим этот вопрос, называя гамильтоновыми как одновходовые, так и многовходовые джейфы, организованные на контуре потоков с помощью реляции полного терм-ранга. Теорема 6.7. Гамильтоновы джейфы структурно управляемы. Перед доказательством этого обобщения теоремы 6.6 рассмотрим, насколько существенно знание структуры максимального паросочетания реляции диаграммы с произвольной нормальной сетью для ответа на поставленный вопрос. Пусть 3) = (Jfy Ж) — диаграмма с нормальной сетью потоков и реляцией полного терм-ранга. Выделим в графе 31 максимальное паросочетание и опишем его @, 1)-матрицей F, единичные элементы которой соответствуют ребрам этого паросочетания. Матрица F = [А, В ] состоит из (п X га)-блока А и (п X р)-блока В, размерности которых связаны неравенством п <; т + р. С помощью перестановок строк и столбцов матрица F всегда может быть приведена к виду Fx, в котором ее столбцы с 1-элемен- тами образуют единичную подматрицу Е = Еп порядка п. Предположим, что такое перестроение задается тройкой перестановочных матриц Р, Q, Т порядков п, т и р соответственно: Fi - [А1$ Bi] = PF Q о о т где А! = PAQ, Bi = PBT. На рис. 6.20 показаны три возможных варианта расположения единичного блока Е в матрице Fx. Используем матрицу F в качестве параметризации диаграммы 2) и рассмотрим систему (AJ, В) так организованного джейфа. Очевидно, пара (AJ, В) управляема тогда и только тогда, когда управляема пара (PA (QQT) JPT, РВТ), т. е. пара (А^, В^, где Jx = QTJPT. Будем рассматривать последнюю записанную нами пару матриц как систему потоков джейфа, диаграмма которого задана матрицей инциденций Jx и реляцией RL = Fb и обсудим управляемость системы уровней (JiAlt JiBx) этого джейфа. Обратимся к рис. 6.20, а. Данный вариант тривиален: такая система имеет вид @, Зг) — управляемой пары (rank Jx = m). Рассмотрим рис. 6.20, б. Матрица J^, задающая систему (JiAj, Ji.Bj), имеет структуру, представленную на рис. 6.21. Обозначим через k число столбцов блока Jn матрицы J^. Ясно, что 233
п-к ц- \о 1. Лг | Jf2 0 _ . .> \ > Рис. 6.21. Структура системы уровней гамиль- тонова джейфа JfAt J, В, левый пулевой блок этой матрицы имеет размеры т X (т — k), а блок J12 — размеры т X (п — k)y причем k < m, (т — А) < (п — Л). Учитывая последнее неравенство, разделим J12 на две части так, чтобы блок JJ2 имел (га — Л) столбцов: J12 = [JJ2, Ji'2]. Если теперь приписать этот блок к первым (т — /г) нулевым столбцам матрицы J^x, то получим пару матриц: (JiAO + (JiBi)C = [jI2, J11L (J1B1) = [J12, J12], F.18) где С О является (р X т)-матрицей обратной связи с единичным блоком Ес порядка (т — k). Введение обратной связи по состоянию не сказывается на управляемости систем, поэтму пара матриц F.18) является полноценным представителем пары (J^, J^) с точки зрения управляемости последней. Поставим этого представителя J^ в несколько более сложную ситуацию, а именно: обнулим блок J'i2 в матрице JxBx пары F.18), т. е. заменим F.18) парой матриц вида [Jl2, Jill, [j[2, 0]. F.19) Ясно, что управляемость F.19) будет достаточным условием управляемости пары (^Аг, JiB2). Обращая внимание на блочную структуру пары F.19), которая соответствует варианту на рис. 6.20, в, приходим к выводу о том, что рассмотрение всех трех указанных вариантов можно без потери общности рассуждений об управляемости пары (JxAl7 J^) ограничить вариантом на рис. 6.20, в. Более того, это рассмотрение можно свести к случаю квадратной матрицы реляции диаграммы 2D, для которой справедливо условие нормальности. Доказательство. Вернемся к доказательству теоремы 6.7. Можно утверждать, что системы уровней (JA, JB) многовходовых гамильтоновых джейфов структурно управляемы. В частности, пара (JA, JB) управляема, если матрица F — [А, В ] совпадает с матрицей любого максимального паросочетания реляции рассматриваемой диаграммы. Итак, для миоговходовой гамильтоновой диаграммы всегда можно указать такую параметризацию F, что rank F = п и пара (JA, JB) управляема. 234
rank Фп + m. F.20) Управляема ли в этом случае пара (AJ, В)? Предположим обратное. Тогда должно существовать такое комплексное число [л, для которого верно неравенство: цЕ А В J — цЕ 0 Рассмотрим два возможных случая: а) \х = 0. Неравенство F.20) противоречит полноте рангов J, F; б) \х Ф 0. Полагая zT = (vT, хт), где х ? Rm, v ? R", запишем F.20) в виде xTJ = fivT; vTA = \ixT; vTB-0; zV0lx(n+m), Из этих соотношений следует хт(М) = ц2хт; xT(JB) = 0, где хт Ф 0*xm. Полученные равенства противоречат управляемости пары (JA, JB). Основная теорема. Условие терм-ранга. Для Того чтобы завершить анализ структурной управляемости системы потоков джей- фов, нам понадобится следующая лемма. Лемма факторизации. Любая (т X я)-матрица В полного строкового ранга т, размеры которой удовлетворяют равенству п = т + 1, может быть факторизована в произведение В = JX, где J — каноническая матрица инциденций гамильтонова контура потоков; X — невырожденная квадратная матрица порядка п. Доказательство. Обозначим Q левую невырожденную подматрицу J порядка т: Q =  — 1 0 1 Общее решение уравнения JX = В, обусловленное выбором базиса Q столбцов J, имеет вид X = Q^B + ехст ei== 1 ?Rm> в котором с является вектором свободных переменных. Убедимся в том, что соответствующим выбором с всегда может быть обеспечена полнота ранга решения X. Без потери общности рассуждений можно считать, что первые т столбцов матрицы В = [В0, bn], 235
образующие квадратную подматрицу В0, линейно независимы. Полагая ст = @1Хт, 1), получаем частное решение X рассматриваемого уравнения: у = Г Q-^p L О1*™ В0| Q-^+ex 1 ]¦ Очевидно, что det X Ф О, Основная теорема. Пусть R — (под)матрица реляции сетевой диаграммы без учета ее входов. Обозначим через п X (т + р) размеры R. а) Если т — п, то джейфы сетевой диаграммы структурно управляемы тогда и только тогда, когда R не имеет 1-, 2-форм. б) Если т Ф пу то джейфы сетевой диаграммы структурно управляемы тогда и только тогда, когда R не имеет 2-формы. Доказательство. Утверждение а является переформулировкой теоремы 6.5. Рассмотрим утверждение б. Введем пару матриц Н, F следующего вида: н = [с]; F = [A, В], где J — матрица инциденций потоковой сети диаграммы, размеры которой удовлетворяют условию т ф п\ С — матрица с числом строк k = п — т — 1^0, обеспечивающая матрице Н полный строковый ранг т + k = п — 1; А = [А, 0пХЧ; В = В, причем А и В таковы, что матрица F = [А, В] является параметризацией матрицы реляции диаграммы и rank F = rank F = п. Факторизуя Н согласно доказанной выше лемме в произведение Н ~ JQ матрицы инциденций J гамильтонова контура из п дуг и квадратной матрицы Q порядка п (det Q Ф 0), рассмотрим систему & ? С/7 с аффинными параметрическими связями, представленную составной матрицей: Н Матрица Q задает невырожденное линейное преобразование D пространства систем Р = RM, М = B/г — 1) B/г + р — 1), такое, что его одноименная матрица D = diag{Dif t= 1, 2, ..., B/г + Р - 1)}, где все диагональные блоки Dt являются матрицами вида Q 0 ГО F [j 0  А J 0 в] 0 J D,= 0 Е 236
Ясно, что О QF D(H) = ?Р. J О Учитывая лемму потоков и теорему 6.7, видим, что система & структурно управляема, следовательно (по лемме преобразования), структурно управляема^ система D \&). Пусть D (Н) ? contr, тогда управляема пара (JQA, JQB), т. е. пара (НА, НВ). Учитывая равенство rank F = пу на базе теоремы 6.7 легко убедиться в управляемости пары J С АН = [A, 0nXk] = AJ; В = В. Итак, найдено графотеоретическое условие структурной управляемости системы потоков джейфов. Оценка структурной управляемости потоковых систем должна проводиться по следующей трехшаговой схеме: 1) проверяется выполнение условия п <; т + р, которое означает, что число входов сетевой диаграммы и число отличных от 0 вершин ее потоковой сети не меньше числа дуг сети. Если данное условие не выполняется, то дальнейший анализ диаграммы не имеет смысла. Такая диаграмма не может быть параметризована в джейф с управляемой системой потоков; 2) для матрицы реляции диаграммы (без учета выходов диаграммы) проверяется, имеет ли данная матрица 2-форму. Иначе говоря, проверяется наличие максимального паросочетания в рассматриваемой части реляции диаграммы. Джейфы сетевых диаграмм, у которых такого паросочетания нет, структурно неуправляемы; 3) если т Ф п, то анализ структурной управляемости закончен: рассматриваемая диаграмма может быть параметризована в джейф с управляемой системой потоков. Если т = д, то следует дополнительно убедиться в том, что у матрицы рассматриваемой части реляции диаграммы отсутствует 1-форма. Выполнение этого требования при т — п является обязательным для структурной управляемости джейфов диаграммы. Заметим, что все процедуры проверки связаны только с реляцией сетевой диаграммы. Таким образом, фактически доказан на первый взгляд «антиинтуитивный» факт: структурная управляемость потоковых систем джейфов не зависит от структуры сети потоков этих систем [2]. 6.2. ЭКВИВАЛЕНТНЫЕ ПРЕОБРАЗОВАНИЯ СХЕМ СОПРЯЖЕНИЯ АГРЕГАТИВНЫХ МОДЕЛЕЙ Обычно модель сложной системы конструируется иерархическим образом через подсистемы различных рангов. Естественно эту конструкцию отобразить в агрегативных моделях. Модель, 237
описанная в гл. 2, состоит лишь из элементов, так называемого, низшего уровня — агрегатов. Удобно иметь и более общие объекты — подсистемы, состоящие из агрегатов (подсистемы 1-го уровня), подсистемы, состоящие из подсистем 1-го уровня (подсистемы 2-го уровня) и т. д., поскольку иногда части модели сложной системы конструируются различными пользователями, причем эти части могут иметь собственную структуру. Но тогда возникают задачи композиции и декомпозиции как последовательного перехода в представлении системы в целом от «мелких» элементов к все более «крупным» подсистемам и наоборот. Частично эти задачи рассматриваются в гл. 1. Аналогичные проблемы возникают не только для агрегативных моделей (см., например, [35]). Данный параграф и посвящен вопросам формальных преобразований структур агрегативных моделей. Здесь затрагиваются вопросы, относящиеся только к преобразованиям схем сопряжения и не касающиеся динамики агрегатов. Изучение данных вопросов было начато чл.-кор. АН СССР Н. П. Бусленко [4] и им же были получены результаты, представленные в настоящем параграфе. При изложении мы лишь упростили обозначения, сделав их более наглядными. В гл. 2 было определено понятие агрегативной модели как объекта, состоящего из конечного множества взаимодействующих агрегатов зФ = (Av ..., AN). Здесь нам удобно ввести еще один элемент А0 (будем называть его для единообразия также агрегатом), который можно трактовать как внешнюю среду для агрегативной системы. Все атрибуты элемента А0 будем обозначать так же как и для остальных агрегатов, снабжая их, естественно, индексом 0. Необходимость введения этого элемента будет ясна из дальнейшего при рассмотрении подсистем агрегативной системы, для которых «внешней средой» является остальная часть системы. Взаимодействие агрегатов будем описывать схемой сопряжения R> представляющей допустимое отображение множества I, всех входных клемм агрегатов Л0, ..., AN в множество 0 всех их выходных клемм. Напомним, что через I; (/ — 0, ..., N) мы обозначали множество всех входных клемм агрегата Aj. Таким образом, N I = U 1;-. Аналогично, через 0; (/ = 0, ..., N) обозначалось множество выходных клемм агрегата Aj и, следовательно, О = N = U О;. Входная клемма с номером I агрегата Aj называлась /=о (/, 0-входом — обозначим ее 15 (/), 1 < / < mh а выходная клемма с номером г этого же агрегата называлась (/, г)-выходом — обозначим ее Oj (г), 1 < г <С rij. Рассмотрим сужение оператора сопряжения R на множество 1^, т. е. оператор Rjy определенный для данного агрегата Ajy который каждой входной клемме Ij (i) ставит в соответствие некоторую 238
Рис. 6.22. Агрегативная система с элементом Л0, символизирующим «внешнюю среду» выходную клемму Ok (/), связанную с Ij (i) каналом связи. Соответствие, описываемое оператором Rj, для любого / = 0, ..., N является взаимнооднозначным, в силу сделанного ранее предположения о невозможности подключения к входной клемме более одного канала связи и отсутствии «дублирующих» каналов, т. е. ведущих от одной выходной клеммы какого-либо агрегата к разным входным клеммам другого агрегата. Поэтому существует однозначный обратный оператор Rj\ отображающий каждую клемму Ок (/) из множества R A;-) в соответствующую клемму ij a). Назовем соответствие, описываемое оператором RJ} частной схемой сопряжения агрегата Aj. Нам потребуются также следующие частные характеристики схемы сопряжения: множество 1(ь fe> входных клемм агрегата Aj, связанных каналами связи с выходными клеммами агрегата Ak: lU-k) = R]l(Ok(] R(\j)); множество 0(/'k) выходных клемм агрегата Ajy связанных с входными клеммами агрегата Ак\ о(Л/° = 0;П /?(!*); множества входных 1@) и выходных О@) клемм всех агрегатов системы (кроме Л0), к которым подключены каналы из внешней среды: 1@) = м 1(/> 0)- О@) = II 0{/' 0). 239
Рис. 6.23. Формирование агрегативной подсистемы Введенные объекты наглядно иллюстрирует рис. 6.22. Так для агрегата Ах имеет место R A4) - (Ог B), Ог C), 02 B), 03 A)) Следовательно, I*4'1* = R~* ((О, A), О, B), О, C), О, D)) П П R (I4)) = RT1 (О, B), О, C)) = (/4 B), /4 C)). Действительно у агрегата А4 входные клеммы с номерами 3 и 4 соединены кана лами связи с выходными клеммами агрегата AY. Аналогично множество выходных клемм агрегата Лх, соединенных со вход ными клеммами агрегата А4, имеет вид 0A»4) = (Ох B), 04 C)) Множество Ь0) состоит из следующих клемм: 1<0) = AХ A), /3 B)) Очевидно также, что 0<°> = @2 B), 03 B), 03 A), 04 B)). Введем понятие подсистемы агрегативной системы. Пусть множество s4> всех агрегатов системы 5 разбито на М непересекающихся подмножеств^, \х = 1, ..., Му содержащих не менее чем по одному агрегату. Объединим агрегаты из подмножества s?^ в подсистему S^ так, чтобы 5Ц, с одной стороны, сама являлась агрегативной системой, а с другой — элементом более общей системы, построенной из исходной. С этой целью требуется определить схему сопряжения между агрегатами из множества я^, и тогда 5Ц будет определена как агрегативная система. В то же время необходимо задать схему сопряжения между образованными подсистемами, определив тем самым S^ как элемент более общей системы. Введенные схемы сопряжения должны быть согласованы с исходной схемой сопряжения системы 5. Рассмотрим, например, систему на рис. 6.23. Объединим агрегаты А3—Аъ в одну подсистему 5Ц. То, что находится внутри штриховой линии, для «внешних» агрегатов Alt A2> Лб, А7 является как бы невидимыми они должны посылать свои сигналы лишь на входные клеммы, относящиеся к подсистеме 5^, рассматриваемой как единый элемент. Аналогично, и сигналы, генерируемые агрегатами А3—Л5, указанные «внешние» агрегаты воспринимают с выходных клемм, приписанных всей подсистеме 5^. С другой стороны, штриховая линия является «непрозрачной границей» и для «внутренних» агрегатов Л3—Аъ. Они «не видят», что происходит за ней. Поэтому эта граница воспринимается «внутренними» агрегатами как граница внешней среды и соответственно имеющая входные клеммы для восприятия сигналов, сни- 240
маемых с «внутренних» агрегатов, и выходные клеммы — для выдачи сигналов на «внутренние» агрегаты. Отразим эту двойственность введением двойных клемм на границе подсистемы: с внутренней стороны для элементов подсистемы они представляют собой точки связи с «внешней средой», в качестве которой для них выступает остальная часть исходной системы; с внешней стороны — это точки связи с подсистемой для элементов, не входящих в нее. Обозначим через 10^ множество двойных клемм, представляющих собой входы в подсистему извне. Аналогично, обозначение 01ц соответствует множеству двойных клемм, представляющих собой выход из подсистемы 5^ (см. рис. 6.23). Если некоторая подсистема состоит из одного элемента, то необходимость создания для нее «двойных» клемм отпадает, так как клеммами подсистемы являются соответствующие клеммы элемента. Дополнительные фиктивные клеммы, появляющиеся при расчленении системы 5 на подсистемы S^, можно формально определить следующим образом. Рассмотрим множество О (ju) выходных клемм всех агрегатов Aj из подсистемы S^, которые соединены каналами с входными клеммами агрегатов, не принадлежащих этой подсистеме, и элемента А0: 0(|А)= U (O(/'0)U[ U 0(/'Л)]}. Для каждого Oj (I) ? О (\х) определим одну двойную клемму независимо от количества подключенных к ней каналов, так как распределение каналов можно осуществить за пределами подсистемы S^. Так, в исходной системе (см. рис. 6.2) от агрегата А3 с одной из выходных клемм отходит два канала связи (один из них изображен штриховой линией). При включении агрегата Л3 в подсистему S^ вместо «штрихового» канала появился канал связи, который имеет обозначение B). Клеммам из определенного выше множества О (\х) (это — клеммы агрегатов, составляющих подсистему S^) поставим во взаимно однозначное соответствие двойные клеммы подсистемы из множества 01^. Фактически это соответствие можно трактовать как присваивание клеммам из множества О (\х) дополнительных имен, характеризующих их в качестве выходных клемм подсистемы. Обозначим через Т^ оператор, производящий указанное переименование, т. е. Тц : О (\х) -*¦ 01^. По построению, этот оператор взаимно однозначный, поэтому существует обратный ему оператор Гд1 : 01^ -* О (\х). Отметим, что несколько иная ситуация будет со входными клеммами подсистемы S». Рассмотрим множество I (\х) входных клемм всех агрегатов подсистемы 5^, которые соединены каналами связи с выходами 241
агрегатов, не принадлежащих подсистеме 5ц, либо элементом А0: 1Ы= U {I(/'0)U( U Iй'к% Ajes» Ahts» Введенное множество клемм разобьем на классы эквивалентности следующим образом: к одному классу отнесем клеммы, оператор сопряжения R которых имеет одно и то же значение. Иначе говоря, в класс эквивалентности хмы относим клеммы, на которые поступают сигналы из одного источника. Каждому классу эквивалентности поставим в соответствие входную двойную клемму подсистемы (из множества 10ц), т. е. число элементов множества 10ц совпадает с числом классов эквивалентности множества I (\х). Обозначим данное соответствие Рц, где оператор /'ц : : I (ц) -+ Юд является однозначным, но, вообще говоря, не взаимнооднозначным. Тем не менее, введем обозначение Р^1 : : 10ц -*¦ I (fx), выбирая в случае неоднозначной определенности значений этого оператора любое из возможных значений, что не приведет далее к недоразумениям. Как следует из рис. 6.23, входные клеммы агрегатов А3 и Л4, на которые вели каналы связи из агрегата Ах (один из них показан штриховой линией), объединяются в класс эквивалентности. Этому классу соответствует одна входная клемма подсистемы 5ц, причем «штриховой» канал заменяется на канал связи, обозначенный (/). Рассмотрим подсистему 5ц как самостоятельную систему. Для построения схемы сопряжения элементов в подсистеме 5ц необходимо иметь множества входных и выходных клемм и оператор сопряжения. Множества клемм 1^ и О; для элементов Aj ? 5ц известны, а для элемента А0 (fx), представляющего внешнюю среду подсистемы 5ц, определяются как 1оМ = 01й; Oo0i) = I(V Оператор /?ц с областью определения в множестве 10 (\х) [} [ [) \j] и областью значений в множестве О0 (|ш) (J [ U Ok] назовем вну- Ah?sn тренним оператором сопряжения элементов в подсистеме 5ц. Он, очевидно, может быть построен следующим образом. Рассмотрим (/, /) — вход этого агрегата, т. е. клемму /_,- (/). Определим f Я (МО), если /;(/)ф1Ы; R»[ j{l))~~\ Рц (Ij(l)), если /у (/) G 1(|л). На множестве 10 (и) — 0!ц действие оператора /?ц совпадает, очевидно, с действием оператора Гц1. Далее рассмотрим подсистему 5ц как элемент системы 5. С этой точки зрения она характеризуется множествами входных 10ц и выходных 01ц клемм. 242
Элемент Л0, представляющий внешнюю среду системы 5, будем теперь интерпретировать как подсистему 50 с множествами входных клемм 10 = Ю0 и выходных клемм О0 = О10. Аналогичным образом, если некоторая подсистема 5ц состоит из одного элемента Ajy положим 10ц = I;, 01ц = 0;. Для построения схемы сопряжения подсистем 5ц, \х = О, 1, ..., М> в системе 5 введем оператор Rn, реализующий отображение множе- м м ства (J 'Од в множество U 01д и ставящий в соответствие каж- и=о д=о дой клемме из множества Юц клемму из определенного множества 0IV, если такое соединение в системе существует. Оператор /?п определяется следующим образом. Пусть i — входная клемма подсистемы 5ц, т. е. i ? Юц, а о — выходная клемма подсистемы 5V, т. е. о ? 0IV. Тогда Rn (i) = о в том и только том случае, если о = Tv (R (Р^1 (/))). Оператор Ru будем называть оператором сопряжения подсистем 5ц в системе 5, а совокупность схемы сопряжения подсистем 5ц в системе 5 и схемы сопряжения элементов Aj в подсистемах 5ц, \х = 1, 2, ..., М —двухуровневой схемой сопряжения системы 5. Приведенные выше соотношения показывают, как, зная исходную схему сопряжения R и разбиение системы на подсистемы, можно получить двухуровневую схему сопряжения. В общем случае подсистемы 5ц могут объединяться в более крупные подсистемы, а те, в свою очередь, в еще более крупные и т. д. Тогда придется рассматривать многоуровневые схемы сопряжения. Такое рассмотрение, очевидно, может быть осуществлено рекурсивно. Основываясь на двухуровневой схеме сопряжения, можно получать различные структурные характеристики системы, представленной в виде взаимодействующих подсистем: число связей между подсистемами, возможные пути передачи сигналов, наличие циклов и т. п. Очевидно, интерес представляет и обратное преобразование двухуровневой схемы сопряжения в соответствующую ей одноуровневую. Такая задача возникает, к примеру, при переходе от одной двухуровневой схемы сопряжения к другой (в случае изменения распределения элементов по подсистемам), а также если исходные сведения о структуре системы получают в виде двухуровневой схемы сопряжения. Решение указанной задачи весьма просто и состоит в следующем. Пусть заданы агрегативная система 5, состоящая из подсистем 5^, \х = 1, 2, ..., М> а также двухуровневая схема сопряжения, т. е. операторы Ru сопряжения подсистем и внутренние операторы сопряжения R^ (\х = 1, 2, ..., М). Рассмотрим входную клемму Ij (/) агрегата Ah принадлежащего подсистеме 5Д. Тогда Рц (Ij (/)) — номер двойной входной клеммы из множе- 243
ства Юц, Ru (P^ (Ij (/))) — номер двойной выходной клеммы подсистемы (пусть это будет подсистема 5V и, следовательно, клемма принадлежит множеству 01v), связанной с рассмотренной выше двойной входной клеммой каналом связи. И, наконец, 7V (Рц (Ij (I,- (/))) — номер выходной клеммы (из множества О (v)) агрегата из подсистемы 5V, выходная клемма которого соединена с двойной выходной клеммой подсистемы 5V каналом связи. Таким образом, RVjVV^TJiRuiP^Ijil)))), что и решает задачу построения одноуровневой схемы сопряжения из двухуровневой. Приведенные формальные соотношения, позволяющие переходить от одной схемы сопряжения к другой, могут явиться основой соответствующих машинных программ. Их наличие дает возможность решать некоторые задачи структурного анализа и проводить структурные преобразования моделей систем. 6.3. СТРУКТУРНЫЕ ПРЕОБРАЗОВАНИЯ АГРЕГАТИВНЫХ МОДЕЛЕЙ 6.3.1. Операторное исчисление по Ляпунову В данном параграфе будет приведен один из возможных алгоритмов композиции агрегативных систем, т. е. алгоритм, позволяющий по описаниям отдельных агрегатов, составляющих систему, и схемы их сопряжения построить один агрегат, функционирование которого эквивалентно функционированию исходной системы. Данный алгоритм может быть использован как в целях повышения эффективности моделирующего алгоритма, так и для преобразования элементов, составляющих исходную систему для их укрупнения. Разумеется, алгоритм может применяться не только к системе в целом, но также и к отдельным ее фрагментам (подсистемам). Вопросы, рассматриваемые в данном разделе, в идейном плане близки к вопросам, излагаемым в работах А. А. Ляпунова, Н. А. Криницкого, А. П. Ершова, В. М. Глушкова [7, 8, 15, 17]. Для описания алгоритма нам понадобятся вспомогательные понятия, в частности элементы операторного исчисления по Ляпунову [20]. В гл. 2 отмечалось, что функционирование агрегативной системы сводится к мгновенным реакциям агрегата на поступающие входные сигналы либо на внутренние события (обнуление какой- либо убывающей действительной координаты), а также к обмену сигналами в соответствии со схемой сопряжения. Здесь будет дана форма представления реакции отдельного агрегата в виде так называемого операторного выражения, а именно в форме специально организованной последовательности логических условий 244
и действий {операторов). Аргументами условий и операторов являются данные, описывающие состояния агрегата, его входные и выходные сигналы (см. п. 1.2). Множество всех данных обозначим буквой Е, Это множество является областью определения вводимых ниже логических условий и операторов. Любое логическое условие обозначим буквой ?/, возможно с индексами, например, Ult Uilit и т. д. Тождественно-истинное условие обозначим буквой Я, а тождественное-ложное — буквой Л. Простой оператор обозначим буквой D (возможно с нижними индексами). Простой оператор выполняет арифметические и логические операции с данными (переменными). Переменные простого оператора или логического условия будем обозначать строчными латинскими буквами. Символы =, ф, >, <, >, <, +, —, ., /, f, \/>Л> — и арабские цифры понимаются в обычном смысле 1. Условным оператором назовем конкатенацию условия, заключенного в круглые скобки, и простого оператора, заключенного в квадратные скобки. Циклическим оператором назовем п — т + 1 — кратную конкатенацию условных операторов, обозначаемую f[(Ut)[Dt], i=tn где т — нижний параметр цикла, г п — верхний (п !> т). Циклический оператор работает следующим образом. Последовательно по i проверяется выполнение логического условия ?/*, Если оно истинно, то выполняется простой оператор Du если Ut ложно, то на этом работа циклического оператора заканчивается. Отметим, что условный оператор есть частный случай циклического оператора при т = п = 1, а простой оператор есть частный случай условного оператора при U = Я. Оператором назовем простой, условный или циклический оператор. Обозначим его ? (возможно с нижними индексами). Операторное выражение Q — это конечная последовательность операторов "Ч^Ч^, ..., ЧГТ1, выполняемых последовательно. Несовместными называются условия Ux и ?/2, если Ux Д U = = Л, например, (р = q) Д (р ф q) = Л. Входные переменные оператора — переменные, находящиеся в параметрах циклов, условиях и простых операторах справа от знаков присваивания «=». Выходные переменные оператора — это переменные, находящиеся в простых операторах слева от знака присваивания «=». 1 Отметим двойственный смысл символа = . В логическом условии — это обычное равенство, в простом операторе — это символ присваивания. 245
Оператор Ч^ называется независимым по входу-выходу от оператора Ч^* если никакие его входные переменные не являются выходными для оператора Т2. Если это не будет приводить к недоразумениям, вместо «независимости по входу-выходу» будем писать просто «независимость». Два оператора называются взаимнонезависимыми (по входу- выходу), если каждый из них независим от другого. Условие U называется независимым от оператора Y, если переменные условия U не являются выходными переменными оператора ?. Связанной переменной оператора ? (в заданном операторном выражении Q) считается такая его выходная переменная, для которой выполняются следующие два условия: 1) справа от "Ч?" в Q существует оператор "*Р, для которого эта переменная является входной; между ? и ? в Q не существует оператора "*Р, для которого эта переменная является выходной. Свободной переменной оператора ? (в заданном операторном выражении Q) называется несвязанная его выходная переменная. Как показано в [27], к-операторному выражению можно свести любой алгоритм, записанный в языке фон-неймановского типа. Эквивалентность (или равенство) операторных выражений обозначается символом «= =» и понимается в смысле лексикографического совпадения текста в обеих частях формулы, как это было предложено А. А. Ляпуновым [17]. Пустой оператор, являющийся единицей для операции конкатенации, обозначим «0»: 04 ^ = ур0 = = хр для любого оператора "*?. Соглашения для упрощения записи: [D,] LD,] = = [Dl9 D]\ ((Ui) Л (?/.)) = - (f/i Л U) = = (f/i) (t/t); HDU = = ID]; ((?/)) = = (U). Ниже рассмотрены предложения операторного исчисления по Ляпунову. Они простые и по сути являются следствиями аксиоматики теории множеств. Пх. По определению, будем считать любое операторное выражение простым оператором D = = [Q]. П2. Если УР1 = == Ч^, то для любых операторных выражений йх, Й2 112 нСч I ouuo, 246
П3. Пусть у?1 — оператор, Ч^ — оператор, полученный из первого в результате тождественных алгебраических и логических преобразовании, проведенных над выражениями, стоящими в параметрах цикла, условии, простом операторе. Тогда Пример. П <(*<У) V (* = *)) С* = (« + *) («-*)]• i=q.q П4. (И) ID] = [D]. П5. (Л) [D] = = 0. П6. (U) [0] = = 0. П7. [д = д] = = 0. П8. Если оператор "Ф" имеет только свободные выходные переменные, то Y= = 0. П9. Если операторы Ч\ и Ч^ взаимонезависимы и не имеют одинаковых выходных переменных, то 4VP2 = - ^a^i. П10. Если оператор УР1 независим от себя и от оператора Ч^ и, кроме того, операторы yVl и W2 не имеют одинаковых выходных переменных, то 4VPa - - ^Wi- Пп. Если /? и ^ не являются выходными переменными оператора "Ф", то в операторных выражениях Иг и ?22, гАе Q, = = [р - </1 [П Й2 = = 0* = <7) [гН внутри оператора гР переменную /? можно заменить на q. П12. Пара тождеств (t/2)L%]= = (?/*№] эквивалентна тождеству (tfi V t/a) ИМ = - (Ut V t/2) HM. П13. Если условие ?/ независимо от простого оператора Db то (U) [DJ (?/) Ша] = = (U) [[D,] [D2]l. 247
П14. Связанная переменная р оператора ? может быть одновременно заменена в операторах Ч и ? (см. определение связанной переменной) р I А, если оператор ? для нее единственный и переменная р не является для него выходной. П1Б. Пусть Q = = (U) HD^ (U) [Da] [D3]]. Если условие ?/ не зависит от оператора Du то второе вхождение U можно заменить на //, т. е. Q = = ({/) [[DJ (tf)[D2] [D3]]. Перечисленные предложения будем считать базовыми. Остальные предложения будем получать, используя базовые. При необходимости число базовых предложений может быть увеличено. Однако для большинства практических задач их оказалось вполне достаточно. Приведем наиболее часто используемые при эквивалентных преобразованиях утверждения. П1б. Если оператор у?1 независим сам от себя, то те = = у» Доказательство непосредственно следует из предложения П10 при ЧЪ = = 0. П17. Если Uu .,.., Un — логические условия, то система тождеств (U1)[W1]= =(Ul)[Vt]; ': F.21) (?/«)№] = =(f/»)l4,il эквивалентна тождеству I V (Ut)\ [ЧМ = = I V Wi) ) №*]• Предложение, по сути, является следствием Пп. П18 (следствие П17). Если в условиях предложения П17 V Wt) = я, то F.21) эквивалентно тождеству W± = = ЧГ2. F.22) Таким образом, для доказательства тождества операторов необходимо и достаточно проверить тождество F.22) при каждом условии из некоторой тождественно-истинной системы условий. 248
П19 (следствие П18). Тождество Ч^ — = Ч^ эквивалентно паре тождеств (U) [VJ= = (U) PF,]; (?7I44 = =(?7)№]. П20. (i/x) [((/,) ШП = = (t/x Л Uг) Ш). Доказательство. Рассмотрим тождественно-истинную систему условий Vt и иг. Как следует из Я19, для доказательства П20 достаточно доказать пару тождеств (?/«) I(f/i) I(?/i) WW = = (i/,) I(t/x Л ^a) [?>П; F.23) (*7.) [(^1) W*) [D])\ = = (Ut) [(U, Д t/,) [D]]. F.24) Рассмотрим сначала тождество F.23). В этом тождестве вторые вхождения условия U2 как в левой, так и в правой части тождества могут быть заменены по П1б на И. Тогда F.23) примет вид (</.) [(t/i) 1(Ю [?)]]] = = (U2) l(Ux Л И) [DU. Используя П4 для левой части данного тождества и соотношение U\ Л И = Ux — для правой, получим (U2) l(Ux) UD]]] = = (U2) l(Ux) ID]]. В левой и правой частях с учетом соглашения о скобках стоят одинаковые выражения. Аналогично рассматривается тождество F.24), которое приводится к тождеству 0 — = 0. П21. Если 1) U2 независимо от простого оператора D; 2) Ux Д Д и% = = Л, то (<Л) ID] ({/,) [D] = - ((Ux) V (</*)) [^1. F.25) Доказательство. Очевидно, что если U2 независимо от Dy то и U2 тоже независимо от D. Для доказательства необходимо рассмотреть тождество F.25) при условиях Ux Д U2> Ux Д t/2, ^Л Д U2, которые представляют собой тождественно-истинную систему условий. Для примера выберем тождество F.25) при условии (Ux Д U2). Два других тождества рассматриваются аналогично: (Ux Д U2) [(Ux) [D] (U2) [?>]] = = (Ux Д G2) [(^ V 17.) [?>]]. В силу П1б и П20 (Ui Д U2)[(H)[D](U2)[D]\ = - (([/! Д U2) Д (?/х V Ut))[D]; (Ux Л t7.) [[D] (Ut) [D]] = = (<Л Л t7.) tf>]. Используя П1б и учитывая независимость U2 от D, получаем (f/i Л U2) [[D] (U2 Д U2) [D]] = = ((/х Д Z72) [D]. 249
Замечание к П21: в случае независимости простого оператора D от себя самого теорема будет верна и при Ux /\ U2 Ф Л. П22 (коммутативность условных операторов). Если: 1) Ux Д Л U2 = = Л; 2) Ux независимо от D2\ 3) U2 независимо от Dx, то (Ux) Юх] (U2) [D2] = = (U2) [D2] (Ux) [Dx]. П23. Пусть /?, qx, q2 — действительные переменные, переменная p не является входной для условий Ux и U2y тогда [Р= (f/i)-«7i+ (f/t)-9.]= = (<Л Л U) [р = <7il (?7i Л tf*) t^ = <7«1 (i7lA j/2) \p= o]. Здесь значения t/ интерпретируются следующим образом: Я = — 1; Л = = 0. Поэтому, скажем, (?/х) • <7i есть обычное умножение чисел. П24. Если в условиях П23 Ux V ^2 = И, Ux /\ U2 = Л, то ^ = (t/aWi + (</.)•*] = - (<Л) [^ = ?J (tf.) Ь = <7.1. П25 (обобщение П24 на я условий). Если 1) V (Ut) = И\ 2) Uj Д Uk — Л при ]фк\ 3) переменная /? не является входной для условий Uif то Р = %(Ui)qt 1=1 *=1 П26 Пусть @— бинарная операция (необязательно ассоциативная и коммутативная; в случае неассоциативности операции необходимо условиться лишь о порядке выполнения операций слева направо), р — ее левая единица, тогда [p = v1@vt@, ... ®vn]= =[p = p] U [p = p@,vt]. F.26) t=\ Доказательство. Левая часть F.26) очевидным образом может быть определена в рекуррентном виде Pi = vi> Pi = Pi-i@vt> t>l; P = Pn- №0
Алгоритм этой процедуры записывается в виде следующего операторного выражения: п П [Pi =Pt-l@Vi] i=2 \Р = Pnl которое может быть преобразовано к виду [р0 = р] 1рг = А,®^] п П [р* = Pi-i@fi] <=2 Ip = рп] = = 1/>о = pl п П lp« = pui@^] /==1 IP = />J. По предложению П14, индекс можно опустить: [Р = р] п П1р = P@vt] n [р = Р]= = [р = Pl П [р = р @ oj. Замечание к предложению П26: если бинарную операцию интерпретировать различным образом, то получаются следующие результаты: 1. Пусть @ является сложением чисел, а р — 0, тогда [р = vx + v2 + • • • + vn] - lp = 0]fllp = P i-ViV 2. Пусть @ является умножением чисел, а р'*е f, тогда [р = Vl-v2.....vn]=-- = [р = i]hip = P'Vti 3. Пусть @ является конъюнкцией, ар — тождественнр- истинным выражением, тогда 1р = И]П1р = р A vt). 251
4. Пусть @ является максимумом из двух чисел, а р = —со, тогда [р = v± max v2 max .. • max vn] = = n [p = —со] П \p = P max и,] = = i=i [p = —оо]П l(p^vt)[p = p] (p<vi)[p = vi]]= = [p= -co] h[(p<Vi)ip = vt]]. 1=1 5. Пусть @ является операцией вычисления гипотенузы «gip» прямоугольного треугольника с катетами а и 6, определяемой формулой: agip b = -/"a2 + Ь2. Левой единицей для этой операции является число «О». Следовательно, IP = 0] П \Р = Р gip о,] = [р = 0] П [р = Vp2 + vfl. Делая замену q = /?2, получаем [<7 = 0] П [q - ? + и?] 6. Пусть @ является операцией конкатенации цепочек символов « || », р — пустая цепочка, ' ', тогда [p = filM ••• \\vn]= = [р = * *]П1р=рШ. Данная операция ассоциативна, но некоммутативна. 7. Введем операцию позиционного сложения «pos», которую определим формулой a pos Ъ = 10-а + Ь. Эта операция встречается в алгоритме перевода чисел из символьного представления в числовое. Ее левой единицей является число «0». Данная 252
операция и некоммутативная, и неассоциативная. Пусть дан массив чисел vif тогда [р = Vl pos v2 pos ... pos vn] = = n lp = 0] П lP = Ppos^] = = *=i lp = Q]fl[p = lQ-p + vt]. П27. Пусть заданы два циклических оператора с соответственно одинаковыми верхними и нижними параметрами и пусть условия, участвующие в определении циклического оператора (см. определение), тождественно-истинны; UlDlti]; fllD%,j]. f=m \—m Если для каждого простого оператора D2tj9 т < / < пу его входные и выходные переменные не являются входными и выход-* ными переменными простых операторов Duh j < / <! /г, то П[А.|] П [Aul = - П l[?>i.k][I>ifk]]. f—I /=m fc=m Технику операторного исчисления по Ляпунову продемонстрируем на примере. ' Пример. Рассмотрим алгоритм вычисления целой неотрицательной степени числа, основанный на двоичном разложении показателя степени [5, 13]. Данный алгоритм, несмотря на компактность записи, неочевиден. Это вызвало необходимость доказательства его корректности [5, 13, 29]. Доказательство правильности алгоритма проведем на основе вывода алгоритма из его определения. В результате получим сразу и алгоритм, и доказательство его правильности. По определению, алгоритмом вычисления степени будем считать оператор [г — AN\y где А — основание степени; N — показатель; г — результат. Представим число N в двоичной системе исчисления: Тогда N = <=0 u~\i»]= = 1 г = f] А**'* L <=° Г|.2*, Af | € {0. 1} .г=А'-* • J 1 = = [г = 1] П k = 2 <=o F.27) 253
[г = 1] П [((Mt = 1) V (A«i = 0)) [г = г-(А*')М>]] = = {=о [»=1]П[(^ = 1)[г = г.(л2')^](Л11=0)[г = г.и2')Л<0]= = / [г - 1] П [<М* = 1)Ь = «*^2'] (Л*« = 0) [* = г]1 = = <=0 [г=1]П^ = 1)[г = г-^2']]- F-28) *=¦¦¦¦() Из F,27) следует, что Mi = odd (int (N/21)), где int — функция округления с недостатком, a odd — функция проверки нечетности; ( 0 — четное odd (х) = ' 1 — нечетное. ' Определим функцию ,., ч f Л, odd (int (*)) = 0; odi (л:) = < 1 Я, odd (int (л:)) = 1, тогда выражение F,28) можно представить в следующем виде: / С* = 1] П K°di ^Л'/2^[г = z'Л2'И- F-29) Введем дополнительные переменные Ki и ж,-: *<> = #; Ki+1 = Ki/2; x0 = А; xi+l = x\. F.30) Эти переменные будем подсчитывать в цикле, который запишем перед алгоритмом F.29): [х0 = Л] [tf0 ^ tf] Д 1Хч1 = *,/2. *,+1 = *?] [* = 1] П1М(^/2'))[2 = г-Л«']]. Объединим циклы в один: / [х0 = А, K0 = N, 2=1] П [(odi (Л^/2')) U = г-Ла'] [/С,+1=/С^/2, *f+1 = *?]]. 1=0 Из условий F.30) легко видеть, что N/21 = Kt, А2 = Х{. Следовательно, [х0 = А, К0 == N, z = 1] П [(odi (К,)) [г = г-ж,] [К,+1 = *,/2, *,+1 = *?]]. 254
Так как в каждом цикле вычисляется только одно значение переменных х-х и Kt< то, по предложению П14, индекс можно опустить: / [х = Л, /С = JV, 2 = 1] П [(odi (К)) [z = 2-х] [/С - /С/2, * = *2]] = = 1=0 со [х= Л, /C = JV, z= 1] ГТ 0"<0[(odi(/C))[? = z.^][/( -/С/2, x=x2]]. Из F.27) следует (i < /) == (К > 0). Таким образом, со [х = A, K = N, z=l] П (/С > 0) [(odi (/С)) [2 = 2-х] [/С =/С/2, х = х2]]. i-O При записи этого алгоритма на языке ПЛ/1 получаем программу из работы Кинга [13]. Правильность программы доказана. 6.3.2. Композиция агрегативных моделей Перейдем непосредственно к задаче преобразования моделирующего алгоритма агрегативных моделей и покажем, как в этом случае применяется введенный выше аппарат [191. Дальнейшее изложение удобно провести на примере. При его рассмотрении будут введены конструкции, пригодные и в общем случае. В качестве примера возьмем однолинейную систему массового обслуживания с ожиданием и прямым порядком обслуживания. Выбор такого простого примера был вызван лишь желанием не перегружать изложение громоздкими преобразованиями и вычислениями. Представим систему в виде агрегативной модели, в состав которой входит три агрегата: «Накопитель», который моделирует очередь, «Устройство выбора», которое выбирает из накопителя следующую заявку по окончании обслуживания, и «Задержка на случайное время ф», которая символизирует само обслуживание (рис. 6.24). Отметим, что подобные «мелкие» элементы характерны и для ряда языков моделирования. Перейдем к описанию агрегатов и схемы сопряжения, вводя по ходу изложения необходимые понятия. Накопитель, На его вход поступают заявки, которые становятся в очередь. По запросу из очереди выбирается следующая заявка. Накопитель как агрегат имеет входные клеммы: 1г A), на которую поступают сигналы-заявки Х\, и 1Х B), на которую с устройства выбора поступает сигнал-запрос на следующую заявку ('дай-заявку'). Состояние накопителя обозначим Zx. Рис. 6.24. Однолинейная система массового обслуживания как агрегативная система 255
С единственной выходной клеммы накопителя 0Х A) в соответствии с алгоритмом работы выдаются: сигналы-заявки Y\; сигнал об образовании очереди 'очередь'; сигнал-отказ 'заявки нет'. В накопителе могут произойти два события: 1. Приход заявки, и тогда заявка ставится в очередь. Если при этом накопитель к моменту поступления заявки был пуст, то на выходную клемму 0г A) подается сигнал об образовании очереди ('очередь'). 2. Приход сигнала 'дай-заявку' от устройства выбора. Есля в очереди заявки есть, то первая из очереди поступает на клемму 01 A). Если в очереди заявок нет, то на клемму 0г A) подается сигнал об отказе ('заявок нет'). Для дальнейшей формализации сигналов, состояния и функции перехода введем некоторые общие понятия. Пусть имеется множество элементарных данных: alt а2, а3, ... Это могут быть числа целые или действительные, либо строки символов, заключенные в апострофы, например, ах =4, а2 = 0,49, аг = 'Накопитель', а4 = 'дай-заявку' и т. п. Элементарные данные могут объединяться в векторы (списки) А = a*|?=i переменной длины N> которая может меняться в процессе функционирования моделируемой системы. Множество векторов X = (Л, В, С, ..., Р) будем называть скобочной структурой или просто структурой, при этом количество векторов, входящих в структуру, фиксировано. Структуры могут объединяться в списки структур С = X/ \fL\. Иногда в целях сокращения записи в том случае, когда это не будет приводить к недоразумениям, вместо обозначения X/ \fLi будут использоваться сокращенные обозначения Xj \^ или просто X (аналогично для ас |?Li будут использоваться at |f или а). Элементарные данные, векторы, структуры и списки структур будем называть данными. Из данных с помощью скобочной записи можно формировать новые структуры данных. Если конкретный вид данных не важен, то будем писать X = STR — это обозначение говорит лишь о том, что данные X являются некоторой структурой. Перепишем состояние накопителя, используя введенные выше обозначения: z = (M) = (Mt\Li), где Mi |!=1 — список сигналов-заявок, находящихся в очереди; / — переменная длина списка, меняющаяся с изменением длины очереди. Опишем входные и выходные сигналы: Х\ = STR\ X\ — 'дай-заявку'; Y\ = STR\ Y\ = 'очередь'; Y] = 'заявок нет'. Таким образом, про входной сигнал X] (поступающие заявки) мы знаем лишь, что он представляет собой некоторую структуру (в данной структуре могут быть записаны, например, различные 266
параметры поступающих заявок). Аналогичное утверждение справедливо и относительно К}. В то же время сигналы Х\у Y\> Y\ представляют собой элементарные данные. Запись X = STR говорит, в частности, о том, что каких-либо ограничений на структуру сигнала X не налагается. Перейдем к описанию функции перехода. На вход агрегата поступает входной сигнал (обозначим его X), с выхода — снимается множество выходных сигналов К1, К2, К3, ..., Ys или {Y}. Функция перехода агрегата может быть представлена в виде (Z, {Y}) = f(Z, X), F.31) где Z в левой части формулы —- новое состояние агрегата, а в правой части — старое. Для единообразия записи будем считать, что в момент «обнуления» на агрегат поступает некоторый фиктивный сигнал специального вида. Это позволяет формально распространить формулу на моменты времени, связанные с «обнулением» координат. Представим функцию F.31) в виде операторного выражения. Введем N блоков по числу типов событий. В данном случае типов событий два: приход заявки и окончание обслуживания. Будем их называть блоками первого порядка функции перехода. Порядок блока будем указывать в виде индекса при закрывающей скобке условия: (Ui)i HZ, {Y)) = h(Z, X)] (?ШB, {Y)) = U(Z, X)] (UN)ll(t{Y)) = fN(Z,X)]. F.32) Соотношения F.32) могут быть переписаны в следующем виде: П[(<Ш(*. {П) = М*. X)]]. (б.зз) Далее представим каждую подфункцию ft с помощью некоторой системы условий {(?/^-)} в виде, аналогичном F.33): [(Z, {Y}) = ft{Z, X)]= U №М(Ъ {Y)) = fu(Z, X)]], F.34) т. е. каждый блок функции перехода первого порядка разбивается на подблоки второго порядка, отмечаемые цифрами 2 при закрывающей скобке условия (UijJ- Этот процесс следует продолжать до тех пор, пока подфункции {ftjk...m}> получающиеся в результате разбиения, не станут достаточно простыми и легко представимыми с помощью стандартных функций таких, как присваивание, арифметические выражения и т. п. Для единообразия в формулах F.33) и F.34) перед записью выполняемого действия стоит запись какого-либо условия. В частности, если действие 9 П/р СВ. Емельянова 257
выполняется всегда, то условие также будет всегда истинным и обозначаться (И)х (ИJ (индекс зависит от порядка блока). Однако в последнем случае это условие может быть опущено в записи функции перехода. Выполнение алгоритма перехода будет заключаться в последовательном просмотре его записи и выполнении тех действий (выраженных через стандартные функции), при которых записанные условия истинные. Опишем в указанном виде функцию перехода накопителя. Работа накопителя определяется двумя условиями: поступление сигнала Х\, обозначим это условие (Хг = Х\); поступление сигнала Х\, обозначим его аналогично (Хх = Х\). При поступлении сигнала Х\ с выхода накопителя снимается выходной сигнал Y\f при поступлении сигнала Х\ выдаются (в зависимости от условия наличия заявок в очереди) сигналы Y\ Y3: (Xt-xDiHZuYb-fx&uXiyi (x,-x?)i[(z,.yl,y?)-/,(z„ хЫ Данная запись просто означает, что новое состояние и выдаваемые сигналы определяются некоторыми функциями fx и /2 (вид которых раскрывается далее), зависящими от старого значения состояния и поступившего входного сигнала. Введем две операции: постановку новой структуры в имеющийся список структур на место k и обозначим ее фЛ (операция с индексом); удаление структуры, стоящей в списке структур на месте k, обозначим ее 0*. (После выполнения этих операций все структуры, входящие в сформированный список, заново перенумеровываются.) С учетом перечисленных определений и соглашений функция перехода для накопителя представляется в виде (X, - Х{){ [(#J [М = М®МХ\] (l(Mc) = 0J[Yi = Y\]] (Xt-Xf)il(l{M)>0J[Y\ = Mu Yi**YlM-Mei1 (l(M) = 0J[Yi*=Y\]l В соответствии с этой записью осуществляется последовательный просмотр всех блоков первого и второго порядков (при программной реализации алгоритма это делает ЭВМ) и выполняются только те из них, для которых условия, стоящие перед блоками, истинные. Поясним смысл некоторых, еще не определенных условий и операций, встречающихся в рассматриваемой записи: условие (/ (Мс) = 0)а означает, что длина списка Мс («старого», до поста- 258
новки в него заявки) была равна нулю, т. е. что накопитель был пуст; операция У\ = Y\ — выдачу выходного сигнала Y\ с выходной клеммы накопителя; М — М ®i+\X\ — постановку сигнала-заявки Х\ в конец списка структур М\ операция Y\ = Mi — присваивание данному с именем Yx структуры Мх (первой структуры в списке М); операция М = М&г — исключение первой структуры из списка М. Остальные два агрегата системы — устройства выбора и задержки — рассмотрим менее подробно, поясняя только смысл вновь вводимых обозначений, данных, операций и т. д. Устройство выбора. Опишем координаты состояния и функции перехода устройства выбора во введенных выше терминах. Обозначения клемм представлены на рис. 6.24. Состояние Z2 = (со), где о = ('занят', 'свободен') — признак, указывающий на текущее состояние обслуживающего прибора. На клемму /2 A) поступают входные сигналы: Х\ — STRy соответствующие заявкам; Х\ = 'очередь', соответствующий появлению очереди в момент поступления заявки в пустой накопитель; Х\ — 'заявок нет' (отказ накопителя на требование дать заявку). На клемму 7,B) поступает входной сигнал Х\ = STR (сигнализирующий об освобождении прибора от обслуживаемой заявки, имеющей структуру STR), С клеммы 02A) снимается выходной сигнал-запрос Y\ ¦ ¦ 'дай-заявку', поступающий далее на накопитель. С клеммы 02B) снимается сигнал Y\ -¦- STR, соответствующий очередной заявке, поступающей на обслуживание. Алгоритм перехода записывается в виде (Х2 = Xl)i [Y\ = Xl Y2 = Yl о = 'занят'] (X2 = Xl){ (© = >свободен'J [Y2 = Y2] (X2 - Xi)i [0] (X2 = X% [со - 'свободен', Y2 = Y\]. При поступлении сигнала Х2 никаких действий не выполняется, что выражено пустым оператором [0]. Задержка на случайное время ф. Представим устройство задержки в виде агрегата и запишем ее координаты состояния, функцию перехода в символьном виде. Состояние Z3 — (Л, ?), где А = STR соответствует структуре обслуживаемой заявки; ? — элементарное данное, означающее оставшееся время обслуживания (задержки) заявки. На единственную входную клемму /3A) поступают сигналы XI - STRy соответствующие заявкам, принимаемым на обслуживание. С выходной клеммы 03A) снимается выходной сигнал 9* 259
Y\ ~ STRy соответствующий обслуживаемым заявкам. Одновременно с выходной клеммы 03 B) снимается сигнал Y\y равный сигналу Y\, который поступает на вход устройства выбора и сигнализирует об освобождении обслуживающего прибора («Задержки»). Обозначим условие, связанное с окончанием обслуживания («обнуление» ?), через (Х8 = Х1)х. Алгоритм перехода имеет вид (Xz = Xl)dA = Xl 6 = Ф] (Х3 = X§)i [Yl = Л, Га = Yl Y\ = У], Г3 = Yl I = +оо]. Условие (Х3 = Xij), содержательно означает, что заявка обслу- жилась и покидает прибор. Поскольку в этот момент на приборе новой заявки нет, время ? принимается равным + оо. Схема сопряжения системы, указывающая адресацию сигналов, легко восстанавливается с помощью рис. 6.24. Нашей дальнейшей задачей является объединение трех введенных агрегатов в один. Для описания алгоритма композиции необходимо ввести еще два понятия: внутренней схемы сопряжения по каналам связи и внутренней схемы сопряжения по сигналам. Обе эти схемы сопряжения автоматически строятся из исходной схемы сопряжения. Поясним их смысл на данном примере. Внутренняя схема сопряжения по каналам связи является частью исходной схемы сопряжения и соответствует каналам связи, проложенным лишь между объединяемыми агрегатами. Условно обозначим ее @г A), 02 A), 02 B), 03 B)) = Rx (/2 A), 1г B), /, A), /2 B)), где оператор Rt$ задающий внутреннюю схему сопряжения по каналам связи, ставит в соответствие каждой входной клемме It (k) выходную клемму 0Х (т). Кроме того, введем понятие внутренней схемы сопряжения по сигналам, которые нам понадобятся для структурного объединения агрегатов. Эта схема автоматически строится по оператору R1 и каждому входному сигналу Х\ ставит в соответствие выходной сигнал Y?, направляемый на клемму It (k) по схеме сопряжения Rx. Обозначим ее оператор через хг. Для рассматриваемой системы «г /V1 V2 V3 Vх V2 V2^ — (YX Y2 Y3 Y2 Y1 Y4\ Х\\1и '!• *b '2» У 2» / 3/ = VA2> A2» Л 2, Aj, A3, Л2)- Структурное объединение агрегативной системы в один агрегат можно разбить на следующие этапы: I. Сформируем состояние агрегата как скобочную структуру из структур, описывающих состояния исходных агрегатов. Для примера Z = (Z„ Z2, Z3) = ((Af4 |Li), (со), (Л, I)). Удаляя внутренние скобки, получим Z = (Af,|Lb ю. А% I). 260
II. Перепишем последовательно функции переходов исходных агрегатов и перенумеруем все блоки первого порядка. Клеммы и сигналы в множестве значений и аргументов соответствующих внутренних схем сопряжений Rx и хг назовем внутренними клеммами и сигналами. В примере это будут Л B), /2A), h B), /8A), 0,A), 02A), 02B), 03B), X2U Xl v2 v3 v4 vl vl v2 v3 v1 V2 V2 Л 2, A 2, Л2, Лз, /i, I и ' b Ь. J2i 4' Клеммы и сигналы, не являющиеся внутренними, назовем внешними. В примере это 1г A), 03 A), Х\, Y\. События, вызванные приходом внутренних сигналов, назовем внутренними, остальные события назовем внешними. III. В качестве входных и выходных клемм формируемого агрегата возьмем соответствующие внешние клеммы /х A), 03 A). Входными и выходными сигналами формируемого агрегата также будут соответствующие внешние сигналы Х\ = STRy Y\ = STR. IV. Допишем в каждой строке, в которой выдавались внутренние сигналы, операторы присваивания [х\ = YJ1], где внутренний входной сигнал X) соответствует внутреннему выходному сигналу Yf по схеме сопряжения т1# Введенный оператор присваивания указывает порядок просмотра и выполнения (в случае истинности соответствующего условия) блоков. Именно, сначала просматривается первый (по нумерации, установленной в п. II) блок. Если этот блок оканчивается оператором [Х\ = Yf], то следующим выполняется блок, начинающийся условием (Х( — Х\), и т. д. Для рассматриваемого примера после выполнения этапов II— IV получим запись (стрелками справа отмечен порядок выполнения блоков): 1) (Хг = Х\)Л(ИJ[М = МфмХ\] (/(Мс)=0J[Г1 = гП[Х1 = гП]-4; 2) (XL^ X2l)l[(t(M)>0J[Y\^ Ми Yx = Ylu M^Med lXl = Y\]-+3 (I (M) = 0J ЦУг - У?] [Х\ = Y]]] -+ 5; 3) (Х2 = Х1)х [Y\ = Xl Y2 = Yl со - 'занято'] [Х\ = Г22]^7; 4) (Х2 = Xl)x (со = 'свободен'), [Y2 = Y\] [X\ - У2] ^ 2; 5) (*2 = *!)|[0]; 6) (Х2 - X2)i [о = Свободен5, Г - 72] [X? = 72] -*2; 261
7) (Х3 = Х& [А = Xl, I = ф]; 8) (X3 = Х§), [^ = А, Г3 = Fi Г32 = У|, Г3 = Yl, % = +00] [Х42 = У2]->6. V. Для наглядности перепишем указанную связь блоков в виде направленных графов. Число графов равно числу внешних событий (в примере их два). Началом каждого направленного графа будет блок, соответствующий внешнему событию. За каждым блоком следует блок, связанный с ним порядком выполнения, указанным стрелками в правой части формулы. В рассматриваемом примере связь блоков выглядит так: 1-^4-^2-^3-^7 8-^6-^2-^3-^7 \ \ 5 5 Поддеревья, идущие из одной вершины (в примере 2->5 и 2 -*¦ 3 -> 7), независимы в том смысле, что их можно выполнять в любом порядке. В общем случае необходимо использовать какой- нибудь механизм упорядочения блоков, например предложенный в работе [201. Также можно упорядочивать блоки, явно указывая порядок блоков с помощью приоритетов событий. В примере связь блоков выражается не в виде графа общего вида (с петлями), а в виде дерева. Это позволит осуществить «сворачивание» функции перехода без помощи циклов. В общем случае при «сворачивании» каждой петле будет соответствовать цикл. VI. Представим получившиеся деревья в «линейном виде». Поддеревья, идущие из одной вершины (в силу из независимости в данном примере), могут следовать в любом порядке: В общем графе с петлями в линейном виде представляется дерево, получающееся из этого графа удалением петель — петли же выполняются с помощью циклов. Подставим в «линейную» запись дерева на место каждого номера соответствующий блок, присваивая ему новый порядок. При этом каждый блок с номером п подставляется в предыдущий на место -+- п. Во второй блок, например, блок с номером 3 подставляется вместо -+- 3, а блок с номером 5 вместо -+¦ 5. В результате получаем функцию перехода, число блоков которой равно числу внешних событий. Для рассматриваемого примера находим (х, = х\)Л(ИJ[м = м@мх\]A (мс) =r.o)A[Yi = гПх X [X2, = F2] (Х2 = Х32K (со = 'свободен')* [[К2 = Y\] [х\ = К2] х х (X, = X2)s [(/ (М) = 0), [[К = Y\] [X\ = Y\\ (Х2 = Xl) х 262
х[0]](/(М)>О)б[[Г1 = Мь Yx^Yl M = iWei]x X [Xl = Y\] (X2 - XlO [[Yl = Xl Y2 - Y\% со = 'занят'] х x[xl = r|] (x,« xl). U = xj. E - ф]]]]]]]; (X3 = XS)i UYl « Л, r3 = Г|, r32 - Kj. Yz = Г2, 5 = +oo] x X [X42 = Y2Z] (X2 + X42J [[©-'свободен', Y2 - Kj] [X? = Y\] x X (X! = X?K [(/ (M) = 0L [[YX = K?] [X^ = Y\] (X2 - X32M X X [0]](l(M)>OL[[Y\ = Mu Yx = Yl M = Meil[Xl = Y\]x X (X2 - x?M [Yl = Xl Y2 - KL о - 'занят1] [Xj = Y\] x X (X3 = Xj)e[Л = xj. I = ф]]]]]. F.35) VII. Получившаяся запись содержит ряд лишних элементов. В ней могут содержаться: 1) пустые блоки (в примере — блок 5). Его следует удалить вместе с определяющим его условием; 2) избыточные присваивания, под которыми будем понимать пары присваиваний вида В = Л, С = В; они заменяются на одно С = А при условии, что данное В больше нигде в алгоритме не используется. В примере такими присваиваниями являются Y\ = = Ми Х2 = Yl Y\ = Xl Xl = Yl A = Хз, которые можно заменить на Л = Мх\ 3) условия, которые в рассматриваемой последовательности действий всегда истинны. Эти условия следует удалить. Например, в цепочке 1 -> 4 -*• 2 -> ... условие (/ (М) > 0)б всегда истинно (поскольку в блоке 1 длина списка М становится положительной). Аналогично в рассматриваемых последовательностях действий могут быть условия, которые заведомо ложны. Их следует удалить вместе со всеми последующими операторами. Например, в цепочке 1 -> 4 -*• 2 ... условие (/ (М) — 0N всегда ложно (по отмеченной выше причине); 4) присваивания и проверки условий, связанные только с передачей внутренних сигналов и при данном представлении функции перехода уже не несущие информационной нагрузки, например: v — v2 v2 — v2 v — у2 /1 — Г ь Л2 — / I, A2 — Л2, ... Указанные удаления осуществляются посредством последовательного просмотра и изменения записи алгоритма перехода. В рассматриваемом примере после проведения указанных удалений из записи F.35) получим (Xi = Xj)i [[M = М 0/+iXl] (со = 'свободен')* X X [Л = Мъ М = М Эх, со = 'занят', ? = ф]]; (Хз = Х§), [[rj = Л, Гз =- ^, g - + оо, 0 = 'свободен*] X X (/ (М) > 0L [А = Ми М = М 01, со = 'занят', ? - q>JJ. 263
VIII. Проводится переобозначение клемм, состояний и сигналов получившегося агрегата. Примем в примере следующие переобозначения: 11: = /{; Xl: = X\; Ol: = Oh Yl: - Ylz; X°: = X°z. IX. Проводится перенумерация блоков алгоритма перехода. Алгоритм перехода переписывается с учетом введенных переобозначений: (X = Х\ ЦМ = М ®м Xх] (со = 'свободен'), [А = = Ми М = М 9i, & = 'занят', | = ф]] (X = Х°)! [[Г1 = Л, Г = У1, 6 = + оо, со = 'саободен'] х х (I(M)>0)%[A = Ml9 M = M9i, © == 'занят', g = ф]]. Алгоритм объединения I—IX является общим, его можно запрограммировать и таким образом автоматизировать процесс композиции. Получившийся в результате композиции алгоритм перехода транслируется в моделирующий алгоритм, который уже не будет содержать «лишних» пересылок, проверок и т. п. Алгоритм перехода представляет собой запись реакции системы, синтезированной по реакциям элементов и схемы сопряжения. В заключение отметим, что запись алгоритмов в виде операторных выражений, которая использовалась здесь для проведения синтеза реакции системы, была положена в основу языка КОМПАС, программно поддерживающего построение агрегативных моделей и допускающего приведенные выше структурные преобразования.
ГЛАВА 7 АНАЛИЗ ДИНАМИЧЕСКИХ СВОЙСТВ МОДЕЛЕЙ СЛОЖНЫХ СИСТЕМ 7.1. РЕГЕНЕРИРУЮЩИЕ ПРОЦЕССЫ В данной главе на примере агрегативных моделей (см. гл. 2) будет показана возможность организации направленных имитационных экспериментов [27] по анализу ряда важных свойств этих моделей. Идея организации подобных экспериментов уже обсуждалась во введении. Здесь мы приведем как математические результаты, лежащие в основе подобных экспериментов, так и схемы их организации. Поскольку направленные имитационные эксперименты пока что не получили должного распространения в практике моделирования, мы стремились изложить саму идею этих экспериментов и способы их реализации достаточно подробно. Математические результаты лишь формулируются — доказательства читатель может найти в цитируемой литературе. Многие случайные процессы, протекающие в реальных системах, являются регенерирующими. Содержательно свойство регенерации означает наличие таких моментов времени, которые «делят» траекторию процесса на две статистически независимые части: «прошлое» и «будущее». Образно говоря, траекторию регенерирующего процесса можно себе представлять сшитой из независимых и одинаковым образом организованных фрагментов. Классическим примером регенерирующего процесса является марковский процесс, для которого моменты попадания в любое фиксированное состояние могут считаться моментами регенерации. Теория регенерирующих процессов широко используется при аналитических и машинных исследованиях моделей, описываемых марковскими процессами, моделей массового обслуживания, управления запасами, вычислительных сетей и др. [5—7, 9—12, 15—17, 19, 20, 22, 25]. Перейдем к определению регенерирующего процесса, следуя при этом классическим построениям В. Смита [17]. Пусть задана неотрицательная случайная величина т такая, что Р (т > 0) > 0, Р (т < оо) = 1, а также случайный процесс ? (/), развивающийся на промежутке времени [0, т) и принимающий значения из полного сепарабельного метрического пространства (Е, р) (р — метрика в Е). Для практических целей подобное предположение не является ограничительным. Назовем эту пару объектов (? (•), т) циклом. Содержательно цикл и является тем 265
фрагментом, из независимых «дубликатов» которого сшивается регенерирующий процесс. Однако это не значит, что процесс ? (.) и величина т не зависят друг от друга. Напротив, наиболее распространенным случаем является такой, когда т — момент остановки [24] для процесса ? (•). Иначе говоря, в каждый момент времени t по виду траектории процесса ? (и), 0 <; и < / необходимо определять, наступил момент т или нет. Примером может служить уже упоминавшийся выше момент возвращения марковского процесса в фиксированное состояние. Итак, предположим, что задана последовательность независимых и одинаково распределенных циклов (?*(•)> т^), i = 1, 2, 3,... Обозначим 50 = 0, Sx = xv 52 = тх + т2, ..., Sk = = хх + ... + тА, k ^ 1. «Сошьем» из данной последовательности циклов процесс ? (¦) по следующему правилу: ?@ = lx(f), если /<SX; С @ = Et (' - 50, если 5Х < / < 52; G.1) S @ = б* (/ - S*-i). если SA_X < t < Sft. Процесс ? (•), построенный в соответствии с формулами G.1), назовем регенерирующим с точками регенерации О ~ SQ, Sly 52, ... Последовательность S0f Slt S2, ... назовем вложенным процессом восстановления. Из построения ясно, что все характеристики регенерирующего процесса ? (.) полностью определяются характеристиками цикла (? (•), т). Для дальнейшего важно также определить регенерирующий процесс с запаздыванием. Он отличается от регенерирующего лишь тем, что распределение первого цикла (?х, тх) отличается, вообще говоря, от распределения остальных циклов. Обозначим через Fx (х) функцию распределения длительности первого цикла, предполагая, что F± (оо) = 1, т. е. Р (тх < оо), а через F (х) — общую функцию распределения длительностей остальных циклов для регенерирующего процесса с запаздыванием, т. е. F(x) = P(t,<x), лг>0, *>2. Процесс восстановления, вложенный в регенерирующий про" цесс с запаздыванием, назовем процессом восстановления с запаз" дыванием. Для регенерирующего процесса Fx (х) = F (х)> х !> 0. Один и тот же случайный процесс может быть представлен в виде регенерирующего, вообще говоря, неоднозначно. Например, марковский процесс с конечным множеством состояний может быть разбит на различного рода циклы в соответствии с моментами возвращения в каждое состояние. Возможны и другие разбиения. Поэтому свойство регенерируемости является следствием нашего представления исследуемого процесса в виде G.1). Возможность же такого представления должна быть специально обо- 266
снована. Кроме того, при неоднозначном представлении процесса ? (•) в виде G.1) возникает задача выбора таких циклов, из которых составляется изучаемый процесс и которые достаточно удобны с определенной точки зрения, например с вычислительной. 7.2. АНАЛИЗ РЕГЕНЕРИРУЮЩИХ ПРОЦЕССОВ 7.2.1. Стационарные распределения И в теории, и в приложениях важное место занимают такие процессы ? (•), у которых существует финальное (стационарное) распределение Q(B) = lim P(?@<ES). G.2) t + CO Оценка подобных распределений и других стационарных характеристик вида \ f (у) Q (dy) (где / — некоторая измеримая функция, заданная на пространстве состояний процесса ?(¦))> является обычной задачей, решаемой, в частности, при моделировании [5, 12, 19, 20]. Отметим, что вероятность Q (В) может быть представлена в виде J / (у) Q (dy), если в качестве функции f взять индикатор (характеристическую функцию) множества В. Одним из достоинств регенерирующих процессов является простота решения вопроса о существовании финального распределения Q. Мы приведем соответствующее утверждение, хотя и не в самой общей формулировке, однако вполне достаточной для наших целей. Обозначим через F{k) ^-кратную свертку функции распределения F, k^> 1. Иначе говоря, FiV(x)=\F(x-y)dF(y)y х>0; Л*> (х) = \ Я*-1' (х - у) dF (у), х> 0. о Примем, что функция распределения G имеет абсолютно непрерывную компоненту, т. е. для некоторой неотрицательной функции 00 g (х) такой, что J g(x)dx>Oy при всех — оо < х < оо спра- —оо X ведливо неравенство G(x)>- J g(y)dy. При этом абсолютно —со непрерывной компонентой функции распределения G (х) называется функция G0 (х)у определяемая равенством G0 (x) = 267
X = J gc{y)dy, где gc (у)— максимальная из функций, для —00 X которых выполняется неравенство G (х) !> j g (у) dy. Если у —со функции G существует плотность, то она совпадает с функцией gc. Обозначим через 2 класс таких функций распределения F, что для некоторого натурального k функция F{k) имеет абсолютно непрерывную компоненту. Теорема 7.1 [17, 24]. Если ? (•) — регенерирующий процесс с запаздыванием (при этом Fx (оо) = 1) и выполнены два условия 00 a) F g 2; б) т = Ет = } xdF (х) < оо, о tb у процесса ? (.) существует финальное распределение Q и Лля любой интегрируемой функции / справедливо равенство ^(y)Q(dy) = ±-E^(l(t))dt, G.3) О в котором символ Е означает усреднение, а пара (? (.), т) — цикл регенерирующего процесса ?> отличный от первого. Условие а данной теоремы может быть ослаблено, но даже в предлагаемом варианте оно не является стесняющим с практической точки зрения. Поэтому основным условием существования финального распределения Q (или, что то же самое, интеграла вида J f (у) Q (dy)) является существование средней длительности т цикла регенерации. Важную роль в теоретических исследованиях играют стационарные процессы, т. е. такие, у которых всевозможные конечномерные распределения вида Р (? (tx + t) ? Bl9 t> (t2 + t) ? ?2> • ••i ? (*r + 06 &r) не зависят от /. В частности, для стационарных процессов справедливо равенство Q (В) = Qt (В) для всех <>0. Теорема 7.2 [25]. Если ? ()— стационарный регенерирующий процесс с запаздыванием и длительности циклов хг и т2 являются моментами остановки для соответствующих процессов 1г (¦) и ?2 (•)» то вложенный процесс восстановления является также стационарным, иначе говоря, х F1(x)=^-ijjll-F(u)}du. G.4) Q 268
7.2.2. Склеивание процессов восстановления В дальнейшем важную роль играет понятие склеивания процессов восстановления, которое в последние годы широко применяется при анализе и оценках эргодических свойств случайных процессов и их устойчивости [1, 6—11, 15, 16, 23, 26, 29—35]. Пусть 0= So, Si, S2, ... и 0 = So, Si, S2, ... — два процесса восстановления (вообще говоря, с запаздыванием), заданных на одном вероятностном пространстве. Определение. Случайный момент времени 9 - min [Sk : (Sk = Si) U (S* = S?) U • • •} G.5) назовем временем склеивания двух сравниваемых процессов восстановления. Данное определение говорит о том, что момент склеивания является минимальным общим моментом восстановления для сравниваемых последовательностей Si, S2, ... и Si, S2, ... Для получения содержательных результатов должно быть выполнено условие конечности времени склеивания, т. е. Р @< < оо) = 1. Из определения ясно, что время склеивания 0 в значительной степени зависит от того, каким образом заданы совместно сравниваемые процессы восстановления. Например, если величины тх = Su т2 = S2 — Sj имеют плотности, а процессы Slt S2, ... и Si, S2, ... независимы, то 0 = оо с вероятностью 1. Добиться конечности величины 0 можно, изменяя совместное вероятностное распределение процессов Si, S2, ... и Si, S2, ... При этом частные (маргинальные) распределения процессов Si, S2, ... и Si, S2, ... должны оставаться фиксированными. Они полностью определяются функциями распределения Fx (х) = Р (тх <; х)> F (х) = ^ Р (т2 <? х) (для процесса Slf S2, ...) и аналогичными функциями распределения F\ (х) = Р (т; < *), F' (х) = Р (т'2 < х) (для процесса Si, S2,...). Обозначим S (F\, F, F\> F') семейство всевозможных совместных распределений L ({Si, S2, ...}, {Si, S2, ...} последовательностей Si, S2, ... и Si, S2, ..., при которых величины ть т2, ... (соответственно ri, т2, ...) остаются независимыми, причем хг имеет распределение Fx, а т2, т3, ... — общее распределение F [соответственно, Р (х[ < х) = F[ (х), Р (тг < х) = Р (т? < х) = - ... = Г(х)]. Теорема 7.3 [8, 23, 31]. Если функции распределения F и F' удовлетворяют условиям а и б теоремы 7.1, то существует такое совместное распределение L ({Si, S , ...}, {Si, S2, ...}) из класса i? (Fu Fy F'u f"), что для процессов Si, S2, ... и Si, S2, ..., имеющих это распределение, выполняется равенство р (е< оо) = 1. G.6) 269
7.2.3. Оценки характеристик регенерирующих процессов Как будет показано далее, ряд важных характеристик регенерирующих процессов выражается в терминах времени склеивания. Поэтому нужно уметь получать не только качественное утверждение типа G.6) о существовании этого времени, но и количественные оценки функции распределения времени склеивания, а также различных ее числовых характеристик — моментов, квантилей и т. п. Такие оценки могут быть получены. Ниже будет приведено лишь одно, отнюдь не самое общее утверждение подобного рода, только для того, чтобы дать представление о возникающих здесь проблемах. Теорема 7.4 [8, 23]. Если в условиях теоремы 7.3 у случайных величин %i и х\ существуют моменты порядка у > 0, т. е. max ( ЕтТ, Ет?, Е (tI)v, Е (%'2)у ) < Щ < «>, то существует такое совместное распределение L ({Slt S2> ¦..}, EJ, S'2t ...}) б 3? (Fu F, F'u F')y что для процессов 5Ь 52, ...» «Si, S'2> ..., имеющих это распределение, и для некоторой постоянной су > 0 справедливо неравенство EG7 < су. G.7) Постоянная су в неравенстве G.7) может быть явным образом оценена (аналитически), и ее оценка зависит от величин /л, ту и абсолютно непрерывных компонент распределений F и F' (см. условие а теоремы 7.1). Хотя оценки, приведенные в теореме 7.4, могут правильно характеризовать порядок времени склеивания, количественные оценки типа G.7), полученные аналитическим путем, грубы, и поэтому их использование в прикладных задачах может привести к большим неточностям. Для нас более существенным оказывается конструктивный характер доказательства теорем 7.3 и 7.4, а именно, в процессе их доказательства совместное задание процессов {Sx> S2, ...} и {SI, Sz, ¦..} осуществляется конкретно (алгоритмическим путем). Такое задание определяет как значение времени склеивания, так и его свойства. Указанное алгоритмическое задание может быть положено в основу ряда направленных имитационных экспериментов. Теорема 7.5 [8, 11 ]. Время склеивания 0 в теоремах 7.3 и 7.4 может быть получено с помощью описываемого ниже алгоритма склеивания. Для задания алгоритма склеивания введем некоторые обозначения. Работа алгоритма склеивания определяется произвольным числом г > 0, называемым «радиусом склеивания», значение которого может быть выбрано, например, исходя из требований минимальности времени работы алгоритма. 270
Обозначим через /<л> абсолютно непрерывные компоненты распределения F{k) (^-кратной свертки распределения F). Аналогичное обозначение f'{k) используем и для абсолютно непрерывной компоненты F'{k). Поскольку в условиях теоремы 7.3 F ? 2 и F'? 2, то существует такое число /л, что со inf ( min [/<"•> (х), /'("» (x + y)]dx = р >0. G.8) \t\<rj„ Соотношение G.8) говорит о том, что плотности /(т) и /,(т> «перекрываются» и, следовательно, практический выбор числа т затруднений не вызывает. Обозначим ру = J min [/<"•> (х), /'<»> (х + y)]dx; G.9) И„ (х) - -^- min [/<"•> (*), /'(»> (х + у)], | у |< г G.10) и пусть Fy (*) = U (*)-/> Л М")<*" (!-/>„)• G.11) По построению, Fy (х) является функцией распределения. Аналогично определим Г х ^ W = К" (* + {/) - Ру J И-» («) <*и A-Ы. *>-</• G-12) Введем следующие независимые последовательности независимых одинаково распределенных случайных величин: Хг (у), Х2 (*/), ... с функцией распределения Fy\ X{ (у), Х'ъ (у), ... с функцией распределения Fy\ Y\ (y)} Y2 (у), ... с плотностью распределения \iy\ 02, 9з, ... с функцией распределения F; 9?, 9з, ... с функцией распределения Ff\ бх (у)у б2 (у)> ... (величины б* (у) принимают значения 0 и 1) с распределением Р Ff (у) = 0) = 1 — pyt Р (б, (у) = 1) = р^. Пусть случайные величины 9Ь Э'ь не зависящие от приведенных выше последовательностей, имеют функции распределения F\ и F{ соответственно. Отметим, что при любом | у | < г случайная величина Zt = = Xt (у) A — б* (у)) + Yt (у) 6t (у) имеет функцию распределения FW (*), х ^ 0, а величина ZJ = XJ (у) A — б< (г/)) + + Yt (у) 6t (у) функцию распределения F'{m) (х + у), х >- — у, причем Р (Zt = ZI) ^ Р (б,- (г/) = 1) > р > 0. Работа приведенного ниже алгоритма склеивания является стохастической в том смысле, что участвующие в его описании случайные величины реализуются с помощью соответствующих 271
датчиков случайных чисел. В соответствии с этим, например, слова «генерация Хп (у)» в описании алгоритма следует понимать как обращение к датчику, генерирующему случайные числа с функцией распределения Fy. Алгоритм склеивания 1. Положить п = 1. 2. Сгенерировать величины Эь 0'ь положить 7: = 0Ь 7' := 0J. 3. Если 7 = 7', то перейти к шагу 8; если 7 < 7', то положить п := п + 1 и перейти к шагу 4; если 7 > 7', то положить /г := /г + 1 и перейти к шагу 6. 4. Если 7' — 7 > г, то сгенерировать 0П, положить 7 :~ 7 + + 0П и перейти к шагу 3; если 7' — Г<г, то положить у := Т — Т' (*/<0), вычислить ру по формуле G.9) и сгенерировать бп (#). 5. Если бп (#) — 1, то сгенерировать Yn (y)y положить 7 = = 7' : = 7 + 7n (r/) и перейти к шагу 8; если Ьп (у) = 0, то сгенерировать Хп (у) и Х'п (у)> положить 7 := Т + Хп (у), Т' := Т + Хп (у) и перейти к шагу 3. 6. Если 7 — 7' > г, то сгенерировать 0^, положить 7' := 7' + + 6ш и перейти к шагу 3; если 7 — V < г, то положить у := Т — 7' (у > 0), вычислить ру по формуле G.9) и сгенерировать бп (у). 7. Если бп (у) = 1, то сгенерировать 7П (#), положить 7 = = Г : = 7 + Yn (у) и перейти к шагу 8; если &п (у) = 0, то сгенерировать Хп (у) и Х^ (г/), положить Т :- 7 + Хп (у), Т := 7 + Х^ (г/) и перейти к шагу 3. 8. Положить 0 := 7. Алгоритм закончен. В результате выполнения алгоритма на шаге 8 получается одна случайная реализация случайного времени склеивания. Теорема 7.5 гарантирует конечность работы алгоритма. Будем говорить, что заданный алгоритм строит время склеивания 0 = = 0 (F\, Fy F\y F'). Если необходимо оценивать функцию распределения времени склеивания или его моментные характеристики, то нужно с помощью описанного алгоритма получить необходимое количество независимых реализаций величины 0 и затем найти требуемые оценки с помощью обычных статистических процедур. Приведенный алгоритм склеивания не является единственно возможным. Известны и другие, основанные, например, на генерации потока восстановления с помощью пуассоновского потока (в случае, когда функция распределения имеет ограниченную сверху функцию интенсивности h = //A — F)), В терминах времени склеивания очень просто оцениваются такие важные характеристики регенерирующих процессов, как длительность переходного периода и оценки непрерывности (устойчивости). Прежде чем приводить соответствующие результаты, нам необходимы дополнительные сведения из теории вероятностных метрик [3, 4], поскольку указанные выше характе- 272
ристики удобно и естественно оценивать именно через вероятностные метрики. Хотя спектр метрик, которые могут быть здесь использованы, достаточно широк, для определенности ограничимся лишь тремя их конкретными видами. Рассмотрим случайные величины (будем обозначать их латинскими буквами X, Y, ...), принимающие значения из полного сепарабельного метрического пространства (Е, р). Пусть Fx (В) — Р(Х ? В) — распределение случайной величины X, Аналогичное обозначение используется и для случайной величины Y. Назовем метрикой полной вариации Var (Fx, FY) между распределениями Fx и FY случайных величин X и Y величину Var {Fx, FY) = sup | Fx (B) - FY (B) |, где sup берется по всевозможным борелевским подмножествам В пространства Е. Если у распределений Fx и FY существуют плотности fx и fY соответственно, то метрика полной вариации имеет вид Var (Fx, FY) = ±^\fx (х) - fY (x) | dx. E Метрика полной вариации метризует достаточно сильную сходимость распределений случайных величин, которая так и называется сходимостью по вариации [3, 4]. Известно, что при рассмотрении вероятностных задач важная роль принадлежит понятию слабой сходимости [1, 2, 21 ]. Данный вид сходимости может быть метризован с помощью разных метрик. Приведем две из них. Метрика Форте — Мурье [4, 281, обозначаемая далее d (FXy FY)y определяется равенством d (Fx, FY) = sup \g(x)d(Fx(x)-FY(x)) где sup берется по всевозможным действительным функциям таким, что | g | < 1 и | g (x) — g (y) | < p (x, у), т. е. функции g ограничены по модулю единицей и удовлетворяют условию Липшица с постоянной 1. Метрика Леви — Прохорова [3, 4, 21], обозначаемая далее я (Fx> Fy)> определяется равенством я (Fx, FY) = sup {e : Fx (В) < FY (Я*) -}-- e для всех борелевских подмножеств В пространства Е}, где Ве — е-окрестность множества В, т. е. Я* = \х:р(х, В)<г). Справедливы следующие соотношения между введенными.метриками: я < Var, d < Var, л2 < d < Зд [71. 273
Пусть ? (¦)— регенерирующий процесс, Qt — его достацио- нарное, a Q — финальное (стационарное) распределения. Условия существования и вид финального распределения даны выше в теореме 7.1. Практически важным вопросом является оценка скорости сходимости достационарного распределения Qt к Q. Важность его уже обсуждалась ранее. Напомним, что она. вызывается как чисто прикладными аспектами, когда через время переходного режима выражаются основные характеристики системы, так и вычислительными, когда по длительности переходного режима можно судить, например, о возможности или невозможности использования стационарных характеристик для оценки работы модели. Будем измерять отклонение распределений Qt и Q с помощью метрики полной вариации. Заметим, что даже в этой достаточно сильной метрике имеет место сходимость Qt к Q при / -+• оо. Зададим произвольное число 0 < е < 1. Величину ГВ = Ы [t : Var(Qw, Q)<e для всех и>*} G.13) назовем временем переходного режима с уровнем е. Иначе говоря, начиная с момента Те> расстояние полной вариации между допредельным и предельным распределениями меньше заданного числа е. Очевидно, нет смысла оценивать величину Те с помощью оценок распределений Qt и Q — эта задача нереальна из-за непомерных затрат вычислительных ресурсов. Следующая теорема позволяет свести задачу определения времени ТЕ к оценке времени склеивания без оценки распределений Qt и Q. Теорема 7.6 [8, 23]. Для произвольного регенерирующего процесса с запаздыванием, определяемого распределениями ЪМ = Р(тх<х) и /Чх) = Р(т2<х); со m = J xdF {x)< oo, о имеют место неравенства Var(Qt, Q)<P(e(Flf F, F\ F)>t); G.14) 7,e<infU:P(e(F1, Л F°u F)>t)<s), G.15) X где tf(;t)eJLJ[l-F(tt)]dtt. 0 Зная оценки типа G.7), можно оценить и правые части неравенств G.14) и G.15). Например, с помощью неравенства Чебы- шева и оценки G.7) получаем Р(9(Л, Л F°u F)>t)<(cy/P). Однако, как уже отмечалось, подобные оценки грубы и, вообще говоря, мало пригодны для прикладных задач. Поэтому далее 274
в направленных имитационных экспериментах используются непосредственно оценки G.14), G.15), правые части которых оцениваются статистически с помощью выборки времен склеивания 0, полученной в результате многократного выполнения алгоритма склеивания. Отметим также, что оценки G.14) и G.15) полностью определяются лишь видом распределений Fx и F, задающих процесс восстановления, вложенный в изучаемый регенерирующий процесс ? (•)> и не зависят от других характеристик процесса ? (•). Таким образом, при практическом использовании утверждения теоремы 7.6 достаточно знать указанные распределения Fx и F. При анализе моделей одним из важнейших является вопрос о чувствительности ее характеристик относительно вариации параметров, определяющих модель. Если модель описывается регенерирующим процессом, то задача оценки чувствительности достаточно естественным образом решается также в терминах времени склеивания. Предположим, что имеются две модели, описываемые регенерирующими процессами ? (•) и ?' (•) соответственно. Для простоты примем, что оба этих процесса не имеют запаздывания. Наличие запаздывания не вносит никаких принципиальных изменений в выкладки, но только несколько их усложняет. Пусть F и F' — функции распределения, определяющие процессы восстановления, вложенные в процессы ? (•) и ?' (•) соответственно. Можно считать, что различие между функциями распределения F и F' обусловлено различием параметров, определяющих динамику процессов ? и ?'. Будем определять различие между процессами ? и ?' величиной v (?, ?0 = sup v(Q,, Qi)9 где v — любая из введенных выше метрик: я, d или Var. Естественно, что и расстояние v(Q, Q') между финальными распределениями процессов ? и ?' удовлетворяют неравенству v (Q, Q') <i v (?, ?'). Наша задача состоит в оценке величины v (?, ?'), которую назовем оценкой чувствительности, не прибегая к оценкам распределений Qt и Q't при всех t > 0. Пусть 6 = 9 (Fy F, F'y F') — время склеивания процессов восстановления, вложенных в регенерирующие процессы ? и ?', а Н (и) — функция восстановления, порождаемая моментами склеивания и определяемая следующим образом. Пусть 0Ь 62, ... — независимые случайные величины, распределенные так же, как и время склеивания 0, а ^ (и) = min \п : Qx + ... + 0П >- !> и\ — случайный индекс, при котором впервые накопленная сумма величин Qt становится не меньше уровня и. Тогда, по определению, Н (и) = Е^ (и). Теорема 7.7 [26]. Для двух произвольных регенерирующих процессов ? и ?' справедлива следующая оценка: v(?, ?')<inf maxv(Q/, QJ) + A + #A)) J P @ >u)du\. G.16) 275
Из оценки G.16) следует, что равномерное по времени «расхождение» между процессами v (?, ?') оценивается в терминах расхождения на конечных промежутках времени max v (Q/, Q/) t < т и «хвоста» распределения времени склеивания, оценку которого можно получить, используя алгоритм склеивания. Величина max v (Qt> Q/) может быть оценена как в процессе имитационного / < т эксперимента, так и путем использования аналитических соотношений. Для оценки интеграла I Р (Э > и) du необходимо вычислять т реализацию времени склеивания Э = Э (F> Fy F'f Fr), что предполагает, в частности, знание функций распределения F и F'', задающих вложенные процессы восстановления. Это, безусловно, снижает ценность предлагаемой оценки G.16). В ряде важных случаев, однако, можно гарантировать, что при «малых» отличиях F и F' функция распределения времени склеивания 0 близка к функции распределения F интервала восстановления в невозмущенном процессе ?. Это позволяет существенно упростить применение оценки G.16). 7.3. ОПИСАНИЕ АГРЕГАТИВНЫХ МОДЕЛЕЙ С ПОМОЩЬЮ РЕГЕНЕРИРУЮЩИХ ПРОЦЕССОВ Как отмечалось в гл. 2, процесс \г (ОЬ>о изменения состояния агрегативной модели во времени является марковским с кусочно- линейными траекториями. Такой характер процесса позволяет определить последовательность случайных моментов времени возвращения в некоторое фиксированное состояние 2: S1^inl[t:z(t) = z}\ S2 = inf{/ : t>Slt z(t) = z}; Sh^inf{t:t>S^l9 z(t) = z); В силу марковского характера процесса z (•) величины т2 = = S2 — Sl9 тз = S3 —• S2, ... будут независимыми и одинаково распределенными, кроме того, они не зависят от xi = Sx. Поэтому процесс г (•) можно рассматривать как регенерирующий с запаздыванием с моментами регенерации Sx, S2, ... Для применения приведенных выше результатов требуется, например, чтобы средние ?4*, * ^ 2, были конечными. Имеются содержательные примеры, когда это требование выполняется. Но на практике 276
встречаются и следующие случаи: 1) величина т* не имеет конечного среднего либо вообще бесконечна с положительной вероятностью; 2) величина E%iy хотя и конечна, но принимает большие значения, что исключает возможность использования приведенных выше результатов и оценок в ходе имитационного эксперимента. Однако требование выбора точек регенерации в виде моментов попадания процесса в фиксированное состояние не является обязательным. Приведем весьма эффективный и достаточно универсальный способ построения точек регенерации. Этот способ близок к предложенному И. Н. Коваленко и Н. Ю. Кузнецовым в работе [15] (см. также статьи В. В. Калашникова [8] и Д. С. Сильвестрова [23]). Можно указать также на близость данного способа к «методу расщепления», рассмотренному Е. Нум- мелином и другими авторами [33, 34]. Сравнительно несложной задачей является выбор такого подмножества В в пространстве состояний, что процесс, описывающий динамику агрегативнои модели, «регулярно» возвращается в это подмножество. Поскольку после попадания траектории процесса z (•) в подмножество В она может еще некоторое время находиться в этом подмножестве, необходимо корректно определить, что такое время возвращения. Приведем два возможных определения. В дальнейшем будем предполагать, что В — компактное множество. Зафиксируем число Т > 0 и определим рекуррентно моменты времени (данные определения корректны в силу компактности В и непрерывности справа траекторий агрегативных моделей, см. п. 1.2.1): to*=min{t:z(f)?B, t>0}\ tk = min{t:z(t)?B, t^tk + T); Так, построенные моменты обладают той Особенностью» что fk — — th-i > Т. Будем называтьк|Аножество В долцэдтельно возврат* ным, если sup E (/ft+1 - tk)< oo. G.17) k 277
Рассмотрим другой способ определения времени возвращения. Зафиксируем подмножество А из пространства состояний такое, что А П В = 0. Пусть t0 = min{t:z(t)?B9 />0}; /1 = min//:z@efl, <>/0. U (г(и)?А)\; *fc = min(* :*(/)€ Я, t>th_l9 U (г(и)еЛ)\; В этом случае также будем считать подмножество В положительно возвратным, если выполнено неравенство G.17) для построенных моментов времени. Возможны и другие способы определения времени возвращения. Построенные моменты времени t0i tly ... не являются, вообще говоря, точками регенерации, хотя в ряде случаев (при «малых» размерах множества В) приближенно их можно принимать за эти точки. Пусть существует такое число Тг > 0, что для всех z ? В справедливо соотношение Р(г, 7\, .)>№(•), G.18) где Р (г, Тъ •) — вероятность перехода марковского процесса г (•); ц (•) — некоторая вероятностная мера, заданная на подмножествах пространства состояний, 0 < q <; 1. Условие G.18) может быть интерпретировано следующим образом. Введем случайную величину б, принимающую значения О и 1: р (б = 0) = 1 — q\ Р F - 1) - q. Пусть Р (г, Т1У J = IP (г, Тъ .) - qii (.I/A - q) (если q - == 1, то полагаем Р = 0). При любом z ? В на отрезке 10, 7\] задаются два марковских процесса го (•) и <г (¦), го @) = z @) = г таких, что случайный процесс ?@ = бг0 @ + A - 6J@, 0 < * < 7\, G.19) является марковским с переходной функцией Р (г, tf •)> причем -Р (го (Тг) С ¦) = fx (•), а Р GG\) ? •) = F (г, 7\, .). Представление G.19) исходного случайного процесса z(-)> описывающего агрегативную систему, называют процедурой расщепления [331. Зададим процесс г (•) такой, что при всех / выполняется равенство одномерных распределений Р (z (t) ? •) = Р (z @ 6 •) 278
и, кроме того, процесс г (•) является «вложенным» в регенерирующий процесс. Таким образом, будет построен регенерирующий процесс ? @ = {z @> б @)» t ^ 0» одной компонентой которого является искомый процесс, а второй компонентой — случайный процесс б (/), принимающий всего два значения 0 и 1. Процесс ? (•) определим конструктивно путем задания его отдельного цикла. Обозначим цикл через (I (•), т), где значение процесса ? в каждый момент времени / < т представляет собой пару ? = (?х, б), в которой величина |г принимает значения из пространства значений процессов z (•) и г' (•)> а б — двоичная случайная величина. Шаг 1. Полагаем t = 0. Величина ?х @) является случайной с распределением \х. Шаг 2. Если ?х (/) ? 5, то перейти к шагу 3. Если ?х (t) ф В> то перейти к шагу 5. Шаг 3. Величина б (t) полагается равной 1 с вероятностью q и равной 0 с вероятностью 1 — q. Шаг 4. Если б (t) = 1, то полагаем т = / + Тг и б (и) = 1, ?i (и) = Zo (tt — 0» t < u<C t + Тг. Построение цикла закончено. Если б @ = 0, то полагаем б (и) = 0, ?х (а) = 2 (и — t), t < и -^ t + Тг; t :~ t — Тг. Перейти к шагу 2. Шаг 5. Положить gx (и) = z (и — /), / < а <; ^ + тв> где 2 (•) — марковский процесс, развивающийся в соответствии с переходной функцией Р (z, t, *), z @) = ?i (t)\ тв — время первого достижения траекторией процесса z (•) множества В; t := t + тв. Перейти к шагу 2. В результате выполнения описанного алгоритма строится цикл (| (•), т) регенерирующего процесса ? (•), первая компонента которого представляет собой случайный процесс, «чьи распределения в каждый момент времени t совпадают с распределениями изучаемого процесса z (¦)• Таким образом, в тех случаях, когда анализируемые характеристики зависят лишь от указанных распределений, задача анализа процесса, описывающего динамику агрегативной модели, сводится к задаче анализа регенерирующего процесса ?. Из построения процесса ? вытекает, что точками его регенерации являются такие моменты времени 0 = S0, Su S2, ..¦, что Sh+1 = min{t:t^Sh + Tu 6(a)-1, t-T1<u*?t). Трудности, которые возникают при построении процесса ? из исходного процесса, связаны с представлением z (•) в виде G.19) и вычислением переходных характеристик процессов г0(-) и z (•) соответственно. Тем не менее в силу того, что конкретные модели порождают вполне определенную структуру переходов процесса z (•), процедура построения процессов z0 (•) и ?(•) вполне осуществима. 279
7.4. НАПРАВЛЕННЫЕ ИМИТАЦИОННЫЕ ЭКСПЕРИМЕНТЫ Во всех описываемых ниже экспериментах предполагается, что имеется агрегативная модель системы (обозначаемая М)> динамика которой описывается регенерирующим (без запаздывания) процессом г(-)- Тем самым утверждается, что в случае необходимости совершается процедура расщепления вида G.19) и реализуется построение регенерирующего процесса в соответствии с алгоритмом, описанным в п. 7.3. Будем также считать, что заданы условия R, наложенные на отрезки траекторий z (•) и определяющие наступление моментов регенерации, т.е. момент t считается моментом регенерации, если для отрезка траектории z {и)У 0 < и < t выполняется условие R. В простейших случаях условие R может означать принадлежность текущего состояния определенному подмножеству пространства состояний» 7.4.1. Эксперимент по определению стационарных характеристик [5, 19, 20] Задачей является оценка стационарного среднего J f (у) Q (dy). В соответствии с теоремой 7.1 [см. формулу G.3)] Si f ^^f(y)Q(dy) = ^rE^f(z(t))dL о Статистическая оценка величин Е5Х и Е J / (z (t)) dt осущест- о вляется следующим образом. Обозначим тх = Si; т2 = S2 - Slf ...; xfc = Sk - Sh_u ...; Vk = f f (z (t)) dt. Задавая на модели М условия регенерации R, получим путем имитации две выборки размера N (N — фиксированное число): *1, та, ..., *дг и Vu V2y ..., VN случайных величин тх, т2, ¦.., Vl9 V2, ••• соответственно. Отметим, что, по построению, как тх, т2, ..., так и Vl9 l/2, ... — независимые одинаково распределенные случайные величины. Обозначим 1 = 1 Оценкой (точечной) / искомого значения f является величина ?= У/т. G.20) 280
Стандартными методами можно построить 100 A —6)%-ный доверительный интервал для /: где гь = Ф'1 A •— 6/2); Ф — функция распределения стандартизированного нормального распределения; s = sn — 2/ s12 + / 52г; --т^[|"*-тA>)(!'')} Г N / N \2 Величины su, s12 и s22 представляют собой выборочные дисперсию величин Viy ковариацию величин Vt и xiy дисперсию величин xt соответственно. Формулы G.20), G.21) дают решение поставленной задачи. Доверительный интервал G.21) получен с помощью центральной предельной теоремы, применимость которой обеспечивается фактом независимости и одинаковой распределенности величин %1У т2, • •, Vlf К2, ..., что является следствием регенерируемости исходного процесса. Однако формула G.21) верна лишь в предположении конечности вторых моментов Ех\ и EV\, что на практике не создает ограничений. «Направленность» эксперимента заключается в использовании в процессе имитации дополнительной информации о существовании точек регенерации (условие R) в целях формирования математически достоверных оценок и фиксации соответствующих количественных характеристик. В книгах [5, 19] даны примеры применения этого метода к конкретным моделям и соответствующие количественные данные. 7.4.2. Эксперимент по оценке времени переходного режима [8, 11 ] Задача состоит в оценке величины Тг [см. формулу G.13) ] при фиксированном е. Решение сводится к использованию утверждения теоремы 7.6 для организации направленного имитационного эксперимента, заключающегося в следующем. 1. По выборке xlf та, ... строится эмпирическая функция распределения F. 281
2. Строится оценка F0\ функции распределения х Fl(x)=-lr\jll-F(u)]du О (см. теорему 7.6). 3. С помощью алгоритма склеивания находятся N реализаций величин О* (F, F, Fu F)> которые обозначим Ql9 62, ¦.., 0#. 4. Пусть +j: {б/ > t}\ означает число членов выборки 8i, ..., 6^, значения которых больше t. В качестве оценки Тг времени переходного режима Тг выбирается величина Те = min U : # {6< > *}" < ЛГе}- Данный эксперимент может быть модифицирован. Это обстоятельство дает возможность ограничиться оценкой выборочного среднего N 8 —-дГ^б*» дающего оценку и всего распределения величин Qt. Эксперимент может быть естественным образом распространен на случай, когда исходный процесс обладает запаздыванием. Для этого необходимо лишь реализовать величины в{ (?ь ?, ??, ?). Однако для получения достоверных результатов в этом случае необходимо, чтобы распределения величин 0< (Fu F, ??, F) и 0< (Fu F, F°u F) были близки друг к другу. Этот вопрос пока г-3,7с т=4,8с в 1 55 < 31 19 \ >r«4Jf I _| г-8,3с I I I J * 282
Г=/?5"Г 9,5 r,c Рис. 7Л. Зависимости времени счета и среднего времени склеивания от радиуса склеивания для различных распределений: f X а — равномерное дискретное распределение на множестве A, 2 10/, среднее значение m = 5,5; б — линейное дискретное распределение на множестве A, 2, .... 10/ с угловым коэффициентом 0,022, m = 7,3; в — линейное дискретное распределение на множестве {l, 2, ..., ю} с угловым коэффициентом —0,022, m — 3,7; г — равномерное дискретное распределение на множестве {l, 2 20}, т ~ 10,5; д — геометрическое распределение на множестве {l, 2, .... 20} с вероятностью успеха, равной 0,05, т — 12,8; е — геометрическое распределение на множестве {l, 2, ..., 20} с вероятностью успеха, равной 0,2, m = 4,9; ж — геометрическое распределение на множестве {l, 2, ,.. 20) с вероятностью успеха, равной 0,8, m = 1,3; з — кусочно-постоянная аппроксимация плотности / (х) = 0,006 A0* — х*) на множестве {О, 1 ю} с шагом 0,5, т — 5; и _ кусочно-постояннан аппроксимация плотности f (х) = 0,006 (\0х —• х1) на мно- жестве {о, 1, ..., ю} с шагом 0,5, т = 5 не получил окончательного решения, хотя нет сомнения в положительном ответе на него. Эксперименты показали, что время, затрачиваемое на реализацию алгоритма склеивания (центрального в данном эксперименте), весьма незначительно [11]: от 3,5 до 18 с на 1000 реализаций времени склеивания на ЭВМ БЭСМ-6; естественно, что время 283
определяется видом распределения F. Как говорилось при формулировке алгоритма склеивания, его работа определяется свободным параметром — «радиусом склеивания» г. В зависимости от этого радиуса время, затрачиваемое на реализацию алгоритма склеивания, может изменяться в 2—3 раза (за единичными исключениями). Зависимость времени счета т от радиуса склеивания для некоторых распределений иллюстрирует рис. 7.1. Приведенные выше цифры относятся к случаю оптимального выбора радиуса склеивания. 7.4.3. Эксперимент по оценке чувствительности [9] Задача состоит в оценке величины v (z, z) (см. теорему 7.7). Соответствующий эксперимент может выглядеть следующим образом. Шаг U С помощью алгоритма склеивания реализовать время со склеивания 9; (Fy F, F\ F') и оценить функцию | Р (9 > и) du f (Т > 0) и величину Я A). Шаг 2. На модели М оценить величину А = max v (Qt, Q't) при фиксированном 7\ со Шаг 3. Если А < A + Я A)) J P (9 > u)du, то увеличить т Т и перейти к шагу 2. В противном случае положить vB, г') - А + A + Я A)) j P (Q>u)du. В шагах 2 и 3 предлагаемого алгоритма величина Т может меняться различным способом. Цель изменения Т одна — приблизиться к минимуму выражения со maxv(Q,, QJ) + A + ЯA)) J Р (9 > u)du. Если расстояние v (Qti Q't) на модели оценить трудно, можно воспользоваться аналитическими оценками. Так, для агрегатив- ных моделей в случае, когда метрика v является метрикой полной вариации Var, справедлива оценка [9] max Var(Q*, Qi)<oiV(T)9 284
где Т (Г) — среднее число событий, происходящих в невозмущенной агрегативной модели за время Г, а величина а характеризует близость величин скачков состояний, происходящих во время этих событий, в терминах метрики полной вариации для возмущенной и невозмущенной моделей. Величину а легко можно оценить аналитически в то время, как ? (Т) естественно оценивать путем имитации невозмущенной модели. Приведенные примеры иллюстрируют возможности направленных имитационных экспериментов, выявляют существующие трудности и определяют области возможных исследований. Содержательные и практически важные направленные эксперименты по оценке малых вероятностей для агрегативных моделей реализованы под руководством академика АН УССР И. Н. Коваленко. Для их программной поддержки создан пакет прикладных программ АМОС [18]. Они подробно описаны в монографиях [13, 14] и потому здесь не рассматриваются.
ГЛАВА 8 ОРГАНИЗАЦИЯ СТАТИСТИЧЕСКИХ ИССЛЕДОВАНИЙ 8.1. СТАТИСТИЧЕСКИЕ ЗАДАЧИ В МОДЕЛИРОВАНИИ Важный класс сложных систем составляют стохастические системы, т. е. такие, динамика которых зависит от случайных факторов. Поэтому и изучение моделей таких систем в процессе имитационного эксперимента требует учета этих факторов. Подобный учет осуществляется с использованием методов математической статистики, что приводит помимо прочего к существенным затратам машинного времени, вызванным необходимостью многочисленных «прогонов» или длительных реализаций. Все это порождает необходимость рациональной организации статистических исследований в ходе имитационных экспериментов. В данной главе будут рассмотрены вопросы, которые относятся к организации статистических исследований, проводимых на различных этапах моделирования стохастических сложных систем: формирования, имитации (воспроизведения динамики на ЭВМ), постановки и проведения экспериментов в целях изучения законов функционирования системы и проверки различных стратегий по ее совершенствованию. Входные и выходные переменные стохастической модели, как правило, представляют собой случайные величины, векторы, функции, процессы, последовательности. Поэтому методы математической статистики применимы, естественно не без оговорок, к задачам, возникающим на этапе имитационного эксперимента, а также и на других этапах машинного моделирования (связанных с анализом исходных данных, разработкой модели, постановкой имитационного эксперимента и интерпретацией его результатов). Чтобы дать читателю представление о данных методах, перечислим ряд из них. Необходимость статистического анализа при сборе и анализе входных данных вызвана проблемой их идентификации, т. е. задачами определения вида функциональных зависимостей, описывающих входные данные, оценки конкретных значений параметров этих зависимостей, а также проверки значимости параметров. При этом используются критерии согласия [1, 3—5, 8, 33, 42] и процедуры анализа чувствительности модели [17, 34, 381. Здесь следует учесть, что процесс моделирования имеет итеративный характер, а выделяемые на практике этапы моделирования 286
(см., например, [14]) условны и, вообще говоря, не упорядочены во времени. Например, при сборе и анализе входных данных (этапе, предшествующем, по идее, разработке модели) может понадобиться готовая модель для проверки ее чувствительности к точности задания исходных параметров. На этапе формирования модели статистический анализ может потребоваться, например, при выборе самой простой модели из нескольких описывающих исследуемую систему. Для этой цели могут быть пригодны методы проверки однородности выборок [3, 42]. В процессе формирования модели решаются также вопросы повышения статистической достоверности результатов ее анализа. Для этого используются методы уменьшения дисперсии [7, 14, 34, 38], т. е. способы наполнения модели случайными факторами, не приводящие к смещению выходных данных, но снижающие их разброс. При верификации модели и проверке ее на адекватность исследуемой системе применяют, например, статистические методы сравнения выходных данных, получаемых из модели, с данными, наблюдаемыми в реальной системе (критерии хи-квадрат [28], Колмогорова — Смирнова [31], Кокрена [23], факторный, спектральный и регрессионный анализы [6, 12, 27, 30, 43, 47]). Проводится анализ чувствительности модели для определения требуемой точности задания входных данных [17, 34, 38]. При планировании и проведении имитационных экспериментов решаются задачи определения существенных факторов и их исследования [6, 45], анализа вариантов системы (с использованием методов множественного ранжирования [23] и множественного сравнения [34]), нахождения объема выборки (длительности прогона), обеспечивающего необходимую достоверность получаемых результатов [23, 39, 40], определения длительности переходного режима [18, 21, 57] и др. Даже это далеко не полное перечисление возникающих в ходе моделирования задач, для решения которых необходим надежный статистический анализ, показывает, сколь важное место он занимает в моделировании. Однако исследователю часто очень трудно ориентироваться в большом количестве статистических методов и выбирать наиболее пригодные из них. Кроме того, каждый из выбранных методов нужно запрограммировать, а программу отладить. Указанные трудности нередко приводят к тому, что исследователь пренебрегает при моделировании корректным статистическим анализом, полагаясь на свою интуицию и эвристические приемы [35, 36], которые, как правило, требуют больших затрат машинного времени, но не дают уверенности в надежности получаемых выводов. Такое положение дел отмечается рядом исследователей, работающих над проблемами моделирования [19, 29, 55, 58]. 287
Использование в моделировании пакетов прикладных программ статистического анализа избавляет пользователя от необходимости программировать методы, но не решает проблему их адекватного выбора. Кроме того, задачи, возникающие в моделировании, часто оказываются гораздо сложнее и разнообразнее классических задач статистики, содержащихся в этих пакетах. Упомянутая выше проблема выбора не решена и в языках моделирования, в которых предусматривается минимальный набор программ статистической обработки результатов моделирования. Однако выяснение соответствия свойств исследуемой модели условиям корректного использования методов возлагается на пользователя. Все это делает задачу разработки технологии проведения статистического анализа в ходе моделирования, ее математической и программной реализации актуальной. Требуется так организовать процесс статистических исследований в ходе моделирования, чтобы пользователь был полностью (в идеале) либо частично избавлен от необходимости поиска методов решения, корректных в условиях возникающих перед ним задач и наиболее эффективных с его точки зрения (по точности результатов, быстродействию, объему памяти ЭВМ, занимаемой реализующими их программами, и т. п.). При этом возникают следующие проблемы: классификация задач исследования и существующих методов их решения в соответствии с природой случайного объекта; разработка недостающих методов; организация программной поддержки как самого процесса проведения статистического анализа, так и составляющих его методов. В данном параграфе осуществлена попытка разработки базы для реализации такой технологии. Предварительно рассмотрим основные статистические задачи машинного моделирования. Отметим, однако, что приводимый ниже перечень не претендует на полноту и достаточно условен. И это естественно, поскольку основная цель моделирования — изучение поведения модели — всегда рассматривается под углом зрения конкретного исследователя конкретной ситуации (системы). Некоторые статистические задачи, в свою очередь, порождают новые, которые могут иметь самостоятельный интерес. Это приводит к необходимости выделения последних в виде отдельных задач. Оценка адекватности машинной модели. Задача включает проверку: соответствия поведения модели замыслу исследователя; согласия между поведением модели и реальной системы; справедливости статистических выводов, полученных в результате имитационного эксперимента. Задача оценивания характеристик выхода и входа машинной модели, ее параметров. При статистических исследованиях нередко возникает задача оценивания исследуемых параметров по случай- 288
ной выборке, получаемой на выходе модели или относящейся к выходным данным. Параметры могут представлять собой, например, функцию от моментов распределения, в частности, сами моменты, а также коэффициенты вариации (для измерения стандартного отклонения в долях среднего значения), асимметрию Pj (если плотность распределения симметрична, то рх = 0, если длинный «правый хвост», то $t > 0, а если длинный «левый хвост», то Рх < 0), эксцесс р2 (для нормального распределения р2 -- 3, если распределение сконцентрировано вокруг среднего «больше», чем нормальное, то Р2 < 3, а если «меньше», то Р2 > 3), квантили (в том числе медиана, децили, квартили), моду, процен- тильный ранг и т. п. [28]. При анализе выхода (входа, параметров) модели как случайной величины возникает задача оценивания ее функции и плотности распределения, например, требуется построить эмпирическую функцию распределения (ненормированную, нормированную, процентную), гистограмму (частотную, нормированную, процентную), полигон частот (так же как и гистограмма, — статистический аналог теоретической плотности, но более точный для оценки гладких плотностей), пробит-график [2] (наглядная мера отклонения исследуемого распределения от нормального; пробит-график используется также для подбора преобразования случайной величины, приводящего ее к нормальному распределению, если это возможно). Проверка гипотез относительно исходных данных модели и результатов имитационного эксперимента. Задачи проверки гипотез могут быть следующих типов [31 ]: суждения относительно истинных значений некоторых параметров распределения случайных величин, получаемых на выходе модели либо при анализе исходных данных; утверждения о виде функции и плотности распределений наблюдаемых случайных величин; суждения о характере исходных и выходных данных модели (независимость, одинаковая распределенность и др.). Совместный анализ результатов имитационного эксперимента (исходных данных). Данная задача возникает при необходимости сравнения характеристик совокупности реализаций, получаемых на выходе модели или на выходах различных моделей (аналогично, при анализе исходных данных). При этом исследуются характеристики как совместных распределений, так и только частных [2]. Необходимость в анализе совместных распределений может возникнуть и при сравнении разных моделей, когда, например, организуются их зависимые испытания. Если берутся в расчет лишь частные распределения, то обычно сравниваются их момент- ные характеристики, медианы и другие числовые показатели. Для совместных распределений могут быть построены ковариационные и корреляционные матрицы. 10 П/р С. В. Емельянова 289
Как и в случае анализа наблюдений, порожденных общим законом распределения, при совместном анализе результатов имитационного эксперимента (исходных данных) рассматриваются задачи оценивания функций и плотностей распределения, а также проверки гипотез относительно параметров и вида распределений. При анализе характеристик совместных распределений может проверяться гипотеза независимости [16]; если она отвергается, то оценивается мера связанности между ними (т. е. степень зависимости) [22]. Упрощение модели. Задача представляет значительный прикладной интерес. По сложной машинной модели реальной системы требуется построить более простую, описываемую небольшим числом параметров. Одна из наиболее употребимых формулировок этой задачи имеет такой вид: наблюдая выход машинной модели, построить регрессионную модель, т. е. функцию связи между выходными и входными переменными модели. Полученная функция и используется в качестве упрощенной модели реальной системы. Для решения рассматриваемой задачи требуется: выбрать вид регрессионной модели (простая, множественная, линейная, параболическая и т. п.) и проверить ее адекватность; оценить параметры регрессионной модели; проверить гипотезы относительно параметров модели; оценить остаточную дисперсию; оценить существенность эффекта от введения в регрессионную модель дополнительных входных переменных. Рассматриваются и другие задачи, возникающие при построении регрессионных моделей [12]. Построение регрессионных моделей осуществляется в предположении, что входные переменные упрощаемой машинной модели принимают только количественные значения. Однако упрощение модели необходимо и при качественных значениях входных переменных модели. Например, по модели участка проката можно строить упрощенную модель зависимости показателей производительности участка от сорта прокатываемого металла. Для качественных переменных характерны задачи: проверки гипотез о независимости выходных переменных от качественных уровней входных; выявления качественных уровней входа, оказывающих существенно различные эффекты на выход модели. В принципе возможен общий подход к имитационным экспериментам такого рода, не зависящий от того, каков тип (качественный или количественный) используемых входных переменных модели [6, 48]. При исследовании систем, зависящих от большого числа переменных, построение более простой модели нередко сводится к выявлению переменных, «существенно» влияющих на функционирование системы. При этом проверяются гипотезы о значимости переменных. Задачи оптимизации. Целью ряда имитационных экспериментов является отыскание таких значений или качественных уровней 290
параметров модели, при которых заданный исследователем функционал достигает экстремума. Обычно процесс оптимизации сводится к нахождению направления в сторону оптимальной точки (здесь задача перекликается с задачей сравнения различных откликов) [15] и определению в окрестности оптимума вида зависимости между входными и выходными переменными, так называемой поверхности отклика [34, 44]. Возможны и другие способы решения задач оптимизации [9]. Минимизация затрат на машинное моделирование. Конечная цель процесса моделирования — исследование модели — может быть реализована различными способами, с помощью разных моделей, путем различных имитационных экспериментов и, следовательно, при различных затратах временных, экономических и вычислительных ресурсов. Отсюда возникает задача минимизации затрат на моделирование, которая может иметь несколько аспектов. Один из них, наиболее часто рассматриваемый, связан с поиском «самого дешевого» имитационного эксперимента, обеспечивающего достижение цели моделирования, что приводит к задачам планирования эксперимента [32, 34], которые часто сводятся к задачам понижения дисперсии [ 11, 34, 36 ]. Однако имеются и другие аспекты указанной задачи, связанные со стоимостью и временем создания, модификацией модели, с выбором техники и средств моделирования [50]. Оценка непрерывности (чувствительности) модели. В процессе имитации происходит преобразование набора исходных данных X модели в набор ее выходных данных Y, В стохастических моделях в качестве исходных данных рассматриваются вероятностные распределения, задающие случайные длительности различных операций, случайные материальные потоки и т. п. Аналогично выходными данными являются распределения «искомых» случайных величин — длительностей ожидания, длин очередей и т. п. Однако распределения и параметры, составляющие набор входных данных X, в реальной обстановке определяются в результате статистической обработки данных наблюдений и, следовательно, представляют собой не более чем статистические оценки истинных распределений и параметров. В результате наблюдается расхождение между истинными распределениями и теми параметрами, на основе которых проводится имитационный эксперимент. Следовательно, вместо отображения X -> Y исследователь имеет дело с отображением X' -+• Y\ где X' — исходные данные, полученные в результате оценки, a Y' — соответствующие выходные данные. Здесь возмущения исходных данных появляются в результате погрешностей измерений и оценок. Набор входных данных X может быть полностью задан, однако в представленном виде в процессе моделирования не используется, так как получающиеся вычислительные процедуры оказываются слишком сложными или даже нереализуемыми. Например, в ЭВМ невозможна генерация случайных величин, имеющих плотность, 10* 291
ввиду конечной разрядности представляемых чисел. В этом случае в модели вместо X рассматриваются исходные данные Х\ в известном смысле аппроксимирующие X. И вновь вместо X -+ Y рассматривается отображение X' -+ У". Это возмущение исходных данных привнесено исследователем в целях упрощения модели и (или) ее анализа. В действительности имеет место совместное проявление отмеченных факторов. В приведенных выше ситуациях естественно поставить вопрос: как будут различаться выходные данные У и У, если исходные данные X и X' различаются мало? Если тоже мало, то будем говорить о непрерывности преобразования [171. С этой задачей тесно связан анализ чувствительности характеристик модели, получаемых на выходе, по отношению к изменению входных переменных (см. п. 7.3). Результаты анализа могут использоваться и при построении боле.е простой модели отсеиванием «несущественных» переменных. Возможны и другие применения решения задачи непрерывности. Оценка длительности переходного режима модели¦ Многие практически важные показатели работы стохастических систем выражаются через вероятностные распределения Q, состояния системы z, в момент времени t: Qt (•) =- Р \zt G ( )\. Однако оценка таких «нестационарных» распределений Qt представляет значительные, а иногда и непреодолимые технические и математические трудности. Поэтому на практике часто ограничиваются оценкой лишь стационарных распределений Q -- lim Q,, не всегда / — оо учитывая их ограниченное значение (см. и. 7.3, а также работу 1181). Это обусловлено тем, что «стационарный режим» устанавливается в модели при весьма общих предложениях (при постоянстве параметров, определяющих работу модели). Но модель является искаженным отражением реальной системы, параметры которой с течением времени могут меняться. Кроме того, могут изменяться и внешние условия, в которых система работает. Поэтому стационарные характеристики, найденные путем машинного моделирования, могут служить оценками характеристик реальных систем лишь в том случае, если скорость сходимости к стационарному режиму в модели «значительно больше» скорости изменения параметров моделируемой системы. В противном случае получаемые характеристики могут быть весьма далеки от реальных. Таким образом, оценка скорости сходимости к стационарному режиму позволяет сделать заключение о возможности использования стационарных характеристик для оценки показателей работы реальной системы. Существуют задачи, когда оценка скорости сходимости представляет собой основной показатель работы системы, например, оценки времени «рассасывания» очередей сообщений, накапливаю- 292
щихся в часы пик в системах передачи данных, и очередей задач в вычислительных системах [21 ]. Приведенный список не исчерпывает всех задач статистического анализа, возникающих в ходе моделирования, но дает представление об их характере, многообразии и позволяет сформировать требования к технологии проведения статистических исследований при моделировании. Перейдем к рассмотрению этих требований. 8.2. ОСОБЕННОСТИ СТАТИСТИЧЕСКИХ ИССЛЕДОВАНИЙ ПРИ МОДЕЛИРОВАНИИ Предлагаемая ниже технология проведения статистических исследований в ходе моделирования разработана с учетом ряда особенностей характера этих исследований (наиболее важных на наш взгляд). При описании мы будем приводить соответствующий фрагмент технологии, иллюстрируя его при необходимости различными примерами. Кроме того, вся технологическая цепочка будет проиллюстрирована одним «сквозным» примером, представляющим собой стандартную задачу оценки стационарных характеристик изучаемой модели. Невозможно взаимно однозначно соотнести задачи статистического анализа и этапы моделирования. Часто на разных стадиях моделирования приходится решать одни и те же задачи (см. п. 8.1). Представим этапы машинного моделирования и задачи исследования в виде изменяемых и пополняемых списков Sx и S2 соответственно, а связь между этапами и задачами (т. е. элементами списков Sx и 52) выразим матрицей А = ||а</1!^Г. ,^,, ( 1, если иа этапе с номером i в списке Sx где аи = | может решаться задача под номером / из списка S%; [ О, в противном случае; т — число этапов моделирования (длина списка S3); n - общее количество задач статистического анализа в моделировании (длина списка 52). Несмотря на то, что некоторые задачи решаются на нескольких этапах моделирования, воспользоваться результатами, полученными на более ранних стадиях, практически не удается, поскольку исследуются различные случайные процессы. Например, одну и ту же задачу проверки согласованности данных приходится решать при сборе и анализе входных данных, обосновании модели, а также в ходе ее исследования. Однако случайные процессы, являющиеся объектами исследования, на упомянутых этапах различны. А именно при сборе данных сравниваются распределение фактически полученных данных и гипо- 293
тетическое теоретическое распределение; при проверке адекватности сравниваются выходы модели и реальной системы; в ходе анализа модели могут сравниваться совокупности выходных данных, получаемые при различных воздействиях на модель. Очевидно, что характер анализируемых данных во всех этих случаях различен. Другая особенность статистических исследований при моделировании состоит в том, что для решения определенной задачи необходимо иметь набор методов, работающих в различных ситуациях (разные исходные гипотезы, ограничения, классы случайных процессов). Представим всю совокупность методов, используемых для решения статистических задач моделирования, в виде списка S9. Введем векторы С, =ф//||Д=ь * = 1, ..¦, л, где ctj — номер метода из списка S3, используемого для решения i-й задачи из списка S2; U — число методов в указанном наборе. На выборе соответствующего метода сказывается не только стохастическая природа исследуемого объекта, но и конкретная форма постановки задачи (поэтому список задач S2 должен содержать также и всевозможные их постановки). Так, оценка стационарного среднего может быть выполнена либо по выборке заданного объема, либо по выборке, продолжающейся до получения оценки требуемой точности, и при этом могут рассматриваться как абсолютная, так и относительная погрешности оценки. Рассмотрим факторы, которые являются определяющими при формировании набора векторов С*, Начнем с факторов, связанных со стохастической природой модели. Очевидно, что методы решения задач главным образом определяются видом исходных и выходных данных, а также их свойствами. Так, для совокупностей случайных величин и случайных векторов существенными свойствами являются зависимость и независимость, тип распределения [4]. Для случайных процессов и последовательностей важен их тип — гауссовские, марковские, регенерирующие, стационарные и другие [10, 30). Например, если исследуемая характеристика определяется регенерирующим случайным процессом, то удается применить методы, разработанные для независимых наблюдений [29]. При поиске экстремальных значений характеристик от случайных функций существенны такие свойства, как гладкость, унимодальность этих характеристик. Из перечисленных свойств особое место занимают независимость наблюдений и нормальность их закона распределения. Их используют во многих статистических методах. На выборе метода сказывается тип формируемой модели, а именно, с остановом она или без останова [54]. Модель с оста- 294
новом предназначена для исследования параметров, определенных на некотором интервале времени [0, Те]у где Т€ — случайная величина (возможно вырожденная), соответствующая моменту наступления некоторого события е. При анализе моделей с остановом, как правило, применяются классические модели статистики [54]. Модель без останова предназначена для исследования установившегося состояния воспроизводимого случайного процесса. Для нее классические методы обычно неприемлемы. На выбор метода оказывает влияние вид множества, на котором заданы исследуемые статистические данные (конечное, счетное, континуум). Как правило, методы анализа дискретных наблюдений проще, чем непрерывных. Перейдем теперь к факторам, определяемым формой постановки задачи. Для задачи оценивания важно, в какой форме требуется пользователю оценка, а именно, в точечной или интервальной (доверительные интервалы, полосы). Существен при этом также анализ свойств получаемых оценок. Наиболее распространены следующие оценки [28]: несмещенные (среднее значение оценки равно истинному значению оцениваемого параметра); асимптотически несмещенные; оптимальные (несмещенные оценки с равномерно минимальной дисперсией); эффективные (удовлетворяющие критерию Рао—Крамера [16]); асимптотически эффективные; состоятельные (оценки, сходящиеся по вероятности к соответствующим оцениваемым теоретическим характеристикам); асимптотически нормальные; максимального правдоподобия (оценка, максимизирующая функцию правдоподобия); наименьших квадратов. На метод оценивания влияет также то, как происходит оценивание, а именно: по выборке фиксированного объема; по выборке, обеспечивающей заданную абсолютную погрешность оценки; по выборке, обеспечивающей заданную относительную погрешность оценки. Для задачи построения более простой модели важно, к какому классу относится выбранная пользователем простая модель. Например, для регрессионной модели важно, линейная она или нелинейная. Для задач, связанных с проверкой гипотез, существенно, какого типа гипотезы, а именно: простые (однозначно фиксирующие распределение наблюдений); сложные (в противном случае). Как уже отмечалось выше, сфера применения в моделировании хорошо проработанных и широко известных методов классиче- 295
ской статистики довольно ограничена, поскольку для их корректного использования требуется, как правило, независимость и одинаковая распределенность выходных данных, нормальность их закона распределения. Однако в моделировании эти условия часто не выполняются. Тем не менее посредством использования ряда приемов удается в конечном итоге использовать классическую статистику. К ним относятся следующие способы. Преобразование выхода модели и исходных данных. В ряде задач, преобразуя выход модели (или исходные данные), удается применить известные статистические методы. Так, например, иногда можно подобрать преобразование случайной величины, приводящее ее к нормально распределенной. Другой пример связан с группировкой данных в регенеративных методах [29], позволяющей зависимые наблюдения, получаемые, например, на выходе модели, разбивать на независимые, одинаково распределенные блоки, тем самым вновь делая возможным применение традиционных статистических методов. Изменение модели. Использование специфики моделирования позволяет в некоторых случаях добиться поставленной цели путем изменения машинной модели. Например, управляя работой датчика случайных чисел в модели, можно уменьшить дисперсию получаемой несмещенной оценки искомой величины. Аналогичное положение возникает и при использовании метода форсированных испытаний при оценке вероятностей отказа высоконадежных систем [24—26, 38]. Подмена задачи. Некоторые задачи имитационного эксперимента такие, как анализ непрерывности модели, оценка переходного режима, анализ редких (частых) событий, в рамках математической статистики не ставились. Однако исходные задачи удается подменить такими, которые можно решать традиционными статистическими методами. Таким образом, для обеспечения желаемой достоверности статистических выводов помимо классических методов для проведения моделирования необходимы методы, ориентированные на определенные классы случайных процессов. За счет использования характерных свойств исследуемых случайных процессов и решается проблема обеспечения требуемой статистической надежности получаемых результатов. К методам такого рода относятся разрабатываемые в последние годы направленные имитационные эксперименты [13, 17, 18, 20, 24—26] (см. также п. 2 введения). Проиллюстрируем необходимость включения в программные средства поддержки моделирования большого числа методов, предназначенных для решения одной и той же задачи, следующим примером. Для построения доверительного интервала стационарного среднего выходного параметра модели (одна из распространенных задач моделирования) существующие методы решения могут быть разбиты по меньшей мере на пять широких 296
МЕТОДЫ ПОСТРОЕНИЯ ДОВЕРИТЕЛЬНОГО \ ИНТЕРВАЛА СТАЦИОНАРНОГО СРЕДНЕГО Методы повторных выборок Методы групповых средних Регенеративные методы Методы с использованием временных рядов Методы спектрального анализа Классический метод \ Метод биля Метод Тина 1 Метод „ складного ножа " Метод Филлера Метод приближенной регенерации Метод частичной дискретизации пространства состояний Рис. 8.1. Схема выбора метода построения доверительного интервала стационарного среднего 1г7^ Рис. 8.2. Выбор метода решения задачи исследования: / — исследуемый случайный процесс; 2 — задача исследования; 3 — процедура идентификации случайного процесса; 4, 6 — различные классы случайных процессов; 5, 7 — методы решения задачи исследования для соответствующих классов случайных процессов групп [53]: методы повторных выборок; методы групповых средних; регенеративные методы; методы с использованием временных рядов; методы спектрального анализа. Внутри каждой группы, как правило, можно выделить ряд отличных друг от друга методов (рис. 8.1). Различие между ними определяется как свойствами исследуемых процессов, так и условиями применимости методов (требуемой памятью, длительностью прогона и т. д.). Следуя работе [55], в которой предложено упорядочить методы решения задачи построения доверительного интервала стационарного среднего по классам случайных процессов (независимые, одинаково распределенные данные, регенерирующие процессы и др.), введем в рассмотрение совокупность классов случайных процессов, для исследования которых имеются методы, отраженные в списке 53. Данную совокупность представим в виде списка 54. В силу того, что пользователю, как правило, априори неизвестно, к какому классу относится исследуемый случайный процесс, отмеченная особенность вызывает необходимость разработки процедуры идентификации процесса, посредством которой осуществляется соотнесение его с одним из классов (рис. 8.2). Под процедурой идентификации может пониматься совокупность как формальных, так и неформальных методов, позволяющих отнести изучаемый процесс к тому или иному классу. Следует иметь в виду, что мы лишь указываем здесь на важность наличия 297
Мвтод 1 Метод п Pi •»• Рп S Метёк i_ Рис. 8.3. Выбор наиболее эффективного метода: р*, ..., рп — про* цедуры оценки эффективности методов исследования рассматриваемого класса случайных процессов; 5 — сравнение оценок и выбор к-го метода, k G О* ...» л} таких процедур, но не располагаем пока конкретными предложениями по их содержанию во всех случаях. Рассмотрим пример задачи построения доверительного интервала. Пусть посредством процедуры идентификации случайного процесса выяснилось, что исследуемый процесс относится к классу регенерирующих случайных процессов, тогда для построения доверительного интервала можно воспользоваться одним из регенеративных методов [29]. Соотнесение методов с классами случайных процессов позволяет существенно сократить множество, из которого выбираются методы, пригодные для исследуемой модели. Однако свести тем самым задачу выбора к одному конкретному методу все же не удается. Поэтому помимо идентификации случайного процесса необходимо организовать выбор из совокупности имеющихся методов, применяемых к данному классу, а именно, метода наиболее эффективного в некотором смысле (определяемом пользователем) для исследуемого процесса. В качестве примера вновь рассмотрим группу методов, используемых для построения доверительных интервалов в классе регенерирующих процессов. Если параметры исследуемого регенерирующего процесса таковы, что период регенерации слишком велик, то вместо точных регенеративных методов следует применить метод приближенной регенерации либо метод частичной дискретизации пространства состояний (см. рис. 8.1). Проиллюстрируем теперь на этом примере зависимость выбора метода от условий применения. Пусть параметры процесса позволяют воспользоваться точными методами. Тогда «в игру» вступают следующие факторы. В условиях малых выборок метод «складного ножа» дает меньшее смещение точечных оценок и более точный доверительный интервал [29, 52]. Однако этот метод требует большего объема памяти и усложненных программ. Поэтому, если потребности в памяти метода «складного ножа» чрезмерны, то для точечных оценок рекомендуются методы Биля и Тина, а для интервальных — классический метод [29, 52]. Классический метод наиболее эффективен в плане быстродействия как для точечных, так и для интервальных оценок, что делает его предпочтительным в условиях больших выборок, когда все указанные методы дают одинаковые по точности результаты [29, 52]. Таким образом, для выбора наиболее эффективного метода необходимо иметь про- 298
цедуры оценки эффективности каждого используемого метода для всех классов случайных процессов, к которым он применим. Тогда, сравнив результаты оценок эффективности всех методов, пользователь выбирает наилучший с его точки зрения в данных условиях (рис. 8.3). Представим всю совокупность процедур оценки эффективности методов в виде списка 55 и введем следующую матрицу: D=|K/|f=b=i> где dij — номер в списке Sb процедуры оценки эффективности метода с номером i из списка S3 для исследования случайных процессов класса с номером / в списке S4 (если i-й метод для у-го класса неприменим, то dtj = 0); р — общее число применяемых методов (длина списка S3); r — общее число классов случайных процессов, отраженных в списке 54. Следует заметить, что для решения некоторых задач может потребоваться совокупность методов, представленных в списке S3, выполняемых в определенной последовательности. Данная ситуация является следствием выбранного способа организации списка S3, а именно, включением в него лишь «элементарных» методов, что минимизирует длину списка S3. Все задачи, для решения которых используются методы, получаемые сочетанием «элементарных», будем представлять в виде схем / (/), т. е. последовательностей задач из списка 52, решаемых «элементарными» методами списка S3 (I (i) — схема представления задачи под номером i в списке 52). Совокупность таких схем представим списком S6. Введем вектор в=|М?.„ где bi — номер схемы / (i) в списке Se, требуемой для решения i'-й задачи (bt = 0, если схема / (i) не задается, т. е. задача решается посредством «элементарного» метода). В качестве примера задачи, для решения которой требуется совокупность «элементарных» методов, рассмотрим анализ поверхности отклика, представляемый в виде следующих отдельных задач [44]: 1) выбор комбинаций уровней факторов; 2) подбор уравнения регрессии по наблюдениям; 3) продвижение в направлении экстремума отклика (решение задач 1—3 повторяется до тех пор, пока не будет достигнута область точки перегиба); 4) анализ в области точки перегиба функции отклика в целях выявления ее характера и определение числа таких точек. Последовательность проведения анализа поверхности отклика может быть представлена в виде схемы (рис. 8.4), которая состоит из задач 1—4. Укажем еще на один момент, который нужно иметь в виду при проведении статистических исследований. 299
Рис. 8.4. Схема анализа поверхности отклика При решении ряда задач (например, оптимизационных) могут меняться параметры и структура модели, а следовательно, природа и свойства исследуемого случайного процесса [20]. Это может привести к тому, что первоначально выбранный для решения задачи метод окажется непригодным. Поэтому для предотвращения подоонои ситуации процедура идентификации класса случайного процесса должна проверять, сохраняются ли свойства изучаемого процесса, определившие выбор используемого метода, и в случае, если нужные свойства отсутствуют, вновь производить выбор метода решения рассматриваемой задачи. 8.3. СХЕМА ОРГАНИЗАЦИИ СТАТИСТИЧЕСКИХ ИССЛЕДОВАНИЙ ПРИ МОДЕЛИРОВАНИИ Итак, на каждом этапе моделирования возникает свое характерное множество задач (причем, как уже отмечалось, эти множества пересекаются). Любая задача может быть решена одним или несколькими методами статистического анализа. Выбор метода зависит от того, к какому классу принадлежит исследуемый случайный процесс, а также от выбранного пользователем критерия эффективности решения задачи. С учетом всех указанных выше особенностей статистических исследований при моделировании предлагаемая технология этих исследований представляется в виде схемы, показанной на рис. 8.5. Проводя согласно списку Sx очередной этап моделирования, пользователь выбирает из множества задач, решаемых на данном этапе (это множество выделяется из списка S2 посредством массива А), те, которые соответствуют специфике его исследования. Для каждой из этих задач посредством процедуры идентификации определяется класс, к которому принадлежит случайный процесс (если класс исследуемого случайного процесса неизвестен пользователю заранее). Затем из списка S3 посредством массива С< выделяется набор методов, применяемых для решения данной (i-й) задачи. Из этого набора с помощью массива D определяются методы, пригодные для рассматриваемого класса случайных процессов. Из них выбирается метод, который наиболее эффективен с позиции критерия пользователя. Выбор осуществляется на основе процедуры оценки эффективности методов для случайных процессов рассматриваемого класса. Выбранный метод и используется для решений стоящей задачи. 300 Г Начало^ Задача 1 {Нет ) — ДостигнцтЬЛ ./ч. точна \- -S >>— перегиба pj ^\^f 1 \Да 3о да чо 4 \ [Конец ) Задача 2 Г Задача J
Рис. 8.5. Схема проведения статистических исследований при моделировании: 1 — текущий этап моделирования; 2 — модель, исследуемая на текущем этапе; 3 — выбор задачи исследования на этапе; 4 — идентификация класса исследуемого процесса; .5 — определение альтернативного набора методов решения задачи исследования; 6 — оценка эффективности альтернативных методов для рассматриваемого класса случайного процесса, сравнение оценок и выбор наиболее подходящего метода При изменении свойств модели в ходе ее исследования может потребоваться и смена метода. Реализация данной схемы организации статистических исследований дает пользователю полное представление о возможностях по проведению статистического анализа в ходе машинного моделирования. Пользователь располагает информацией о задачах, стоящих на различных этапах моделирования, а также обо всех имеющихся методах их решения с указанием сферы применимости, т. е. классов случайных процессов, для исследования которых они пригодны. Кроме того, выявляются недостаточно разработанные направления с тем, чтобы осуществить работы по созданию новых методов и процедур оценки их эффективности, совершенствованию и модификации методов. При этом с введением нового метода решения i-й задачи пополняются: список S3 «элементарных» методов; вектор С,- -- набор методов из списка 53, используемых для решения /-й задачи; список 55 — процедур оценки эффективности методов; матрица D соответствия процедур оценки эффективности методов и классов случайных процессов. При усовершенствовании метода проводится соответствующая замена в списке S3. Кроме того, с введением методов для нового класса случайных процессов пополняется список 54 и процедура идентификации класса случайных процессов. Данная технология дает основу для автоматизации процесса организации статистических исследований в ходе моделирования. 8.4. ВОПРОСЫ ПРОГРАММНОЙ РЕАЛИЗАЦИИ ТЕХНОЛОГИИ СТАТИСТИЧЕСКИХ ИССЛЕДОВАНИЙ ПРИ МОДЕЛИРОВАНИИ Для алгоритмизации процесса статистических исследований в соответствии со схемой, приведенной в п. 8.3, необходимо составить списки: S± — пронумерованных этапов моделирования, 52 — возникающих на них статистических задач исследования, 53 — методов их решения, 54 — классов случайных процессов, Sb — процедур оценки эффективности методов, Se — схем решения задач, а также матриц: А — связи между этапами и задачами; D — связи между оценками эффективности методов и классами случайных процессов; массивов; В — номеров схем / (/) из списка 301
Se, Ct — набора методов из списка S3, используемых для решения /-й задачи (/ = 1, 2, ..., п). Введя в ЭВМ указанную информацию, мы получаем возможность автоматизировать процесс организации статистических исследований в моделировании. Соответствующая схема имеет следующий вид (см. рис. 8.5): 1. Пользователю, осуществляющему k-й (в списке St) этап моделирования, посредством массива А предоставляется набор задач, решаемых на этом этапе. 2. Для выбранной пользователем задачи (допустим t-й в списке 52) с помощью массива В решается вопрос, представлена ли она в виде некоторой схемы — последовательности решения других задач из списка 52. Если такое представление имеет место (в этом случае bt ^ 0), то bt указывает номер схемы в списке 5в. По этой схеме определяется первоочередная задача в отображаемой ею последовательности, для которой и осуществляется поиск наилучшего метода решения. Если выбранная задача не представляется в виде совокупности других задач (bt = 0), то поиск метода решения осуществляется непосредственно для нее. 3. С помощью массива С из списка 53 находится полный набор методов, используемых для решения рассматриваемой задачи. 4. Посредством процедуры идентификации случайного процесса определяются классы, к которым относится исследуемый процесс. 5. Пригодные для найденных классов случайных процессов методы решения задачи выделяются посредством массива D из набора методов, полученных в п. 3. 6. Посредством процедур из списка S5, соответствующих выбранным методам, оценивается их эффективность. 7. Согласно критерию эффективности проводится сравнение результатов, полученных в п. 6, и выбирается наилучший из имеющихся в списке 53 метод решения задачи. 8. После успешного решения задачи, если она не является последней в схеме / (bt) и не единственная (в случае, когда схема не задается), необходимо определить по схеме / (bt) очередную задачу и идти к п. 3. В противном случае осуществляется переход к следующей задаче, решаемой на данном этапе, либо к новому этапу. Под успешным решением задачи понимается ситуация, когда выбранный метод не оказался непригодным вследствие возможных изменений природы и свойств случайного процесса, т. е. класса. В противном случае проводится смена методов согласно этой же процедуре. Отметим, что задачи, возникающие на определенном этапе, целесообразно решать параллельно (по возможности), тем самым повышая эффективность процессов выбора методов, сбора и обработки данных за счет экономии вычислительных ресурсов. Если перед пользователем стоит несколько задач исследований одной и той же модели, то при параллельном их 302
Рис. 8.6. Обобщенная структура статистических методов в моделировании: / — сбор статистических данных; 2 — аналитическая составляющая; 3 — управление сбором и обработкой данных решении обращение к процедуре идентификации класса случайного процесса проводится только раз, кроме того, данные, получаемые при прогоне модели, обрабатываются сразу несколькими процедурами, реализующими соответствующие этим задачам методы. Обширный список задач статистического исследования и многочисленность факторов, определяющих методы их решения, приводят к необходимости создания больших библиотек, содержащих программы, реализующие эти методы. Анализ указанных методов показывает, что нередко они отличаются друг от друга лишь незначительно, и в наборе методов решения определенной задачи различие факторов (речь о которых шла выше) приводит к изменению не метода в целом, а лишь только отдельных его фрагментов. Более того, даже при решении различных задач для одного и того же класса стохастических объектов в разных методах удается выделить общие части. Учитывая эту специфику, хранить в библиотеке все методы целиком нецелесообразно. Ниже предлагается естественная структуризация методов в виде взаимодействующих фрагментов, общих для большого числа методов. Из этих структурных фрагментов и составляется библиотека, на базе которой формируются необходимые методы. Структурное представление статистических методов, используемых в моделировании, приведено на рис. 8.6. В состав структуры входят следующие фрагменты: аналитические соотношения между исследуемыми свойствами (характеристиками) стохастического объекта и набором используемых статистик; процедура сбора статистических данных, входящих в выражения для требуемых статистик; процедура управления процессом сбора и обработки статистических данных. Проиллюстрируем такую структуризацию на примере оценки (с заданной абсолютной погрешностью) стационарной характеристики модели, описываемой регенерирующим случайным процессом. Формализованная постановка задачи имеет следующий вид [29]. Пусть \х (t)> t >- 0} — регенерирующий случайный процесс (см. п. 7.3) и пусть \аП1 п^> \\ — вложенный в него процесс восстановления, т. е. для любых i Ф / части процесса \х (/), Ri <J t < Rt+i\ и \х @» Rj К t < Rj+i\, называемые циклами регенерации, независимы и определяются одними и теми же вероятностными законами. 303 Параметры метода Q Ъ 9> Результат
Требуется оценить с необходимой абсолютной погрешностью стационарные средние вида r = E{f(x)}, где f — некоторая вещественная измеримая функция; х — случайная величина, к которой сходится значение процесса х( при / -* оо (указанная сходимость имеет место и является сходимостью по вариации, если Eat < оо и at — нерешетчатые случайные величины). В работе [29] предлагается ряд методов решения данной задачи. Структурируем наиболее простой из них. Аналитическая часть. 1. 100A—б) %-ный доверительный интервал для г представляется следующим образом: '-['"*-•'+ а/г1/2 где Г-У/а; Y = -L^Yt; Yt= j f[x(t)]dt; =Ц-2аь z6 = Ф'1 A — 6/2); Ф — функция стандартизованного нормального распределения; п — требуемое число циклов регенерации; s2 = sn — 2/*s12 + ^2s22; su, s12, s22 — выборочные дисперсия от величин Yi, ковариация от Yt и aiy дисперсия от значения at соответственно. 2. Выражение абсолютной погрешности оценки имеет вид J = zts/(anW). 3. Число циклов регенерации пу обеспечивающее требуемую точность оценки, находится из соотношения У < в, где 8 — заданная абсолютная погрешность. Процедура сбора статистических данных. В ходе моделирования траектория случайного процесса \х (t), t >- 0} разбивается на циклы регенерации (например, по моментам возвращения процесса в указанное пользователем состояние регенерации), на каждом из которых вычисляются величины ajt Yjy подсчиты- ваются суммы Sac I,Yt; la?; ?, Y\; ? a.Y, t~\ »--l i=\ *--=l i-\ и по мере необходимости, определяемой процедурой управления сбором и обработкой статистических данных, вычисляются статистики a, /\ s. Процедура управления процессом сбора и обработки статистических данных. 1. Пользователь задает некоторое начальное значение числа циклов регенерации. 2. Проводится сбор статистических данных согласно описанной выше процедуре и подсчитывается величина У. 304
3. Если J <^ е, то пользователю выдается оценка /\ удовлетворяющая заданному требованию, в противном случае идти к 4. 4. Величине п присвоить значение (//вJ, идти к 2. Как уже отмечалось, разнообразие объектов, встречающихся в практике, порождает разнообразие и в методах решения задач моделирования. Причем различие в методах может быть как существенным, так и затрагивающим лишь один из структурных фрагментов. Проиллюстрируем это соответствующими примерами. 1. Для решения одной и той же задачи могут быть использованы совершенно различные регенеративный [29] или спектральный [51] метод оценки стационарного среднего. 2. Если рассмотреть, например, регенеративный метод оценки стационарного среднего с двумя вариантами задания погрешности оценки (абсолютной и относительной), то различия будут лишь в аналитической части (в формуле вычисления погрешности), процедура же сбора статистических данных, а также алгоритм управления сбором и обработкой данных останутся неизменными. 3. В основе методов оценки стационарного среднего моделей с независимыми выходными данными и моделей, описываемых регенерирующими случайными процессами, лежит центральная предельная теорема [46], поэтому аналитические части этих методов одинаковы, не меняется и алгоритм управления сбором и обработкой данных, различие у них лишь в процедурах сбора статистических данных. А именно, если для моделей с независимыми выходными данными Xi эти величины непосредственно обрабатываются, то для регенерирующих процессов обрабатываются величины Уi — tai (обозначения те же, что и выше), обладающие такими же свойствами независимости, что и Х(, за счет чего и сохраняются неизменными аналитическая часть и алгоритм управления. 4. На том же примере оценки стационарного среднего с заданной погрешностью можно видеть, что последовательный метод [23] и двухвыборочный метод Стейна [22] различаются между собой лишь алгоритмом управления сбором и обработкой статистических данных (алгоритм управления для проверки определенных соотношений в последовательном методе инициирует процедуру, реализующую аналитическую часть после каждого нового наблюдения, а в методе Стейна это выполняется только 2 раза). Анализ структурированных методов позволяет подметить следующую особенность. С изменением характера наблюдений (т. е. класса случайного процесса на выходе модели) меняются в основном (но не всегда) процедуры сбора статистических данных, а изменение, скажем, способа получения оценок приводит к смене алгоритма управления. Таким образом, возможно создание библиотеки программ для аналитических частей, процедур сбора данных, алгоритмов управления сбором и анализом, на базе которой формируются методы решения конкретной задачи. В результате в памяти ЭВМ можно хранить не программу, реализующую метод в целом, а информацию о том, из каких структурных фрагментов, представленных в библиотеке, он состоит, что позволит значительно сократить объем хранимой информации. Проиллюстрируем на примере решения задачи оценки стационарного среднего. Будем оценивать среднее с заданной абсолютной или относительной погрешностью. Укажем предварительно классы случайных процессов, для которых будет решаться данная задача. 305
Рис. 8.7. Классификация случайных процессов для интервального оценивания стационарного среднего и дерево классификационных признаков: А — модель с остановом (независимые наблюдения); А — модель без останова (зависимые наблюдения); В — регенерирующие процессы; В — нерегенерирующие процессы; С — период регенерации большой; С — период регенерации небольшой; D — распределение, «близкое> к нормальному закону; D — распределение, существенно отличающееся от нормального закона Вначале разделим все классы на две группы, соответствующие моделям с остановом (т. е. независимые наблюдения) и моделям без останова (зависимые наблюдения). Независимые наблюдения могут быть «близкими» к нормальному закону распределения или существенно от него отличаться. Зависимые наблюдения могут представлять собой: регенерирующие случайные процессы; нерегенерирующие случайные процессы. Регенерирующие случайные процессы будем подразделять на процессы с «большим» периодом регенерации и процессы с «небольшим» периодом регенерации. Кроме того, и регенерирующие, и нерегенерирующие процессы будем разделять на классы процессов с распределениями, «близкими» к нормальному закону и существенно от него отличающимися. Данное разбиение изображено на рис. 8.7. После того как пользователь укажет, к какому типу относится исследуемая модель (в случае, если модель без останова, требуется также указать, является ли процесс регенерирующим или нет), процедурой идентификации определяется один из восьми классов (см. рис. 8.7), к которому относится исследуемый случайный процесс. Для этого проводится тест нормальности, а для регенерирующих процессов, кроме того, осуществляется оценка длительности периода регенерации. Для каждого класса имеется целый набор методов решения данной задачи. Рассмотрим эти наборы. Практически во всех случаях (за исключением классов 7 и 8 (см. рис. 8.7)) используются определяемые особенностями случайного процесса различные модификации трех методов: последовательного [23]; Стейна [22] и многошагового подхода [39, 40, 49]. Для классов 7 и 8 (см. рис. 8.7) использованы автокорреляционный метод в предположении нормальности распределения и неравенство Чебышева соответственно. 306
Для случайных процессов, принадлежащих к одному из первых шести классов (см. рис. 8.7), выбор метода осуществляется посредством процедуры оценки эффективности. На качественном уровне эта процедура заключается в следующем. Если пользователь предъявляет высокие требования к точности оценки, то будет выбран метод, основанный на многошаговом подходе. Это наиболее точный метод из трех, но он требует большого объема вычислений, т. е. по быстродействию он наихудший. Поэтому, если для пользователя более существенным фактором являются затраты машинного времени, то по предварительной оценке объема выборки и длительности прогона модели для получения одного наблюдения (заметим, что оценку можно произвести при идентификации случайного процесса) осуществляется выбор между последовательным методом и методом Стейна. При этом исходят из следующих соображений. Если предварительно оцененный объем выборки велик, то последовательный метод не годится вследствие большого количества дополнительных вычислений, т. е. снижения быстродействия. При больших значениях объема выборки и малых затратах машинного времени для получения одного наблюдения наиболее пригодным является метод Стейна. В то же время, если и объем выборки, и длительность прогона велики, то метод Стейна не годится из-за риска больших непроизводительных затрат машинного времени, и наиболее пригодным как с точки зрения точности, так и быстродействия оказывается многошаговый подход. Таким образом, для полного решения достаточно тривиальной задачи для перечисленных классов случайных процессов необходимо реализовать 40 методов. Применение предложенной выше структуризации приводит к значительным упрощениям. Пусть Mlf — /-й метод оценки среднего с заданной абсолютной погрешностью для *-го класса случайного процесса, A\f — его аналитическая составляющая, S\f — процедура сбора статистических данных, UIf — процедура управления сбором и обработкой данных, т. е. Af!f = M!f, sjf, u\f\; ( 1 — для последовательного метода; / = | 2 — для метода Стейна; (З —для многошагового подхода. Для методов оценки среднего с заданной относительной погрешностью соответственно имеем MYj] = М!/\ 5J , Uq }. Сразу же отметим, что для любых i и / S\f — S;/*; U\f = lift- Если разбить аналитическую составляющую на отдельные операторы, то различие между Alf и Aff будет лишь в одном операторе. 307
Далее, при любом фиксированном / --- /* и Г Ф i" (Г, i" € € |1, 3, 51 или Г, Г € {2, 4, 61) АЩ. = A$U t/{?/. = 1/$., а также Л#. = Л^., U\'}. = ?/{«}.. При этом S$. # ^ S}2). (S#. Ф SP,.). Если i', Ге {7, 81, то А\% и АЩ, [А\г]. и Л#.) различаются лишь одним оператором (процедуры управления не изменяются). Для случая, когда /', Г €{1,2}, Г, Г'€ {3, 4}, Г, i" € {5, 6}, аналитические части различаются также одним оператором и Sr}* = Sri. = •$<•"}»• При любом фиксированном i = i* и /' Ф \" (т. е. при переходе от метода к методу в пределах класса) s\Vr = S\Vr (S\rJr = S\rJr), но A^r ф A\Vr {А$г Ф фа\:)-) и uWr + uWrWr + Wr)- Таким образом, для 40 различных методов решения задачи оценки стационарного среднего с заданной абсолютной или относительной погрешностью для восьми выделенных классов случайных процессов имеются всего 16 аналитических составляющих, четыре процедуры сбора статистических данных и четыре процедуры управления, причем для аналитических составляющих можно выделить ядро, состоящее также из четырех элементов, а остальные 12 будут различаться лишь одним оператором. Поэтому очевидно, что гораздо эффективнее в памяти ЭВМ хранить не программы методов целиком, а лишь их оригинальные структурные элементы. Отметим, что предложенная технология может служить основой для решения проблем автоматизации и программной поддержки процесса исследования машинной модели, а также решения статистических задач, возникающих при ее создании с обеспечением необходимой степени достоверности статистических выводов. Практическая реализация данной технологии требует систематизации методов статистического анализа, применяемых в моделировании, выявления «белых пятен» и их устранению. Проблемы возникают и при реализации автоматического выбора наиболее эффективного метода исследования (при идентификации класса случайного процесса и оценке эффективности). Попытка реализации предложенной технологии (пока частичная) осуществлена в агрегативной имитационной системе.
Часть III ИНСТРУМЕНТАЛЬНАЯ ПОДДЕРЖКА ТЕХНОЛОГИИ СИСТЕМНОГО МОДЕЛИРОВАНИЯ В этой части книги речь идет о проблемах создания программных средств, поддерживающих как всю технологическую цепочку моделирования, так и отдельные ее фрагменты. В программах-имитаторах отображаются структура алгоритмической модели, логика причинно-следственных связей составляющих процессов, условия синхронизации этих процессов и упорядочения событий, организация монитора времени модели. Программа имитации представляет собой параметризуемую машинную модель, настраиваемую на выполнение различных экспериментов из некоторого заранее обусловленного или расширяемого множества. Построение программ имитации, их отладка, подготовка к работе, проведение с их помощью вычислительных экспериментов — все это ответственные, трудоемкие и дорогостоящие этапы. Эффективность их проведения обеспечивается применением специальных средств автоматизации и прогрессивных форм организации работ. Рассмотрены различные способы продвижения системного времени в программах имитации и обсуждены возникающие при этом проблемы, дан краткий обзор наиболее распространенных языков моделирования, приведено описание агрегативной имитационной системы, содержащей средства для проведения направленных имитационных экспериментов, исследованы различные аспекты создания проблемно-ориентированных имитационных систем, обсуждены вопросы организации вычислительных экспериментов с моделями систем в условиях моделирующих центров.
ГЛАВА 9 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СОБЫТИЙ И УПРАВЛЕНИЕ МОДЕЛЬНЫМ ВРЕМЕНЕМ 9.1. АЛГОРИТМЫ ПРОДВИЖЕНИЯ МОДЕЛЬНОГО ВРЕМЕНИ В данной главе рассмотрены специфические вопросы, связанные с продвижением системного времени и представлением событий, определяющих динамику моделей. Эти вопросы имеют особое значение, например, в области логического моделирования цифровых машин и при моделировании систем передачи информации на системном уровне. Ранее уже отмечалось, что существуют два основных вида моделей: непрерывные и дискретные. В первом случае состояние моделируемой системы меняется как непрерывная функция времени, и, как правило, это изменение описывается системами дифференциальных уравнений. Соответственно продвижение модельного времени зависит от численных методов решений дифференциальных уравнений. Динамика дискретных моделей определяется событиями, и изменения состояния системы происходят в изолированные моменты времени наступления событий. Продвижение модельного времени в этом случае осуществляется путем перехода от момента наступления очередного события к моменту наступления следующего события. Поскольку в реальных системах непрерывные и дискретные процессы часто невозможно разделить и ни одним из них нельзя пренебречь, были разработаны, так называемые, непрерывно- дискретные (комбинированные) модели, в которых совмещаются продвижения времени, характерные для этих двух процессов. В программной реализации моделей всех указанных видов можно выделить две составляющие [1,5, 10, 12, 31, 32]: язык описания модели и программу управления модельным временем. Если первую составляющую выбирают, исходя из удобств описания модели, то вторую — исходя из возможностей управления динамикой модели. Поскольку для реализации моделей сложных систем требуются большие затраты машинного времени, то проблема выбора способа управления модельным временем весьма существенна. 9.1.1. Общие алгоритмы управления временем Алгоритмы управления временем разделяют на два основных типа: так называемый пособытийный и пошаговый методы (в англоязычной литературе они называются соответственно методами 310
tnext event» и dime mapping») [7, 9, 14, 33, 35, 37]. В известном смысле эти два типа алгоритмов противоположны друг другу. В случае пошагового метода продвижение времени происходит с минимально возможной постоянной длиной шага. В пособытий- ных методах длина шага «временного сдвига» — максимально возможная: модельное время с текущего момента изменяется до ближайшего момента наступления следующего события. Однако для записи и считывания текущих событий из списка, в который они занесены, требуется специальное управление. Таким образом, длина шага выбирается оптимальным образом, но затраты времени увеличиваются за счет обработки списков событий. В случае пошагового метода положение обратное. Списки событий содержат характеристики только текущих событий. Это достигается за счет выбора минимальной длины шага, соответствующего выбранному кванту времени. В тех случаях, когда в течение каждого кванта времени наступает лишь одно событие, пошаговый метод более целесообразен, так как преимущество пособытийного метода — большая длина шага — при этом не используется, а необходимость в обработке списков событий отпадает. Применение пособытийного метода предпочтительно в случае, если частота наступления событий невелика, тогда большая длина шага позволяет ускорить ход модельного времени, а обработка короткого списка событий не занимает много машинного времени. В работе [35] Улрих сравнивал эти методы, имея в виду дальнейшее развитие и усовершенствование пособытийного метода (например, в языке моделирования СИМСКРИПТ список событий разделен по типам событий). Улрих показал, что даже в этом случае при существенном увеличении числа событий посо- бытийный метод уступает предложенному им усовершенствованному пошаговому методу. Рассмотрим факторы, от которых зависит количество использованного машинного времени при различных методах. Предположим, что период времени, в котором проводится пошаговая обработка событий, состоит из N квантов. Обозначим машинное время, затраченное на запись отметки о событии в список (часовая структура [35]), ib> а на ее считывание (тестирование) /&. Естественно, надо иметь в виду возможность наступления нескольких событий одновременно. В таком случае при пошаговом методе одно из них (назовем его определяющим) устанавливается в соответствующую данному шагу времени ячейку, тогда как остальные помещаются в ячейки, имеющие ссылки на указанную. Обозначим через е число всех наступивших событий, а через е^ — число определяющих событий. Тогда затрата времени при пошаговом методе При выводе соотношения (9.1) мы пренебрегли возможностью наступления «отдаленных» событий, т. е. таких, которые наступают позже чем через время L А/ от текущего времени, где L — некоторая константа, зависящая в методе Улриха [35] от длины списка событий, а Д? — длительность кванта времени. Учет указанной возможности требует дополнительных затрат машинного времени. Пособытийный метод требует значительных затрат времени для обработки списков событий: %s = e('ft + 'b) + eA. (9-2> 311
где ts — затрата времени на поиск места для записи отметки события; / — число элементов части списка, исследуемых при поиске места записи. Из формул (9.1) и (9.2) видно, что при пособытийных методах затрата времени квадратично зависит от числа наступивших событий, так как пропорционально величине е увеличиваются значения / и гд. Данное утверждение носит качественный характер, поскольку оно не учитывает ни возможностей используемых методов поиска, ни распределения событий во времени, влияющих, в частности, на величину /. Метод Улриха основывается на исследовании распределения наступающих событий. А. Явор в 1974 г. показал [20], что использование заранее известных свойств распределения событий может привести к дальнейшей экономии. В указанной работе введено понятие квазисинхронного распределения событий и разработаны алгоритмы часовой структуры (ИШАУС — Иерархический Шаговый Алгоритм Управления Событиями) в целях нахождения компромисса между пошаговым и пособытийным алгоритмами. В 1975 г. Вошер и Дювал опубликовали работу, в которой проводилось сравнение различных алгоритмов [36]. Они показали необходимость обработки списочных структур предсказанных событий. Была подчеркнута важность универсальности алгоритма, т. е. наименьшей зависимости скорости его работы от различных распределений событий. Были исследованы следующие процедуры. 1. Процедура, основанная на линейной структуре списка, т. е. размещении событий в списке в порядке возрастания предсказанного времени событий. Это обеспечивает мгновенный доступ к событиям, происходящим в очередной момент модельного времени. Однако происходит затрата времени за счет занесения в список нового события на соответствующее место. 2. Двоичные ветвящиеся алгоритмы. Время поиска записи в списке с lV-ы количеством элементов пропорционально log2 N, а не N, как в случае линейных списочных структур. Таким образом, при больших значениях N результат лучше, чем в случае линейных структур. 3. Ветвящиеся алгоритмы типа POST-ORDER и END-ORDER [36]. В первом случае каждый элемент списка имеет указатели на левый и правый «потомки», а также — на «родителя». Исходя из корня дерева, запись ведется следующим образом; если предсказанное время события меньше предсказанного времени в записанном элементе, то поиск ведется с правого потомка, если больше — то с левого. В случае равенства производится запись на место данного элемента, а сам элемент будет левым «потомком» нового элемента. Запись происходит на первое свободное место. При ветвящейся структуре типа END-ORDER время события в любой точке узла больше, чем в любом поддереве, а возрастающий порядок (относительно предсказанного времени) будет: левый потомок — правый потомок — родитель. Для большой группы пошаговых методов авторы ввели так называемый алгоритм «индексированного списка» в качестве дополнения процедуры, работающей с постоянным шагом времени. Для сравнения алгоритмов авторы выбрали операцию HOLD для изъятия события из списка и занесения его вновь после переустановки. При анализе влияния закона распределения событий во времени кроме экспоненциальных, равномерных, вырожденных и дискретных распределений использовано так называемое «бимодальное» распределение, где короткий период с высокой плотностью событий чередуется с периодом со 100-кратной длиной и малой плотностью событий. Исследования авторов показали, что хотя ветвящиеся структуры типа END-ORDER и привели к некоторому улучшению по сравнению с процедурой, основанной на линейном списке, все же радикальное улучшение достигается за счет алгоритма «индексированного списка». При этом важной проблемой является выбор кванта времени Л/, согласующегося с распределением событий. При слишком большом значении А^ события составляют единственный список и обрабатываются в соответствии с пособытийным методом, а при слишком малом — предсказанные события не помещаются в циркулярную структуру списка, а слишком далекие события образуют отдельный список. Следовательно, 312
система должна самонастраиваться. Отдельная обработка слишком далеко расположенных событий является серьезным недостатком пошаговых методов. Недостатком указанного исследования, на наш взгляд, являлось то, что внимание обращалось только на время выполнения процедуры HOLD. Например, при пошаговом методе оно минимально. В периоды, когда не происходят события, время затрачивается на поэтапное движение по пустым квантам времени, а это не отражено в исследовании. Существуют и другие не исследованные здесь процедуры, например, изъятие из списка любого предсказанного события. Вимен в работе [37] опубликовал разработанные им алгоритмы. Их суть — развитие методов формирования алгоритмов типа «индексированного списка». В них предложены специальные «ключевые» указатели. Автор советует постоянно наблюдать за числом событий, и если это число превышает данное значение, то вводится новый ключевой указатель. Операции над ключевыми указателями не описываются. Автор считает, что использование этого метода приводит к улучшению результатов по сравнению с предыдущими методами, но предлагает вести дальнейшее изучение этих вопросов. Франта и Мали [8, 9] предложили дальнейшее развитие алгоритмов «индексированного списка» с помощью введения двух уровней в алгоритм, что подобно специальному двухуровневому случаю часовой структуры ИШАУС [20]. Метод выбора параметров алгоритма и зависимость от их распределений событий авторы не рассматривают. 9.1.2. Основы выбора алгоритма управления временем В ходе разработки алгоритмов моделирования времени Улри- хом [35] было сделано важное заключение, что исходить надо из распределения событий во времени. Он достиг высокой экономии машинного времени, используя то, что в исследованной им области — в цифровых логических сетях — одновременно активен всего лишь 1 % элементов. Возникла мысль, что на основании более глубокого исследования структуры практических распределений событий целесообразно использовать такую априорную информацию, учет которой в алгоритме продвижения времени повысил бы его эффективность. Очевидно, можно было бы разработать такую процедуру, которая хорошо применялась бы для данной узкой области, но при произвольном изменении структуры событий ею уже было бы неудобно пользоваться. Поэтому очень важно получение алгоритма, который и при сильно меняющихся обстоятельствах продолжал бы обладать хорошими свойствами [36]. 9.1.3. Характер распределения событий [16, 20] При изучении структуры практических распределений событий в реальных.системах можно заметить, что это распределение далеко не однородно. События группируются вдоль оси времени. Начало образования групп связано с наступлением какого-то события (или множества событий). Соответствующий момент времени в дальнейшем будем называть «синхронизацией». Следующий за этим интервал обладает высокой плотностью событий, намного больше средней. Причиной является наличие в системах таких «значимых» событий, наступление которых в моменты син- 313
Рис. 9.1. Квазисинхрон- ^^ , ч ное распределение собы- ?53 1553/ ,Е5^ Е~51 тий: Tf(T^rp)T2(T^Tp) v /r,(Tf+Tp) TM(Thf + rpft Jp-eH«ByiB™" момент иковый интервал хронизации порождает другие события. Примером могут служить синхронизирующие сигналы, переключающие большое количество триггеров в цифровых сетях. Вообще подобный групповой характер событий распространен в самых различных системах. Например, в транспортных системах такое событие, как смена цвета светофора на перекрестках с большой интенсивностью движения, вызывает ряд других событий. Для описанных выше распределений событий введем термин «квазисинхронное распределение событий» и определим его следующим образом. Определение 9.1 (рис. 9.1). Под квазисинхронным распределением событий будем понимать такое распределение, при котором значение р вероятности того, что событие произойдет в элементарный шаг времени «значительно больше» в интервалах времени Wi, (Tt + Тр)), чем в последующих интервалах [G\ + Гр), Тм), где i = 1, 2, ... при (Тм — Tt) > Тр. Значения Tt назовем моментами синхронизации, а интервалы [Tiy (Tt + Тр)) — пиковыми интервалами. Моменты Tt могут быть случайными. Надо отметить, что смысл выражения «значительно больше», достаточно произволен. Такого сорта распределение часто встречается в некоторых системах передачи данных [16]. В нашем случае допускается одновременное наступление нескольких событий. В случае, когда Tt Ф iTlt не исключается возможность того, что (TU1 — Tt) < Тр. Пиковый интервал, созданный двумя или несколькими близкими синхронными событиями, можно определить различными способами [16]. Рассмотрим несколько возможностей (рис. 9.2). Первая из них заключается в пренебрежении новыми синхронными событиями Si—S3> возникающими в пиковом интервале. Таким образом, в качестве длины пикового интервала принимается величина Тр = Тр. Вторая возможность заключается в том, что запоминается число таких событий и независимо от расстояния между ними длина пикового интервала Т*р* = JTpy где J — число рассматриваемых синхронных событий. При использовании третьей возможности счет времени для определения пикового интервала начинается заново от каждого синхронного события, т. е. /«2 314
.**# ь Рис. 9.2. Пиковые интервалы Такое решение играет важную роль в практической разработке алгоритмов управления временем. Алгоритм аДельфтъ. Опишем алгоритм «Дельфт» [14, 18], который был разработан для эффективного управления временем при дискретном моделировании. Особенностью этого метода является автоматическая адаптация к распределению событий, в основном к квазисинхронному распределению. Метод реализуется так, что на пиковых интервалах он приближается к пошаговому методу с циркулярным списком, а вне пиковых интервалов—к пособытийному методу с большим шагом времени. При разработке алгоритма была использована идея двойственной часовой структуры ИШАУС [20, 23]. Методика широко используется в моделировании логических цифровых электронных и микроэлектронных схем и была усовершенствована в работе [18]. Основная структура данных оригинального варианта приведена на рис. 9.3. Эта «часовая структура» состоит из иерархической системы циркулярных списков. Предположим, что число ячеек Nx на самом низком уровне равно числу элементов циркулярного списка для пикового интервала, т. е. максимальной длине пиковых интервалов, выраженной в квантах времени. На пиковых интервалах этот список будет действовать в соответствии с пошаговым методом. Для числа ячеек N2 остальных иерархично расположенных списков, служащих для ускорения шага времени, выбираем равные значения, например, N2 ~ 10. В этом случае иерархичное возрастание длины шага будет десятикратным. Таким образом, мы получим желаемую структуру данных, которая состоит из т циркулярных списков индикаторов предсказываемых событий и сопряженных с ними списков предсказываемых времен Tj (см. рис. 9.3). Одна ячейка первого циркулярного списка соответствует единице величины приращения времени, тогда как ячейки в других списках соответствуют времени, которое описывается полным списком следующего низшего уровня. Необходимое число циркулярных списков определяется следующим образом. Полный временной период, описанный полным поэтапным прохождением до конца структуры списка, должен соответствовать среднему значению моделируемого времени между 315
1т' 1 — 1 1 it 1Ч 1 1 It \TS 1 1 it Ul l-l Рис. 9.З. Иерархическая /' i^+—-г—r-sL i \ система циркулярных спи- синхронными событиями т$, т. е. m = max B, entier A,5 -f + log*, (ts/Ni))). Во время шага моделируемого времени указатели, принадлежащие к часовым структурам, осуществляют полный оборот и таким образом показывают соответствующие интервалы ПО МОДУЛЯМ iVj И /V2. Ячейки списков от 2 до m содержат числа событий, предсказываемых в соответствующем интервале времени, тогда как ячейки первого циркулярного списка содержат указатели на начало принадлежащих к ним сопряженных списков, а в случае, если таких нет, то содержат значение ноль. Для записи индикаторов событий в часовую структуру или для их стирания используются операторы ТО и FROM: TO/FROM : : --- (увеличиваем (уменьшаем) в циркулярных списках от 2 до ал содержание соответствующих ячеек на единицу и записываем или стираем отметку событий в том сопряженном списке, указатель на начало которого содержится в соответствующей ячейке первого циркулярного списка (вычисление соответствующих ячеек по модельному времени по модулям N2 и Л^)); процедура ТО должна также проверять, записана ли уже отметка события в часовую структуру, и если да, то необходимо в первую очередь стереть отметку события. Шаг моделируемого времени вычисляется предлагаемым алгоритмом с учетом двух ситуаций: в пиковых интервалах, где плотность событий велика, шаг времени определяется элементарным отрезком времени в соответствии с первым циркулярным списком; в интервалах с малой плотностью событий система стремится как можно быстрее «шагнуть» до следующего предсказанного события. Вначале длина шага соответствует ячейкам самого верхнего циркулярного списка, пустые ячейки «перепрыгиваются». Когда обнаруживается непустая ячейка, то осуществляется переход на следующий уровень вниз до тех пор, пока на самом нижнем уровне не обнаружится предсказанный указатель на список событий. 316
Индикация пикового интервала происходит установлением индикатора PEAKFLAG. Это реализуется активированными синхронными событиями процедурой PEAKSET следующим образом: PEAKSET : : ^- (PEAKFLAG^- 1; временно согласовывается (пересогласовывается) отметка события RESET с временным моментом, определенным активированным синхронным событием), где RESET : : = (PEAKFLAG +- 0). Одна из возможных реализаций алгоритма управления временем на языке ФОРТРАН приведена на рис. 9.4. Интерпретация переменных, используемых в алгоритме: MAY — неременная, означающая наличие событий с нулевой задержкой, в данном случае; LP — указатель начала обнаруженного сопряженного списка; LIMIT — число ячеек циркулярных списков от 2 до М (М =- т)\ LIMES — число ячеек 1-го циркулярного списка; MAS — значение М; MIX —MAX — 1; MUX —MAX + 1; JPEAK — значение PEAKFLAG; NOW — обнаруженное текущее значение модельного времени; ICLOCK — массив, выделенный для 1-го циркулярного списка; ICIRC — массив, выделенный для циркулярных списков от 2 до М; IPOINT — указатели циркулярных списков; ISTEP — /-й элемент этого массива является значением элементарного шага времени, соответствующего одной ячейке / + 1-го циркулярного списка. Программа в такой форме дает возможность для работы при т < 6; N, < 100 и N2 < 10. Описанный выше алгоритм адаптируется к групповому распределению моделируемых событий. Распределение групп событий (т. е. пиковых интервалов) произвольно. В периодах, имеющих высокую плотность событий, где в большинстве шагов времени содержится хотя бы одно событие, алгоритм действует пошаговым методом, избегая, таким образом, обработки слишком длинных списков, а на относительно пустых интервалах приближается к пособытийному способу. Согласование по времени отметки события с временными моментами Tj (в соответствующей ячейке &-го циркулярного списка) будет происходить по следующей формуле: i = Tf mod NxNk2~\ Это приводит к двум особенностям. 317
1. В часовой структуре присутствуют псевдособытия, обработка которых вызывает дополнительную затрату времени. Однако этим эффектом можно пренебречь, поскольку выбирается такое значение А\, которое перекрывает пиковые интервалы, имеющие большую плотность событий. Во временных периодах, следующих за пиковыми интервалами, вследствие невысокой плотности событий действие этого эффекта становится незначительным. 1 2 10€ 8 7 21 4 3 12 14 И 6 SUBROUTINE DELFT COMMON/TIME/ MAY, LP, LIMIT, LIMES, 1 1 MIN,MAX,MUX,JPEAK,NOW,ICL0CKA00), | 1 ICIRCA0,5), IP0INTG), IF (MAY) 2,2,1 MAY i 0 GOTO 20 IPOINT(l) : IPOINT(l) + IF (IPOINT(l) - LIMES) \ IP0IHTB) = IPOINTB) + IPOIHT(l) = 1 DO 7 I:2,MAX IF (IPOINT(I) - LIMIT) IPOINT(I+l) = ¦ IPOINT(I+l) IPOIHT(I)- = 1 IF (JPEAK) 3,3,4 LEVEL = 1 GOTO 6 DO 11 1:1,MIX LEVEL : MUX - 1 IP = IPOINT(LEVEL) JC : LEVEL - 1 IF (ICIRC(IP.JC)) 12,1c DO 14 J : l.JC IPOINT(J) : 1 GOTO 6 CONTINUE JA : LEVEL DO 13 Irl.JA KB = IPOINT(LEVEL) IF (LEVEL .EQ. 1) GOTO ISTEPF) 1 21,21,108 1 21,21,8 + 1 Ml 100 318
JC : LEVEL - 1 DO 22 KrKB.LIMIT IF (ICIRC(K.JC)) 22,22,15 15 IPOINT(LEVEL) = К LEVEL -- LEVEL - 1 GOTO 13 22 CONTINUE GOTO 101 100 DO 222 K:KB, LIMES IF (ICLOCK(K)) 222,222,215 215 IPOINT(l) г К GOTO 13 222 CONTINUE 101 DO 706 IA:LEVEL,MAX IPOINT(IA) : 1 IP0INT(IA + 1) -- IP0INT(IA+1) + 1 IF (IP0INT(IA + 1) - LIMIT) 707,707,708 706 CONTINUE 707 IF (LEVEL .LT. MAX .AND. JPEAK .EQ. 0) 1 LEVEL - LEVEL + 1 GOTO 6 13 CONTINUE NOW : IPOINT(l) DO 9 1 = 2,MUX 9 NOW -- NOW + (IPOINT(I)-i) « ISTEP(I-l) IPAPU -. IPOINT(l) LP r ICLOCK(IPAPU) 20 RETURN END Рис. 9.4. Реализация алгоритма управления временем 2. Преимуществом алгоритма по сравнению с пошаговыми алгоритмами, основанными на циркулярных списках, является отсутствие ограничений на область модельного времени. Таким образом, отпадает необходимость использования списков, характерных для пособытийных методов и служащих для обработки событий, происходящих за пределами ограниченного периода времени, что обеспечивает экономию машинного времени. 319
Уро$н Br Be ?< 4 в? i Событие T i •7 i •111 ! ; —4 1 i 1 1 1 Время h=Jl (h = l,(mod(H,Nk2')) S) г^Л~И—T-^T \epool\— Ее 4 °) r'l"LJ sA h 1 1 1 Л Ti\ 1 1 ^и r»l 1- —ч Ts\-\~\ ч /ьА -A if- ч re \ — \ 1 ^H Г7 1 I" K«l 1 1 ^ \'A 1 1 / 1 H ^ -|РШ.| Рис. 9.5. Принцип работы усовершенствованного алгоритма «Дельфт» Стоит отметить некоторые усовершенствования алгоритма «Дельфт» [18]. Одно из них служит для повышения степени автоматической адаптации к характеру распределения событий. Это относится к установке индикатора PEAKFLAG. Когда значение предсказанного времени LIMES нового события меньше номинального значения пикового интервала, тогда при записи увеличивается значение JPEAK: IF (NT.LT.LIMES) JPEAK = JPEAK + 1, а при стирании — IF (JPEAK.GT.O) JPEAK - JPEAK — 1. 320
Решение о существовании пикового интервала получается в результате проверки: J PEAK > 0? Другое изменение — допускается многократное предсказание одного и того же события (рис. 9.5, а). При этом используются дополнительные списки. Поскольку такие случаи встречаются сравнительно редко, то ячейки для этих списков берутся из списка резервных ячеек, на которые указывает указатель POOL. Ячейки для индикаторов событий непостоянных элементов берутся из списка, на который указывает EPOOL. Пример временного распределения событий показан на рис. 9.5, б. 9.2. ПРЕДСТАВЛЕНИЕ СОСТОЯНИЯ ПРИ ДИСКРЕТНОМ МОДЕЛИРОВАНИИ Будем различать два типа моделей: стохастические модели (например, уличное движение, обмен информацией в ЭВМ), где события наступают согласно некоторому вероятностному закону и результат моделирования также ожидается в форме стохастических откликов; детерминированные модели (например, цифровые логические системы), где наступление событий носит детерминированный характер и в результате ожидается функционирование системы с детерминированным поведением. Все многообразие практических проблем часто не покрывается объединением множеств этих двух видов моделей. Тип модели в основном зависит от уровня принятого в системе абстрагирования, от точности и формы представления данных. Когда значение вероятности близко к 1 или к 0, то система считается детерминированной, а в общем случае — стохастической. Если же мы не обладаем информацией о значениях вероятности либо само понятие вероятности не дает адекватного представления о модели, то будем говорить о наличии в модели неопределенности. Чтобы отразить смешанный характер поведения реальных моделей, введем следующее «размытое» определение квазидетер- минированной системы. Определение 9.2. Квазидетер минированной называется такая система, поведение которой в большинстве случаев носит детерминированный характер и в меньшей мере — неопределенный. Сюда относятся главным образом такие системы, которые обычно трактуются как детерминированные, что иногда может привести к их неадекватному представлению в виде детерминированных же моделей [4]. Необходимость рассмотрения для них недетерминированных состояний вызывается переходами, совершаемыми немгновенно (рис. 9.6), одновременными параллельными событиями, состязаниями, возникающими вследствие наличия обратных связей в структуре модели [4, 15, 16]. Для иллюстрации проблем такого характера приведем два примера из области цифровой электроники и вычислительной техники. И П/р С. В. Емельянова 321
Рис. 9.6. Пример немгновенного перехода Пример 9.1. Цифровая логическая сеть с двумя входными непрерывными сигналами трактуется, как правило, как детерминированная система. Однако, если сеть содержит, к примеру, триггер RSt на вход которого подается запрещенное значение # = S = 1, то состояние системы, возникшее вследствие этого, не будет определенным [4]. Для преодоления указанных трудностей при моделировании двоичных логических систем было предложено использовать трех- или четырехзначную логику. Но присущего трех- Время и это не решало окончательно проблемы из-за противоречия, значиой логике [4]. В случае трехзначной логики логические переменные принимают три значения: 1, и, 0, где 1 и 0 соответствуют обычным булевым переменным, тогда как значение и соответствует неопределенному значению реальной переменной, т. е. неизвестно, приняла ли она значения 1 или 0. Противоречие вытекает из того, что ut + Uj Ф 1 и u^Uj Ф 0 при / Ф}у где индексы i и / отмечают разные значения и, возникающие в различных точках сети и имеющие различные источники. Из этого следует, что дополнительное значение й не имеет интерпретации н считается, что и = и. Применение трехзначной логики иллюстрирует рис. 9.7. На рис. 9.7, a приведена таблица значений булевых функций «И», «ИЛИ» и «НЕ» для трехзначной логики, а на рис. 9.7, б показан построенный из двух вентильных схем «И—НЕ» #5-триггер, который под действием перехода 0->-и->-1, поданного на его входы, принимает состояние (и, и), тогда как реальная схема принимает одно из двух состояний A, 0) или @, 1). Пример 9.2. С помощью «слоеной структуры» операционной системы ЭВМ можно «сгладить» недетерминированный характер аппаратной системы и преобразовать ее в квазидетерминированный автомат [6]. Чем большее количество слоев «сглаживают» исходное поведение, тем меньше остается недетерминирован- И О 0 1 1 и и и в 0 1 А+В О 1 0 \ 1 о \ и 1 и 1 и А-В 0 0 0 1 0 и и а\ 1 1 0 0 и и и O^u^l &G ( &й < -и.. 0-~и + 1 а) 6) Рис. 9.7. Пример применения трехзначной логижя t-*u... 322
ности. Например, если к ЭВМ подключены два несинхронизированных устройства, которые одновремеино включаются и служат входами, предназначенными для двух программ, а на выходе ЭВМ имеется единственное печатающее устройство, то полученные результаты будут выдаваться в заранее не предсказуемой последовательности. Однако оператор или операционная система может обеспечить детерминированную очередность. Таким образом, на этом уровне удается получить детерминированную систему. Можно было бы привести множество подобных примеров. Наличие неопределенностей в модели вызвало бы такое множество продолжений функционирования, -что их эффективное моделирование было бы практически невозможным. Исследуем более подробно вопросы представления состояний квазидетерминированной системы и попытаемся найти решение, удовлетворяющее практическим требованиям и позволяющее получить как можно больше важной информации для целесообразного и экономного проведения модельного эксперимента (организация моделирования, учитывающая машинное время, емкость памяти и т. п.). Модель системы будем строить в виде сети, состоящей из множества элементарных моделей, каждая из которых описывается хорошо определенным алгоритмом (см. п. 9.1). 9.2.1. Представление квазидетерминированных систем с обработкой недетерминированностей различных типов Поскольку наши требования — получение наибольшего количества информации во время моделирования и повышение целесообразности и экономичности эксперимента — противоречат друг другу, то предлагаемые решения, очевидно, будут иметь компромиссный характер. Сначала будет описана универсальная интерпретационная процедура, после чего будут обсуждены вопросы реализации. Основным используемым понятием является понятие «неопределенности» или «недетерминированности». Целесообразно для большей ясности и упрощения разделить неопределенные ситуации в соответствии с характером их происхождения на две группы. Определение 9.3. Будем называть недетерминированным состоянием первого рода (ID1) такое неопределенное состояние, происхождение которого в системе вытекает вследствие переходов между детерминированными состояниями. Определение 9.4. Недетерминированным состоянием второго рода (ID2) будем называть такое неопределенное состояние, при котором система находится в детерминированном состоянии, но известен лишь факт принадлежности этого состояния подмножеству Q* множества всех состояний Q. Учет недетерминированностей ID1 не представляет особых трудностей, поскольку по своей природе они являются переход- П* 323
ными состояниями. Их значение, как и влияние, однозначно определяется временем перехода и состояниями, между которыми происходят переходы. Отметим, что часто приходится учитывать (согласно принципу «наихудшего варианта») максимальные значения времени перехода. При представлении неопределенностей ID2 их влияние необходимо ограничивать как во времени, так и в пространстве. Под этим подразумевается, что в модели, построенной из множества элементов N, возникновение ID2 в модельный момент времени t в элементе пх ? N не должно действовать ни на другие элементы nt ? N, nt Ф nv ни на состояние элемента пх в дальнейшие моменты времени f > t. Это требование удовлетворяется следующим образом. Если возникает недетерминированность /D2, то следующее состояние системы выбирается из всех возможных состояний произвольным, но однозначным образом на основе определения 9.4. Таким образом, для следующего состояния q*0 можно написать: <7*о ? Q*- Аналогично формализму теории автоматов [2], квазидетерми- нированное представление можно описать следующим образом. Значения состояний, входов и выходов — соответственно qf x, у — заменим векторами: 9 = (<7*> Яш и qiDi}\ (9.3) X = \Xs> XID1> xJD2j\ (9-4) У = {Уз> Уть У/d»}. (9.5) где индексы компонент означают следующее: s — значение параметра (детерминированное описание); ID1 (ID2) — параметр, указывающий на присутствие недетерминированности первого (второго) рода. Далее, функции переходов и выходов выберем в виде: 90 + т) = т(О. *г№ (9^6) *(O = 0Wr(O. *г@1. (9.7) где qr (t) и хт (t) — редуцированные векторы состояния и входных сигналов, в которых две последние компоненты предполагаются равными нулю. Введение символа qT в формулах (9.6) и (9.7) обеспечивает временное ограничение недетерминированности второго рода, а символ хт — ограничивает ее в пространстве. Полная модель системы строится как сеть элементарных автоматов, где векторы yGi t некоторых элементарных автоматов являются входными векторами xByi для других автоматов. Таким образом, предлагаемая модель, базирующаяся на соотношениях (9.6), (9.7), учитывает наличие недетерминирован- ностей путем расширения исходного пространства состояний (введение векторов qt xf у) и одновременно должным образом 324
локализует влияние неопределенностей, так как правые части указанных соотношений зависят лишь от истинных (детерминированных) составляющих векторов q, x, у. 9.2.2. Альтернативные возможности для применения предложенного метода описания 1. Составляющие формул (9.3)—(9.5) с индексами ID1 и ID2 могут быть выбраны различным образом в зависимости от требований, выдвинутых при модельном исследовании. При неопределенности ID1 возможны следующие переходы at -+• ay. aiy cij ? А, где at и aj фиксированы; аг ? Л, а а* фиксировано; at 6 At с A, aj ? Aj cz А, где подмножества At и Aj фиксированы; at ? Л, aj ? Aj cz Л, где Aj фиксировано. В этих соотношениях а и Л обозначают возможные значения q9 ху у и Q, X, Y соответственно (X, Y — множества значений входных и выходных сигналов). 2. Выбор подмножеств, относящихся к неопределенностям ID2, зависит от нескольких факторов: физических свойств моделируемой системы; простоты и удобства обработки (это замечание относится, естественно, и к /D/). 3. При возникновении неопределенности ID2 с учетом сделанных ограничений можно предположить существование нескольких альтернатив. После исследований редких и нежелательных ситуаций, вытекающих из природы /D2, можно заново начать моделирование с соответствующих входных векторов хе и векторов состояния qei полученных после исследования ситуации и возможной модификации модели, либо игнорировать возникновение ID2, если можно быть уверенным, что оно не представляет особой важности. 4. Преимущество предложенного здесь решения заключается в том, что анализ ситуации (как при выполнении алгоритмов, так и при оценке результатов человеком) легко проводится с помощью трех компонентных векторов, и в результате первая компонента дает значение предполагаемого состояния, вторая — сигнализирует о типе состояния (стабильно ли оно или уже началось изменение), а также может указать направление изменения, третья компонента сигнализирует о существенных отклонениях от нормального действия. Первая компонента вектора изменяется на значение, соответствующее новому состоянию, только в конце процесса изменения. 5. При обработке, связанной с неопределенностью /D2, очевидно, что уже до начала моделирования требуется некоторая информация о возможности возникновения такого рода неопределенностей. Выполнение этого требования реализуется двумя путями. 325
1) Предполагается, что поведение элементов модели хорошо известно и алгоритмы, описывающие его, должны обеспечить те представления ID2y которые вызываются самими элементами. 2) Другая причина возникновения ID2 вытекает из топологии модели, построенной из элементарных модулей (обратная связь). Решением в таком случае является предварительный анализ системы, по ходу которого определяются те сегменты полной модели, которые могут вызвать ID2y анализируется функционирование подсетей модели и полная модель составляется из этих подсетей как подсистем таким образом, что обработка ID2 с топологическим происхождением проводится отдельными алгоритмами, описывающими работу выделенных подсистем. Конечно, необходим также специальный алгоритм, учитывающий способ формирования полной модели из подсистем. 6. Понятие «состояния», применяемое при описании модели, включает как текущее состояние, так и совокупность прогнозируемых состояний совместно с относящимися к ним значениями времени. Иногда требуется еще и значение длительности пребывания модели в заданном состоянии. 7. Окончательные результаты предсказаний смены состояний в модели (независимо от их последовательности) должны быть однозначными. Это очень важно, если учесть последовательный характер обработки информации в ЭВМ, когда даже одновременные «модельные события» выполняются последовательно и часто (с точки зрения модели) в случайной последовательности. Это выдвигает требование, чтобы конечный результат не зависел от последовательности применения операторов ?и 0 на одинаковых множествах параметров. Методика представления квазидетерминированных состояний была использована в моделирующей системе ЛОБСТЕР, предназначенной для моделирования цифровых логических сетей [3, 24, 25, 27, 28, 29, 301. Составляющие трехкомпонентных векторов были интерпретированы на множестве @, 1}. Характеристика первой детерминированной компоненты соответствует простой булевой переменной. Если компонента, описывающая неопределенность ID1 или ID2, имеет значение 1, то недетерминированность данного рода присутствует, если 0, то недетерминированность не возникает. Недетерминированные состояния второго рода, определяемые топологическими свойствами сетей, возникают вследствие наличия в сетях обратных связей, и обработка их в системе ЛОБСТЕР происходит следующим образом. На первом этапе моделирования проводятся топологические структурные исследования, в результате которых определяются сегменты логической сети, имеющие локальные каналы обратных связей. В дальнейшем в каждом таком сегменте «разрываются» каналы обратных связей (рис. 9.8), и в ходе моделирования определяются значения логических переменных на узлах по значениям входных переменных 1 и у 326
Рис. 9.8. Сегмент логической сети с локальным каналом связи _ LU. I У (см. рис. 9.8). Если у = Yy то считается, что сегмент находится в стабильном состоянии, но неизвестно, единственно оно или нет. Процедура определяет, какой из следующих трех случаев имеет место: если в сегменте обратной связи имеется единственное стабильное состояние, то недетерминированность второго рода отсутствует, и необходимо вернуться из процедуры к дальнейшему анализу исходной логической сети; если в сегменте имеется более одного стабильного состояния, то одно из них записывается в исходную модель и одновременно сигнализируется о присутствии недетерминированности второго рода, после чего происходит возврат из процедуры к анализу исходной сети; если в сегменте нет ни одного стабильного состояния, то считается, что сегмент «осциллирует», и также происходит возврат к анализу исходной логической сети. Принцип квазидетерминированного представления событий был введен и в моделирование систем размытых множеств [22, 38]. 9.2.3. Недетерминированные состояния в дискретных системах, ориентированных на «частицы» Большую группу в моделях дискретных систем составляют такие ситуации, при которых наступление события вызывается в первую очередь не изменением значений состояния, а перемещением частиц, движущихся в системе (см., например, п. 9.1). Эти системы описываются случайными процессами. Для них необходимо исследовать вопросы очередности обслуживания, которые имеют важное значение в задачах дорожного движения, организации производства, при анализе работы цифровых электронных систем и др. [12, 13, 26, 32]. Модели, описываемые в терминах движущихся частиц, представляются во множестве универсальных языков моделирования таких, как GPSS или CSL [7, 12, 25]. Предметом исследования является частота возникновения отдельных событий в терминах вероятностных распределений, из которых определяются значения показателей эффективности, времени ожидания, длин очередей и т. п. Однако необходимо считаться с возможными аномалиями, например, при получении информации об эксплуатационных параметрах большой вычислительной системы, действующей иод управлением сложной операционной системы. Моделирование процесса функционирования операционной системы выявляет такие воз- 327
jjj Рис. 9.9. Неоднозначность очередности активизации событий Очередность дызоба Ддихение можные отказы, как «за- г липание» системы в одном I; П; Ш П —** Ш состоянии, которое может I; Ш; П П —*¦ Ш возникнуть вследствие не- П; I; Ш И —*• ПГ;Г —*• П детерминированности ка- П; Ш, I П —** Ш;1 —*¦ П кого-либо рода. Для ре- Ш; I: П П —*• Ш шения подобных проблем Ш; П; I П —¦*- Ш;1 — * И необходимо разработать соответствующие процедуры, например, принцип семафора Дейкстры [6]. Обратимся к другой проблеме, которая может возникнуть при подобных ситуациях и может привести при моделировании к систематической ошибке и в некоторых случаях значительной. Рассмотрим показанные на рис. 9.9 три связанных последовательно накопителя. Пометим ^ячейки памяти и находящиеся в них «частицы». Предположим, что алгоритм работы состоит в том, что частицы, помеченные стрелкой, продолжают двигаться по одной в следующий элемент памяти в каждый дискретный момент модельного времени, если имеется свободная ячейка. Поскольку события выполняются последовательно, то очередность активизации событий будет: I, II, III. Таким образом, при очередности I, II частица не будет двигаться, тогда как при очередности II, III, I или II, I, III — частица будет двигаться. Данная проблема затрагивалась и ранее в п. 9.1. Она важна не только с точки зрения последовательной реализации параллельных событий (квазипараллелизм — см. п. 9.1), но и с точки зрения недетерми- нированностей, возникающих вследствие одновременного возникновения событий в реальных системах, когда наступление событий происходит с малой разницей во времени, принимающей случайные значения. 9.2.4. Двойная природа дискретных событий [17, 19, 21 ] Системы, моделируемые перемещением «частиц», отличаются от систем, в которых состояния представлены значениями уровней параметров. Для последних уже был показан возможный способ обработки недетерминированных состояний. В случае «частиц» необходима идентификация определений «и есть и нет», «или здесь или там», и «здесь есть и там есть». Ход наших рассуждений сводит этот случай к квазидетерминированному представлению системы и заключается в следующем. В моделях, оперирующих с «частицами», состояния также описываются числами, т. е. уровнями. Естественно, что входы и выходы элементов таких модельных сетей взаимодействуют специальным образом. Когда один элемент подает частицу на вход 328
другого элемента, то состояние первого элемента может зависеть от вместимости второго элемента. Процессы, происходящие в таких системах, описываются двумя эквивалентными друг другу способами: сетью таких элементов, внутреннее состояние и выход которых могут изменяться в зависимости от уровней, поданных на входы, а также их внутреннего состояния; сетью таких элементов, через точки входов (акцепторы) которых в элемент могут попадать «частицы» (меняя внутреннее состояние), а с точек выхода (доноров) сеть может выдавать «частицы». Введем следующие обозначения: / — точка входа элемента типа «уровень»; О — точка выхода элемента типа «уровень»; А — точка входа элемента типа «частица»; D — точка выхода элемента типа «частица». Следует отметить, если точки / всегда пассивны, а точки О всегда активны, то в случае точек А и D такой однозначности нет. Возможно, что точка D является точкой выхода одного пассивного накопителя, из которого активная точка А «забирает» частицы, поэтому активный или пассивный характер точек А и D обозначается индексами а или р. В точках, соединяющихся друг с другом, взаимодействие может быть двух типов: DaAp или DpAa. Рассмотрим те пути, вдоль которых в модельной сети распространяются воздействия. В сетях типа «уровень» этот путь будет (/ —> 0) —> (/-> 0)-> ..., поскольку активные воздействия будут распространяться только таким образом. В нашем случае буквы, находящиеся в скобках, обозначают точки соединения, относящиеся к одному элементу, а стрелки — соединения между элементами. В сетях типа «частица» подход к задаче происходит со стороны активизации и, следовательно, можно обнаружить пути типа ...)-> (... Р ... а)-* (... Р ... а)-+ (... р ... а)-* ..., где на месте пунктира могут находиться произвольные буквы А или D, с тем ограничением, что друг за другом не могут следовать два одинаковых обозначения. Таким образом, описанный выше ряд можно заполнить двумя способами: Da) -v (ApDa) -v (ApDa) -+ (ApDa) •+... или Aa) -* (DpAa) -> (DpAa) •+ (DpAa) -+... Стрелки указывают направление активизации, а не направление движения частиц, ведь во втором случае частицы движутся справа налево. В сетях типа «частица» существут и другое, противоположное предыдущему, распространение воздействия. Если активная точка должна передать (или взять) «частицу» подсоединяемой к ней пассивной точке, то в зависимости от собственного состояния пассивной точки (ее «готовности») состояние активной точки может 329
ш /V |~T|=>Ci />|=э|л Л=>р^F^ I °) &Й4ЖМ] Рис. 9.10. Замена сети из элементов типа «частица» сетью элементов тина «уровень»: а — исходная сеть типа «частица»; 6 — экпивалентная сеть типа «уровень»; в — вид полной системы S) OpPPjriz^c^ изменяться, что и составляет обратное действие. В том случае, если необходимо заменить сеть б) типа «частица» эквивалентной сетью элементов типа «уровень» на основе существующей двойственности, то единственная связь D — А заменима двумя противоположно направленными связями / — 0 (рис. 9.10). На рис. 9.10 показано, каким образом выявляются скрытые действия обратной связи в сети с каскадным соединением типа «частица», в которой исключена обратная связь при замене ее эквивалентной связью типа «уровень». В моделях, оперирующих с «частицами», также возможно применение квазидетерминированного представления системы в следующих случаях: ненулевое время прохождения «частиц» между некоторыми элементами может быть описано недетерминированностью первого рода; недетерминировашюсти, являющиеся следствием «стабильных» положений, могут быть описаны недетерминированными состояниями второго рода. Недетерминированности в таких системах вызываются образующимися обратными связями. Поскольку существование обратных связей нельзя рассматривать как исключительный случай, то при практическом применении метода обработки квазидетерминированных ситуаций предлагается следующее: активизацию процедур обработки обратных связей необходимо выполнять в сегментах, имеющих критическое состояние (элементом с критическим состоянием называем такой элемент, содержимое которого близко к какому-нибудь — пустому или наполненному — конечному состоянию, достигаемому элементом при воздействии следующего возможного изменения); определить систему динамическим образом, т. е. элементы, принадлежащие к системе, но не имеющие критического состояния, не считаются относящимися к ней. Метод описания квазидетерминированной системы может применяться и при моделировании систем, представляемых упомянутыми выше уровнями. Кроме того, этот метод может применяться при моделировании «размытых» систем, а также для обработки не полностью детерминированных положений, возникающих при моделировании движений дискретных «частиц». 330
ГЛАВА> 10 ЯЗЫКИ МОДЕЛИРОВАНИЯ 10.1. НАЗНАЧЕНИЕ ЯЗЫКОВ МОДЕЛИРОВАНИЯ В процессе построения модели можно выделить три уровня ее представления: концептуальную модель, формализованное или алгоритмизованное описание, программу-имитатор. Концептуальная модель — это систематизированное содержательное описание моделируемой системы (или проблемной ситуации) на неформальном языке. Концептуальная модель содержит исходную информацию для системного аналитика, выполняющего формализацию системы и использующего для этого определенную методологию и технологию. Формализованное описание далее преобразуется в программу-имитатор также в соответствии с некоторой методикой (дисциплиной) программирования. Аналогичная схема имеет место и при выполнении имитационных экспериментов: содержательная постановка отображается на формальную модель, после чего вносятся необходимые изменения и дополнения в программу-имитатор. Любой переход от одного уровня представления к другому требует времени и интеллектуальных затрат для преобразования информации. В процессе преобразования информации возможны ошибки, вследствие которых возникает необходимость неоднократного повторения всего процесса. Языки моделирования упрощают построение программ-имитаторов и проведение имитационных экспериментов за счет частичной или полной автоматизации переходов от одного уровня представления модели к другому. В этом состоит основное назначение языков моделирования, именно здесь и проявляется их главное преимущество перед универсальными алгоритмическими языками. Множество языков моделирования можно разделить на две группы: 1) методо-ориентированные языки моделирования, поддерживающие определенный класс формализованных или алгоритмических описаний (мы не используем иногда применяемый термин «проблемно-ориентированные языки», поскольку он широко используется для выделения любых специализированных по области применения языков программирования. В этом смысле все языки моделирования — проблемно-ориентированные); 331
2) языки моделирования конечного пользователя, позволяющие формулировать задачи моделирования непосредственно на концептуальном уровне. Далее рассматриваются методоориентированные языки, которые для краткости называются просто языками моделирования. Язык моделирования предоставляется пользователем как часть системы моделирования. Система моделирования — это совокупность языковых и программных средств, которая включает: собственно язык моделирования; язык управления системой моделирования, реализованный на основе языка управления заданиями пакетных операционных систем или на основе языка команд в интерактивных операционных системах; программные средства, обеспечивающие трансляцию модели и другие стандартные функции системы моделирования (продвижение модельного времени, генерацию случайных чисел, сбор статистической информации, вывод результатов и т. д.). Системы моделирования включают также средства разработки языков конечного пользователя (см. гл. 11—13 настоящей книги). Общепризнанными являются следующие преимущества языков и систем моделирования по сравнению с универсальными языками и системами программирования: язык моделирования содержит абстрактные конструкции, непосредственно отражающие понятия, в которых представлена формализованная модель, и близкие концептуальному уровню описания моделируемой системы. Это упрощает программирование имитатора, позволяет автоматизировать выявление многих ошибок в программах; системы моделирования имеют эффективный встроенный механизм продвижения модельного времени (календарь событий, методы интегрирования и др.), средства разрешения временных узлов; языки моделирования, как правило, содержат встроенные датчики случайных чисел, генераторы других типовых воздействий; в языках моделирования автоматизирован сбор стандартной статистики и других результатов моделирования. Имеются средства автоматизации выдачи этих результатов в табличной или графической форме; языки моделирования имеют средства, упрощающие программирование имитационных экспериментов, в частности, автоматизирующие установку начального состояния и перезапуск модели. Вместе с тем пользователи нередко отмечают следующие недостатки языков и систем моделирования: используются только стандартные формы вывода результатов моделирования; недостаточная распространенность языков моделирования, которые, как правило, не входят в штатное программное обеспечение операционных систем; 332
необходимость дополнительного обучения языкам моделирования и, как следствие, недостаток программистов, хорошо владеющих языками моделирования; отсутствие гибкости и широких возможностей, присущих универсальным языкам программирования. Отмеченные недостатки по-разному проявляются в каждой конкретной системе моделирования. Например, система интерпретирующего типа может иметь высокую скорость трансляции, но большое время выполнения. Компилирующая система долго транслирует программу, но выполняет ее достаточно эффективно. Сравнивая эффективность тех и других систем, следует учитывать затраты и на трансляцию, и на выполнение модели. Другие недостатки в меньшей степени проявляются у систем моделирования, реализованных на базе широко распространенных языков программирования ФОРТРАН, ПЛ/1, ПАСКАЛЬ, поэтому не имеет смысла говорить о каких-либо общих недостатках для всех языков и систем моделирования. Рост числа языков моделирования свидетельствует о необходимости использования средств автоматизации моделирования. Вместе с тем разнообразие языков моделирования обусловлено и другими факторами: существует большое число схем формализации и алгоритмизации моделируемых систем: агрегаты, сети, автоматы, процессы, системы массового обслуживания, дифференциальные уравнения, аналоговые блок-схемы, графы связей и др. Любая из этих схем может служить основой для разработки нового языка моделирования. Еще большее разнообразие возможно на уровне концептуальных моделей. Все это — существенный стимул для появления новых языков; свыше 20 % языков моделирования, перечисленных в [81, реализованы на основе языков программирования ФОРТРАН, ПЛ/1, СИМУЛА-67 и др. По сути, это все пакеты прикладных программ, поддерживающие определенную технологию программирования в имеющихся языках программирования; имитационные модели, как правило, не являются конечной программной продукцией, которая может быть многократно использована в других разработках программного обеспечения. Поэтому выбор языка моделирования мало связан с необходимостью разрабатывать или использовать конечный программный продукт, что обычно является важным при программировании на универсальных алгоритмических языках; отсутствует поддержка многих полезных языков моделирования со стороны изготовителей программного обеспечения, способных гарантировать высокое качество программных средств и документации. В результате научно-исследовательские организации вынуждены самостоятельно разрабатывать и сопровождать языки и системы моделирования. 333
Среди большого числа языков моделирования довольно сложно выделить какое-то базовое подмножество языков, покрывающих основные потребности пользователей в средствах автоматизации моделирования. В настоящее время наиболее известными в СССР языками моделирования являются: СИМУЛА-67 с классом SIMULATION, GPSS, ГАСП-IV, СИМСКРИПТ-2, ПМНП, НЕДИС и др. [8, 10, 14]. Перспективными, на наш взгляд, являются языки моделирования, реализуемые на основе универсальных алгоритмических языков, имеющих развитые средства проблемной ориентации: СИМУЛА-67, АДА. Менее удобными для этих целей, но более распространенными являются ФОРТРАН, ПЛ/1 и ПАСКАЛЬ. 10.2. КЛАССИФИКАЦИЯ ЯЗЫКОВ И СИСТЕМ МОДЕЛИРОВАНИЯ, ИХ ОСНОВНЫЕ ХАРАКТЕРИСТИКИ Классификация языков и систем моделирования позволяет упорядочить сведения о существующих многочисленных языках моделирования, а также более обоснованно выбирать подходящую систему моделирования. Второе обстоятельство в настоящее время, быть может, не столь уж существенно, поскольку у пользователя, работающего в конкретной операционной системе, возможности для выбора языка моделирования все еще довольно ограничены, В основу классификации положим следующие характеристики языков и систем моделирования: класс моделируемых систем; базовую для языка моделирования схему алгоритмизации; альтернативные схемы алгоритмизации; синтаксическую основу языка моделирования; средства проблемной ориентации в языке моделирования; средства раздельной трансляции; алгоритмические возможности языка моделирования; средства сбора и выдачи результатов; средства управления имитационными экспериментами; генераторы стандартных воздействий. Принято выделять три класса моделируемых объектов: дискретные, непрерывные, дискретно-непрерывные (комбинированные). Соответственно различают три класса языков моделирования. В [8] приведены сведения о 114 языках непрерывного моделирования, 117 языках дискретного моделирования и 34 языках комбинированного моделирования. Области применения языков непрерывного и дискретного моделирования практически не пересекаются. Языки комбинированного моделирования используются при работе с моделями объектов и непрерывного, и дискретного класса. Под базовой схемой алгоритмизации подразумевается совокупность понятий, которые используются для алгоритмизации (формализации) моделируемой системы и непосредственно представлены в языке моделирования. В настоящее время используется большое число различных способов алгоритмизации. В языках непрерывного моделирования широко применяются системы диф- 334
ференциальных и интегродифференциальных уравнений, структурные схемы, графы связей. Среди дискретного моделирования различают: языки событий, языки работ, языки процессов, языки транзактов (некоторые авторы объединяют их с языками процессов [10]), языки, основанные на автоматных и сетевых представлениях, и др. Языки комбинированного моделирования могут основываться на агрегатах, КОМБИ-сетях, использовать комбинированные схемы алгоритмизации языков непрерывного и дискретного моделирования. Базовая схема алгоритмизации предполагает определенную организацию работы управляющей системы моделирования. Кроме базовой схемы алгоритмизации при построении имитационной модели могут быть применены альтернативные схемы, близкие к базовой, либо приводимые к ней. Например, язык структурных схем можно использовать для моделирования систем дифференциальных уравнений, дискретные сети можно моделировать на языке транзактов или процессов. Часто проще и целесообразнее разработать методику программирования для выбранной схемы алгоритмизации, чем найти язык, основанный на этой схеме. Таким образом, один и тот же язык моделирования можно применять для реализации различных способов алгоритмизации моделей. По синтаксической основе различают языки моделирования: вложенные в'базовый язык; расширяющие базовый язык; с собственным синтаксисом. Языки, вложенные в базовый язык, строятся на основе средств проблемной ориентации базового языка. Например, посредством определения класса SIMULATION язык процессов вложен в универсальный язык программирования СИМУЛА-67. В простейшем случае вложенный язык состоит из обращений к программам, входящих в пакет прикладных программ (ГАСП-IV). Вложенные языки очень мобильны и легко переносятся вместе с базовой системой программирования в любую другую операционную систему. Языки, расширяющие базовый язык, реализуются на основе базовой системы программирования, дополненной процессором и библиотекой стандартных программ. Препроцессор выполняет трансляцию с языка моделирования в базовый язык, а далее уже используются стандартные средства базовой системы программирования. Препроцессорная система может быть мобильной, если препроцессор программируется на базовом языке. Для реализации языка с собственным синтаксисом также можно использовать препроцессор к некоторой существующей си* стеме программирования. Более сложный путь — реализация собственного компилятора. В любом случае система будет более мобильной, если она реализована на распространенном языке программирования высокого уровня. Наличие средств проблемной ориентации в языке моделирования позволяет разрабатывать языки конечных пользователей, 335
вводить макропонятия для упрощения программирования. Средства проблемной ориентации могут быть реализованы различными способами. Весьма распространенный способ — использование макросов. В языке СИМУЛА-67 для проблемной ориентации языка служат классы. В процедурно-ориентированных языках могут использоваться подпрограммы или процедуры. В настоящее время широко применяются диалоговые средства для реализации языков конечного пользователя. Средства раздельной трансляции имеют важное значение при разработке сложных моделей коллективом разработчиков. Отдельные части модели могут параллельно программироваться и отлаживаться. Кроме того, раздельная трансляция приводит к снижению затрат на внесение изменений в модель, что очень важно при проведении имитационных экспериментов. Алгоритмические возможности языка моделирования во многом характеризуют его гибкость при решении не совсем стандартных задач: программировании усложненной логики и вычислений, не предусмотренных ранее обработки и вывода результатов моделирования, вызове функций операционной системы, организации связи с системой управления базой данных и т. д. Алгоритмические возможности могут быть включены непосредственно в язык моделирования либо может быть предусмотрен вызов программ, написанных на алгоритмических языках. Как правило, все языки моделирования имеют стандартные средства сбора и вывода результатов моделирования в табличной или графической форме. Эти средства не всегда достаточно гибки и не во всех случаях удовлетворяют пользователя. Поэтому должна быть предусмотрена возможность подключения нестандартных средств обработки и вывода результатов моделирования, разработанных пользователем. Средства управления имитацией позволяют автоматизировать установку начального состояния модели, определить условия завершения прогона, выбрать режимы работы управляющей программы, хранить и восстанавливать промежуточные состояния программы-имитатора. Наличие таких средств значительно упрощает программирование имитационных экспериментов с моделями. Языки моделирования обязательно включают генераторы стандартных воздействий: датчики случайных чисел, распределенных по различным законам; генераторы типовых воздействий в системах непрерывного моделирования. Анализ перечисленных характеристик позволяет составить достаточно полное представление о языке и поддерживающей его системе моделирования. Безусловно важной, но внешней по отношению к языку моделирования характеристикой является качество сопровождения системы моделирования, наличие четкой и полной документации. 336
10.3. ПРИМЕРЫ РЕАЛИЗАЦИИ ЯЗЫКОВ МОДЕЛИРОВАНИЯ (ВОЗМОЖНОСТИ И ОГРАНИЧЕНИЯ) В данном параграфе приведены краткие описания языков моделирования с учетом их конкретных реализаций на ЭВМ. Материал изложен в основном в соответствии с перечнем характеристик языков и систем моделирования, рассмотренных в п. 10.2. В обзор вошли языки моделирования дискретных систем: GPSS, ПЛИС, СИМПЛ/1, СИМУЛА-67 (с классом SIMULATION), языки комбинированного моделирования: НЕДИС, ГАСП-IV и языки моделирования непрерывных систем: ПМНП, ДИНАМО. 10.3.1. Язык моделирования GPSS Язык GPSS (General Purpose Simulation System) с 1962 г. входит в математическое обеспечение машин фирмы IBM и в настоящее время является одним из наиболее распространенных языков моделирования. В 1970 г. был разработан язык GPSS-V, являющийся расширением GPSS/360. В состав математического обеспечения ЕС ЭВМ язык GPSS входит как пакет моделирования дискретных систем (ПМДС) [3, 7, 15]. GPSS позволяет описывать процессы с дискретными событиями. Он особенно хорошо приспособлен для моделирования систем массового обслуживания. Средства языка, отображающие стандартные компоненты таких реальных систем, как приборы, многоканальные устройства, переключатели, и программная реализация алгоритмов их функционирования, дают возможность строить модели сложных систем, сохраняя привычную для системотехников запись. GPSS позволяет также достаточно удобно программировать сетевые и автоматные модели. GPSS относится к языкам транзактов. Транзакты — это динамические объекты, представляющие собой элементы потока, требующие обслуживания. Транзакты могут создаваться и уничтожаться в соответствии с логикой моделирования. Для задания характеристик транзакта может быть использовано некоторое число параметров данного транзакта. Наряду с динамическими объектами (транзактами) GPSS содержит еще четыре класса простых объектов: аппаратно-ориен- тированные; статистические; вычислительные; операционные. Ап- паратно-ориентированные объекты соответствуют элементам оборудования, через которые проходят транзакты. В число таких объектов входят: «Приборы» («Устройства»); «Многоканальные устройства» («Накопители»); «Логические переключатели». Прибор может обслуживать одновременно только один тран- закт, многоканальное устройство — несколько транзактов. Логические переключатели, принимающие значения «включено» или «выключено», позволяют изменять пути следования транзактов в модели. К статистическим объектам относятся «Очереди» и «Таблицы». Очередь позволяет собрать информацию о времени задержки тран- 337
зактов в определенной точке модели. Таблицы используются для построения распределений выбранных величин. Вычислительные объекты служат для программирования вычислений и сложной логики. К вычислительным объектам относятся: «Переменные», «Матрицы», «Сохраняемые величины», «Функции». Операционные объекты («Блоки») формируют логику системы, управляя движением и обслуживанием транзактов, обеспечивая взаимодействие между транзактами и другими объектами модели. GPSS является системой интерпретирующего типа с собственным языком. Модели систем на GPSS представляются в виде схем алгоритмов. Они состоят из сети блоков (операторов языка), каждый из которых описывает определенный этап действий в системе. Линии соединения блоков показывают направления движения элементов через системы или описывают последовательности событий, которые нужно исследовать. Преобразование схемы алгоритма в программу на машинном носителе является по существу чисто механической работой. Программа на языке GPSS пишется на бланках определенного формата. Формат ввода содержит три поля: поле метки, поле операции, поле операндов. Версия GPSS-V позволяет наряду с фиксированным форматом использовать и свободный формат. Некоторые часто встречающиеся последовательности блоков в GPSS могут быть определены как макросы. Эти макросы не являются подпрограммами и не могут быть использованы для экономии числа блоков в модели, а служат лишь средством упрощения кодирования повторяющихся последовательностей блоков. Возможности использования макросов GPSS как средства проблемной ориентации очень ограничены. Каждый из объектов GPSS требует определенного числа ячеек основной памяти, в которых во время моделирования хранятся атрибуты объекта. Максимальное число объектов каждого типа (например, транзактов, приборов, очередей и т. п.) зависит от того, какой объем памяти ЭВМ доступен для модели, причем память отводится под максимальное число объектов каждого типа независимо от того, используются они в модели или нет. Пользователю предоставляется возможность перераспределять память, задавая отличные от стандартных количества объектов каждого типа. В GPSS существует средство вспомогательной памяти, позволяющее размещать часть объектов модели на устройствах прямого доступа. Использование этого средства приводит к уменьшению запросов на основную память при выполнении модели. Операторы управления прогонами GPSS обеспечивают перезапуск модели, изменение ее определенных частей, установку начальных условий. GPSS не допускает раздельной трансляции. Операторы модели и операнды управления прогонами могут транслироваться только в виде единого текста. 338
Существенным недостатком GPSS является отсутствие в нем общеалгоритмических средств для организации вычислений и операций ввода-вывода, а также замкнутость его интерпретирующей системы, затрудняющая включение ее в качестве составной части в уже существующие системы имитационного моделирования. В связи с этим возможности пользователя при проведении экспериментов с моделью довольно ограничены и сводятся в основном к прогонам модели и сбору стандартных статистических характеристик, которые выдаются автоматически по окончании моделирования (с помощью редактора вывода они могут быть представлены также и в виде гистограмм). Некоторое расширение вычислительных возможностей языка и лучшее обеспечение ввода-вывода достигается при использовании средства HELP, с помощью которого в модель могут включаться предварительно оттранслированные подпрограммы пользователя, написанные на ассемблере или ФОРТРАНе (в GPSS — еще и на ПЛ/1). В качестве датчиков случайных чисел в GPSS используются восемь генераторов псевдослучайных чисел, распределенных равномерно на интервале [0 ... 0,999999). Имеется возможность задавать начальные значения генераторов. Интерпретатор GPSS рассматривает каждый транзакт как элемент одной или нескольких «Цепей». Положение транзакта в цепи связано с тем, как скоро он снова вернется в модель для продолжения движения. Существует пять видов цепей: 1) текущих событий; 2) будущих событий; 3) пользователя; 4) прерывания; 5) парности. Цепь текущих событий (единственная в модели) состоит из трех транзактов, для которых планируется продвижение через один или несколько блоков в модельном времени (к последним относятся транзакты, движение которых планировалось на некоторый предыдущий момент времени, но которые были блокированы). Цепь текущих событий организуется в порядке убывания приоритетов транзактов, а в пределах каждого класса приоритета — в том порядке, в котором транзакты были размещены в цепи. Для разрешения временных узлов, т. е. для формирования правильной последовательности выполнения «Одновременных» событий, необходимо обеспечивать правильное размещение транзактов в цепи текущих событий. Для этого в GPSS имеются специальные средства, позволяющие назначать и изменять приоритеты транзактов в ходе моделирования, а также возвращать в нужные моменты просмотр интерпретатором цепи текущих событий к началу этой цепи. 10.3.2. Язык моделирования ПЛИС Язык ПЛИС разработан в СССР [8]. В настоящее время имеется несколько версий языка. Мы рассмотрим версию 3.1, ориентированную на использование ЕС ЭВМ. Несмотря на то, 339
что язык ПЛИС не входит в стандартное математическое обеспечение ЭВМ, он представляет интерес, так как в нем на новом уровне развивается концепция GPSS. ПЛИС предназначен для моделирования дискретных систем и относится к языкам транзактов. В отличие от GPSS он представляет собой не фиксированный набор объектов (транзактов, приборов, накопителей, очередей и др.), а средства для создания собственных объектов пользователя. Все объекты в ПЛИС рассматриваются как представители некоторых определенных пользователем классов. Классы объектов представляют собой абстрактные типы данных 19], описания которых не включаются в текст модели, а заносятся в личную библиотеку пользователя. Описание классов объектов может включать: структуру объектов этого класса; набор операторов над объектами; набор функций, предоставляющих информацию об объектах; набор сервисных процедур, которые вызываются автоматически при применении к объектам операций создания, уничтожения, печати, сбора статистики. Обязательной компонентой описания класса является только структура объекта. По способности к самостоятельному функционированию объекты делятся на активные и пассивные, по времени существования — на динамические и статические, по области доступности из различных программных модулей — на внешние и внутренние. Активные объекты являются развитием понятия транзакта языка GPSS, так как структура активных объектов определяется пользователем. Выше были перечислены основные операции языка ПЛИС, применимые к объектам любого вида. Для работы с активными объектами ПЛИС предоставляет операции условного и безусловного ожидания, выбора, генерации, уничтожения, активизации и синхронизации движения, а также другие операции, которые соответствуют множеству операций над транзактами в GPSS. Значительно расширяют возможности ПЛИС (особенно для пользователей, моделирующих системы массового обслуживания) стандартные классы объектов. Они введены разработчиками ПЛИС и поставляются совместно с системой моделирования. К числу стандартных объектов относятся: транзакты, приборы, накопители, очереди, таблицы, списки. Элементами списков являются объекты произвольного вида, в том числе и списки. Для работы со списками созданы специальные операторы, основными из которых являются операторы: включения и исключения объектов, организации циклов по списку. Транзакты ПЛИС представляют собой активные объекты со структурой, аналогичной структуре транзактов GPSS. Остальные, перечисленные ранее стандартные объекты, по своему назначению и возможностям также соответствуют одноименным объектам GPSS. Таким образом, в рамках ПЛИС разработан язык, аналогичный GPSS. 340
Система моделирования ПЛИС реализована как расширение ПЛ/1. При написании программ на ПЛИС могут быть использованы любые операторы ПЛ/L Это позволяет применять ПЛИС для кодирования моделей со сложной логикой вычислений, т. е. для тех случаев, когда требуются алгоритмические возможности на уровне языка программирования общего назначения. ПЛИС обеспечивает модульность создаваемых на его основе программ. Раздельно компилируемыми программными модулями являются главная модель, подмодель и процедура. Главная модель играет организационную роль. Она обычно не включает алгоритмы функционирования активных объектов, а содержит только указания классов используемых объектов, объявления подмоделей, определяет план эксперимента. Главная модель вызывается как процедура из программы на ПЛ/1 или является независимой программой, активизируемой через язык управления заданиями ОС ЕС ЭВМ. Подмодель предназначена для определения подсистемы моделируемой системы. На использование подмоделей накладываются существенные ограничения: подмодель может включаться в модель системы (в главную модель или в другую подмодель) только в одной точке, а связывание формальных параметров подмодели с фактическими является статическим. Отличительная особенность процедур состоит в том, что они функционируют мгновенно в смысле модельного времени. Могут быть использованы процедуры, написанные на языках ПЛИС, ПЛ/1, ФОРТРАН и на ассемблере. В качестве средств проблемной ориентации ПЛИС предоставляет классы объектов, процедуры и подмодели. В язык введены средства сбора и выдачи статистических результатов (аналогичные средствам GPSS) по объектам стандартных классов. Подключение нестандартных средств вывода обеспечивается за счет языков программирования ПЛ/1, ФОРТРАН и ассемблера. Для генерации случайных воздействий в ПЛИС включены специальные встроенные функции, которые предоставляют равномерное, равномерное целочисленное, нормальное, экспоненциальное распределения, кусочно-линейную аппроксимацию заданной интегральной функции распределения и другие датчики случайных чисел. 10.3.3. Язык моделирования СИМПЛ/1 Язык СИМПЛ/1 является расширением языка высокого уровня ПЛ/1 [7, 17]. Он используется для решения задач дискретного моделирования. СИМПЛ/1 относится к языкам процессов, т. е. содержит специальные конструкции, применяемые при моделировании дискретных системе параллельными взаимодействующими процессами. В форме систем с параллельными процессами могут быть представлены системы массового обслуживания, сети Петри, Е-сети, ЕД-диаграммы, автоматы, агрегаты и другие классы математических моделей дискретных систем. 341
Синтаксис СИМПЛ/1 расширяет синтаксис базового языка (ПЛ/1) за счет введения дополнительных конструкций, используемых при моделировании. К таким конструкциям относятся: операторы описания процессов, списков и динамических объектов СИМПЛ/1; операторы процесс-управления, предназначенные для ини- ; циализации, синхронизации, задержки и уничтожения процессов; операторы список-управления для регулирования различных типов наборов и очередей, встречающихся в задачах имитации; операторы, реализующие удобные способы накопления статистических данных и генерации отчетов; средства, реализующие функцию слежения, которая обеспечивает наблюдение за режимом имитации в течение указанного интервала модельного времени. Для реализации языка используется препроцессор СИМПЛ/1, который преобразует написанную имитационную модель в программу на базовом языке. Эта программа впоследствии должна пройти обычный цикл обработки (трансляции, редактирования, выполнения) с использованием библиотек СИМПЛ/1 и ПЛ/1. В СИМПЛ/1 нет специальных средств для проблемной ориентации, однако в качестве таких средств могут использоваться элементы имитационных моделей, реализованные в виде макросов для препроцессора ПЛ/1. Использование препроцессора ПЛ/1 является мощным средством составления сложных моделей на СИМПЛ/1 из стандартных фрагментов. Это объясняется тем, что средства независимой компиляции компонент модели налагают целый ряд ограничений на использование конструкций языка. В раздельно компилируемых процедурах могут быть использованы только средства работы со списками СИМПЛ/1. Описания процессов и операторы процесс-управления должны быть сосредоточены в головной процедуре. Общеалгоритмические возможности языка обеспечиваются всеми средствами ПЛ/1. В частности, в СИМПЛ/1 сохранены все средства ПЛ/1, обеспечивающие: управление вводом-выводом; установление логических взаимосвязей, не являющихся специфическими для моделирования; возможность проведения сложных вычислений, характерных для ПЛ/1. СИМПЛ/1 имеет стандартный вывод, который дает возможность получать гистограммы и другие статистики, выполнять трассировку передач управления от одного процесса к другому. Дополнительно к гистограммам на печать выдаются такие данные, как среднее значение наблюдаемых величин, общее число наблюдений, максимальное и минимальное значения наблюдаемых при имитации переменных. Пользователю предоставляются специальные функции, позволяющие осуществлять в модели доступ к перечисленным выше данным. В конце моделирования обычно осуществляется автоматический вывод на печать накопленных в ходе работы модели статистических данных о составе процессов 342
модели, о состоянии очередей и т. п. В СИМПЛ/1 имеется возможность подавить вывод этой информации. Пользователь может осуществить промежуточный вывод данных, используя для этой цели специальный оператор СИМПЛ/1. Для наблюдения за передачами управления от одного процесса к другому предусмотрен оператор трассировки. Во время трассировки при каждой активизации процесса указанного типа выводится сообщение, которое идентифицирует активизированный процесс и сообщает номер последнего выполняемого оператора процесс-управления, а также информирует о текущем значении модельного времени. Генератор случайных чисел СИМПЛ/1 имеет 20 независимых потоков. Каждый поток порождается от своей начальной величины. Можно установить стандартные значения величин, а можно специально определять их в программе. Все потоки используются различными датчиками для получения случайных чисел с заданными законами распределения. Имеются датчики для равномерного, нормального, бета- и других распределений (всего 19 видов). Для разрешения временных узлов в СИМПЛ/1 используются приоритеты процессов, отображаемых в имитационной модели. Задание процессу приоритета осуществляется в момент активизации. Приоритет может изменяться при функционировании процесса. Для той же цели в СИМПЛ/1 применяются время-процессы. Они обрабатываются в модели раньше, после каждой корректировки модельного времени. 10.3.4. Язык моделирования СИМУЛА-67 Язык СИМУЛА-67 разработан в Норвежском вычислительном центре [2]. Это — универсальный язык программирования, в котором получила дальнейшее развитие концепция структурной организации программ языка АЛГОЛ-60, являющегося подмножеством СИМУЛА-67. В СИМУЛА-67 имеются удобные средства описания новых понятий, обработки текстовой информации, стандартного ввода- вывода (в том числе, работы с файлами), квазипараллельного исполнения компонентов программы. К достоинствам языка относится возможность построения на его основе специализированных языков программирования и пакетов прикладных программ. Удобными и полезными являются реализованные в СИМУЛА-67 средства поддержки процессов постепенной детализации понятий и действий, применяемых в ходе исследований предметной области. Наиболее широко СИМУЛА-67 используется в имитационном моделировании. Центральным понятием языка СИМУЛА-67 является понятие класса объектов. Принципиальное значение имеет концептуальное единство этого понятия и абстрактных типов данных. Описание 343
класса определяет структуру данных объекта (атрибуты) и правила действия всех объектов класса. Атрибутами могут быть переменные различных типов (целые, вещественные, булевские, литеры), массивы переменных, ссылки на другие объекты, процедуры. Внешне описание класса похоже на описание процедуры, однако блок, порожденный вызывом процедуры, исчезает в момент передачи управления вызывающей программе. Программный компонент — объект, сгенерированный вследствие вызова класса, может существовать дольше своего вызова и оставаться в программе до тех пор, пока существует необходимость обращения к данному объекту. На объект можно ссылаться, он может иметь имя. Одновременно разрешается существование любого количества объектов, имеющих различные имена и не имеющих имен, но организованных в списки. К атрибутам относятся переменные и процедуры, указанные в списке формальных параметров класса и описанные в блоке тела класса. Важным свойством атрибутов объектов является их доступность не только для правил действия данного конкретного объекта, но и из других объектов. Этим достигается простая организация информационного взаимодействия объектов в СИМУЛА-67. Если блок тела класса содержит лишь описания, то соответствующие объекты не будут выполнять никаких действий. В таком случае они могут использоваться как пассивные структуры данных. Классы позволяют создавать структурированные описания сложных объектов в виде древовидных иерархий деклараций классов. Класс может иметь префикс, т. е. имя класса предыдущего уровня иерархии. В теле класса, расположенного на нижних уровнях иерархии, разрешается использовать для построения новых классов объектов все средства, определенные в декларациях вышестоящих уровней. Аппарат иерархий деклараций классов является мощным средством проблемной ориентации Так, средства моделирования дискретных систем определены в системном классе SIMULATION, который, в свою очередь, построен на базе общих средств класса SIMSET, ориентированных на организацию упорядоченных множеств в любой предметной области. Аналогично на базе класса SIMULATION могут быть разработаны специализированные средства имитационного моделирования, например, для систем массового обслуживания, сетей событий, автоматных и агрега- тивных систем. В основе средств моделирования, предлагаемых в классе SIMULATION, лежат понятия системного времени и процесса. Процесс — это объект, функционирование которого представляется в виде последовательности активных фаз — событий. Этой последовательности соответствует неубывающая последовательность моментов системного времени. При реализации события 344
системное время не изменяется, преобразование состояния модели осуществляется мгновенно. Нескольким событиям в модели может соответствовать один и тот же момент системного времени, что позволяет отобрать в модели события, совершающиеся в системе одновременно. Для упорядочения моментов будущих событий используются календарь, организованный в виде списка, и переменная вещественного типа, сохраняющая значение текущего времени. Объекты моделируемых систем представляются процессами, выполнение и взаимодействие которых имитирует изменения, происходящие в реальной системе. Количество процессов и их взаимосвязи могут меняться в ходе работы модели. Это позволяет легко моделировать динамику систем с переменной структурой и сложными механизмами самокорректирования. Алгоритмические средства языка позволяют получать адекватные описания объектов со сложными правилами функционирования. В реализациях СИМУЛА-67 на БЭСМ-6 и ЕС ЭВМ предусмотрены средства раздельной компиляции процедур и классов, а также средства интерфейса с другими системами программирования, соблюдающими стандартные соглашения о связях. Вызов внешних программ выполняется в языке с помощью процедур, а информационное взаимодействие — через параметры и общие области памяти. Средства иерархического описания классов процессов обеспечивают возможность эволюционного развития и детализации описаний типовых моделей, конкретизации представлений о системах при их исследовании и проектировании. Класс SIMULATION включает стандартные процедуры получения псевдослучайных чисел, распределенных по различным законам, процедуры накопления и выдачи гистограмм и интегралов по системному времени. 10.3.5. Язык моделирования НЕДИС Язык НЕДИС разработан в Институте кибернетики им. В. М. Глушкова АН УССР. Он предназначен для моделирования дискретных, непрерывных и непрерывно-дискретных систем, а также для обработки нечисловой информации [4, 11]. Понятие непрерывно-дискретной системы является естественным обобщением понятия системы с дискретными событиями, В промежутке между двумя дискретными событиями происходит решение задачи Коши для системы дифференциальных уравнений, назначенной последним событием, определяющим таким образом эволюцию системы в целом до момента наступления очередного дискретного события. Допускается также возникновение новых событий вследствие выполнения каких-либо ограничений, связанных с интегрированием системы дифференциальных уравнений. 345
Имеющиеся в НЕДИС средства моделирования систем с дискретными событиями в общем аналогичны соответствующим средствам языка СИМУЛА-67, но расширены за счет включения дополнительных специальных величин (устройств и памяти), используемых в качестве стандартных моделей типичных элементов систем массового обслуживания, способов представления гистограмм и изображения графиков, применяемых в процессе сбора и обработки данных об изменениях случайных переменных имитационных моделей. Для описания непрерывного взаимодействия объектов моделируемой системы в НЕДИС реализован способ естественной интерпретации записей дифференциальных уравнений и введен стандартный класс интеграторов, позволяющий задавать дифференциальные уравнения в форме, близкой к традиционной математической записи. Объект-интегратор имеет в качестве атрибутов вход и выход, причем выход определяется через интеграл по времени от входа. Система НЕДИС не требует ручной сортировки дифференциальных уравнений. Изобразительные возможности языка усилены введением аппарата функций для записи выражений различных типов и операторов активизации по условию. В общем случае зафиксированные функциональные зависимости могут сохраняться лишь на конечном интервале времени. Их установление и отмена являются актами дискретного взаимодействия. НЕДИС имеет собственный язык. Его общеалгоритмической компонентой служит переработанный АЛГОЛ-60. Введение в описания операторных вставок позволяет сокращать глубину вложенности блоков при использовании массивов с назначаемыми границами. Возможность использования функций, массивов функций вообще любых данных (кроме меток), в том числе — специальных объектов, классов, вырезок массивов и явно заданных массивов в качестве параметров процедур и классов повышает технологичность НЕДИС по сравнению с СИМУЛА-67. Эффективность таких средств особенно заметна при разработке проблемно-ориентированных расширений НЕДИС. Так же как и СИМУЛА-67, НЕДИС поддерживает концепцию абстрактных типов данных. Класс языка определяет структуру данных объекта и правила действий всех объектов данного класса. В НЕДИС класс может быть атрибутом объекта. НЕДИС не имеет аппарата префиксов, с помощью которого в СИМУЛА-67 поддерживаются процессы эволюционного расширения описаний моделей. Язык допускает раздельную трансляцию процедур и классов. Программы на НЕДИС могут взаимодействовать с программами на других языках программирования (ФОРТРАН, ассемблер, АЛГОЛ-PDP). Вызов внешних программ выполняется с помощью процедур, а информационное взаимодействие — через параметры и общие блоки памяти. Разрешается организация экспериментов 346
путем вызова программ на НЕДИС из программ на ФОРТРАНе. Мощным средством расширения языка и построения проблемно-ориентированных пакетов программ является реализованный в НЕДИС аппарат библиотечных окружений. Все данные библиотечного окружения доступны программе пользователя, ссылающейся на это окружение. Каких-либо специальных описаний при этом не требуется. Каждое библиотечное окружение может ссылаться на другое библиотечное окружение. На этой базе могут создаваться пакеты программ, использующие библиотечные окружения иерархического типа. Операторы ввода-вывода в НЕДИС обеспечивают возможность форматного и бесформатного обмена с вычислительным устройством, причем значения форматов могут изменяться и даже определяться вводом. Для отладки программ в НЕДИС используются стандартные процедуры трассировки и средства выдачи информации о предшествующих событиях при любой фатальной ошибке. В состав библиотечного окружения НЕДИС входят процедуры, реализующие стандартные математические функции (вычисления значений элементарных функций и др.), датчики случайных чисел (равномерный, экспоненциальный, эрланговский, пуассоновский законы распределения и др.), а также процедуры: обработки списков, взаимодействия со специальными величинами, обработки текстовой информации, управления процессом моделирования, интегрирования дифференциальных уравнений. К достоинствам реализации системы НЕДИС на ЭВМ БЭСМ-6 следует отнести: возможность использования русских и английских эквивалентов операторов языка и стандартных процедур; допустимость поочередной имитации нескольких вариантов моделируемой системы, что позволяет применять схемы оптимизации; свободу выбора шага и метода интегрирования, назначения допустимой погрешности моделирования; наличие различных режимов трассировки. 10.3.6. Язык моделирования ГАСП-IV ГАСП-IV относится к классу систем комбинированного моделирования [1, 6, 13, 16, 22]. В ней получили дальнейшее развитие идеи, заложенные в более ранних системах дискретного моделирования ГАСП и ГАСП-П [14], и реализована комбинация механизмов дискретного и непрерывного моделирования. Механизм комбинированного моделирования в ГАСП-IV действует следующим образом. Состояния моделируемой системы представляются множествами компонент и совокупностями переменных состояния. Множество компонент разделяется на типы (файлы) компонент. Каждая компонента может иметь до 25 ат- 347
рибутов. Компоненты динамически создаются и уничтожаются. Атрибуты компонент изменяют свои значения в результате событий, происходящих в моделируемой системе. Значения переменных состояния изменяются непрерывно или дискретно. Дискретные изменения состояния описываются на языке событий, а непрерывные — обыкновенными дифференциальными уравнениями в нормальной форме или же конечно-разностными уравнениями. Различают два типа событий: временные события и события- состояния. Пользователь может определить несколько классов событий каждого типа. Планирование временных событий осуществляется с помощью календаря событий. Пользователь помещает в календарь отметки о текущих и будущих временных событиях с указанием класса назначенного события и других необязательных характеристик. Отметки о временных событиях выбираются управляющей программой ГАСП-IV по мере продвижения модельного времени. В соответствии с классом события вызывается нужная программа-событие, которая может назначить новые события, изменить состояние моделируемой системы (состав компонент, их атрибуты, число и значения переменных состояния), состав интегрируемых уравнений и т. д. Планирование событий-состояний связано с непрерывными изменениями в системе. События-состояния происходят, когда значение переменной состояния попадает в заданную пользователем область, после чего вызывается соответствующая программа-событие. На основе ГАСП-IV могут быть реализованы различные схемы формализации и алгоритмизации дискретных, непрерывных и дискретно-непрерывных систем: автоматные и сетевые модели, системы обыкновенных дифференциальных и конечно-разностных уравнений, модели системной динамики и др. Язык моделирования ГАСП-IV полностью вложен в универсальный язык программирования ФОРТРАН-IV, а система моделирования реализована как пакет (библиотека) программ, обеспечивающих все необходимые функции системы моделирования. Программа-имитатор на ГАСП-IV — это фактически программа на ФОРТРАНе, которая имеет определенную структуру. Часть подпрограмм в этой структуре — стандартные программы ГАСП-IV, другая часть (программы-события; программа, описывающая систему уравнений для переменных состояния; программа, определяющая условия появления событий-состояний, и др.) должна быть закодирована пользователем на ФОРТРАНе с соблюдением определенных стандартов ГАСП-IV. Такой способ реализации обеспечил высокую мобильность системы моделирования ГАСП-IV. Эта система может быть использована во всех операционных системах, имеющих транслятор с языка ФОРТРАН-IV. 348
Средства проблемной ориентации ГАСП-IV ограничены возможностями языка ФОРТРАН-IV, т. е. представлены аппаратом подпрограмм и подпрограмм-функций. Использование файлов компонент в какой-то мере обеспечивает типизацию структурированных данных. ГАСП-IV наследует все возможности раздельной компиляции языка ФОРТРАН-IV. Можно независимо транслировать любые подпрограммы, входящие в состав имитационной модели. ГАСП-IV обладает всеми алгоритмическими возможностями языка ФОРТРАН-IV. Пользователь может легко подключать к системе моделирования свои средства, обеспечивающие выполнение нестандартных функций управления имитационным экспериментом, обработки, вывода и сохранения результатов моделирования. В ГАСП-IV удачно организованы стандартные средства сбора, обработки и печати результатов моделирования. Пользователь может гибко управлять сбором и выводом стандартных результатов (статистических характеристик наблюдаемых переменных, гистограмм, таблиц и графиков). ГАСП-IV имеет собственные средства диагностирования, относящиеся к этапу выполнения модели. Пользователь может получить сообщения о некоторых ошибках, возникающих при имитации и обусловленных неправильным программированием логики функционирования имитатора. Управление имитационными экспериментами в системе ГАСП-IV осуществляется с помощью управляющих перфокарт, которые имеют стандартный формат и считываются специальной программой как входные данные. В соответствии с управляющими картами выполняется идентификация имитационного эксперимента, инициализируется начальное состояние модели, определяется состав выводимых результатов, задается время окончания моделирования, указываются параметры интегрирования непрерывной части и т. д. Генераторы случайных величин в ГАСП-IV позволяют использовать несколько потоков случайных чисел с различными законами распределения (равномерным, нормальным, логнор- мальньгм, Эрланга, Пуассона, треугольным, гамма- и бета-распределениями). Генераторы типовых воздействий для непрерывной части отсутствуют. Наиболее существенным недостатком ГАСП-IV является довольно низкий концептуальный уровень языка, на котором программируется имитатор. То, что в языке моделирования с собственным синтаксисом и семантикой может быть описано одним оператором, в ГАСП-IV может потребовать нескольких операторов ФОРТРАН-IV. Отсутствует специальное диагностирование на этапе трансляции. При написании системы дифференциальных или конечно-разностных уравнений пользователь вручную должен выполнить сортировку уравнений. 349
Подход, реализованный в ГАСП-IV, можно с успехом применять при построении систем моделирования на базе других универсальных языков программирования (например, существует реализация ГАСП—ПЛ/1 [23]). 10.3.7. Язык моделирования ПМНП В каталоге программных средств [7] ПМНП указан под названием «Пакет прикладных программ для моделирования на ЭВМ аналоговых систем и непрерывных процессов». ПМНП предназначен для цифрового моделирования динамических систем, описываемых структурными схемами, обыкновенными дифференциальными или конечно-разностными уравнениями [18, 19]. Прототипом ПМНП является CSMP/360 [20, 21, 25]. Как пакет численного моделирования ПМНП позволяет решать задачи Коши, краевые задачи, задачи параметрической оптимизации и т. п. Концептуальная основа языка ПМНП — структурные схемы, составленные из интеграторов и функциональных блоков. Для представления элементов структурной схемы используются операторы структуры, имеющие однотипный формат. Операторами структуры могут быть: макровызов, обращение к ФОРТРАН- программе; оператор присваивания. ПМНП предоставляет стандартные функции и макросы для записи операторов структуры. К ним относятся: типовые динамические звенья, интерполяторы, переключатели, генераторы типовых воздействий, логические блоки, стандартные функции ФОРТРАНа. Пользователь может определить собственные функции, макросы, процедуры и программы на ФОРТРАНе для записи операторов структуры. Кроме структурных схем ПМНП позволяет просто описывать системы обыкновенных дифференциальных уравнений в нормальной форме. Пакет удобен и для моделирования конечно-разностных уравнений, например моделей системной динамики или моделей графов связей. Программа на языке ПМНП включает следующие основные части: определения объектов пользователя, к которым относятся массивы, памяти, макросы, процедуры и т. п.; сегмент инициализации, в котором могут быть записаны операторы для ввода и расчета начальных условий и параметров моделируемой системы, а также операторы, обеспечивающие подготовку очередного прогона модели; сегмент динамики, содержащий операторы структуры. Операторы структуры могут быть записаны в произвольном порядке. ПМНП выполняет автоматическую сортировку структуры, чтобы обеспечить правильную последовательность вычислений; сегмент терминации, предназначенный для выполнения расчетов, связанных с завершением очередного прогона модели. Этот сегмент используется, например, для управления серией 350
экспериментов при решении задач параметрической оптимизации; операторы управления прогонами позволяют для каждого прогона модели задавать значения параметров и начальных условий, выбирать метод интегрирования, шаг интегрирования, конечное значение независимой переменной (начальное значение принимается равным нулю), определять состав выводимых в конце прогона таблиц и графиков; подпрограммы пользователя на ФОРТРАНе. Язык ПМНП является расширением ФОРТРАНа, а сам пакет реализован на базе системы программирования ФОРТРАН-IV ОС ЕС ЭВМ как система моделирования с препроцессором. Обработка модели включает четыре фазы: 1 — препроцессор транслирует программу на языке ПМНП в подпрограмму на ФОРТРАНЕ; 2 — компилятор ФОРТРАНа преобразует подпрограмму в объектный модуль; 3 — редактор связей присоединяет к объектному модулю все необходимые подпрограммы и формирует загрузочный модуль; 4 — загрузочный модуль запускается для выполнения расчетов. При редактировании связей используются стандартные библиотеки ПМНП и системы программирования ФОРТРАН-IV, а также библиотеки пользователей. Библиотека ПМНП включает программы интегрирования (пять методов интегрирования с фиксированным шагом и два метода с переменным шагом), программы стандартного вывода-ввода, стандартные функции ПМНП и другие подпрограммы пакета. Библиотеки пользователя могут содержать аналогичные программы, написанные пользователем. Средства проблемной ориентации языка ПМНП основаны на применении процедурных и непроцедурных макросов и подпрограмм на ФОРТРАНе. Макросы могут быть вложенными, содержать автоматически генерируемые локальные имена переменных. Средства условной макрогенерации отсутствуют. Средства проблемной ориентации ПМНП предназначены только для определения новых типов операторов структуры. ПМНП допускает раздельную трансляцию некоторых из описанных выше частей программы. Отдельно могут транслироваться подпрограммы на ФОРТРАНе, операторы управления прогонами. Описания объектов пользователя, сегменты инициализации, динамики и терминации транслируются всегда совместно. Язык ПМНП позволяет включать алгоритмические фрагменты на ФОРТРАНе в любой сегмент модели. Этим обеспечивается возможность программирования сложной логики, реализация нестандартного ввода-вывода, сбор статистики и др. Средства стандартного вывода ПМНП обеспечивают вывод таблиц и графиков, минимальных и максимальных значений переменных. Результаты моделирования можно сохранить в отдельном файле, имеющем стандартную структуру. Пользователю предоставляются широкие возможности для программирования нестандартного ввода-вывода. 351
ПМНП содержит большой выбор генераторов типовых воздействий: датчики равномерно и нормально распределенных случайных величин, генераторы стандартных динамических воздействий. К недостаткам ПМНП следует отнести: наличие нескольких уровней диагностики, не адекватных уровню входного языка (общий недостаток препроцессорных систем моделирования); большое время, затрачиваемое на трансляцию и загрузку модели; недостаточно гибкий стандартный вывод результатов; сложность изменения ряда системных ограничений пакета. В заключение необходимо отметить, что существуют иные реализации систем моделирования с аналогичным входным языком [12]. 10.3.8. Язык моделирования ДИНАМО ДИНАМО — один из наиболее распространенных языков, предназначенных для моделирования систем непрерывного типа. Он был разработан в Массачусетском технологическом институте (США). Потребности эксплуатации и развитие вычислительной техники вызвали неоднократные модификации языка ДИНАМО. В настоящее время существуют разнообразные версии и реализации систем моделирования, обеспечивающие использование языка ДИНАМО на ЭВМ различного типа, которые в значительной степени различаются по принципам реализации и предоставляемым пользователю возможностям. Язык ДИНАМО не входит в стандартное математическое обеспечение ЭВМ, которые производятся в СССР. Далее рассматривается система моделирования ДИНАМО, реализованная на ЭВМ PDP 11/70 [5, 24]. Язык ДИНАМО непосредственно предназначен для реализации имитационных моделей, алгоритмизованных по методу системной динамики. Он имеет ярко выраженную концептуальную направленность, и его нельзя применять для программирования моделей, построенных без соблюдения принципов системной динамики. В рассматриваемой системе моделирования язык ДИНАМО обеспечен транслятором компилирующего типа, синтаксис входного языка которого отвечает понятиям системной динамики. Таким образом, данная система является системой моделирования с собственным языком. Программа на языке ДИНАМО включает уравнения модели, управляющие директивы и операторы. Каждое уравнение модели определяет функциональная зависимость между переменной модели, стоящей в левой части уравнения, и переменными, заданными в его правой части. В зависимости от ограничений, накладываемых на вид функциональной связи, различают семь видов уравнений: уравнения уровня, темпа, вспомогательной переменной, дополнительной (выходной) переменной, начального значения, константы, табличного значения. 352
Компилятор с языка ДИНАМО строит программу вычисления значений переменных модели на интервале моделирования с указанным пользователем временным шагом. В соответствии с методом системной динамики значения переменных модели в каждый момент времени могут быть вычислены только в определенном порядке: сначала определяются значения уровней, затем — вспомогательных переменных, после этого — темпов и, наконец, дополнительных переменных, если предусмотрен их вывод на данный момент времени. Для обеспечения такого порядка вычислений компилятор языка ДИНАМО автоматически сортирует уравнения модели. В языке ДИНАМО необходимо указывать вид каждого уравнения модели, что облегчает их синтаксический анализ и нужным образом организует работу аппарата автоматической сортировки. Уровни модели задаются интегральными уравнениями, для решения которых компилятор по выбору пользователя применяет один из трех возможных в системе моделирования методов численного интегрирования (Эйлера, Рунге—Кутта, Адамса). Для записи уравнений темпов, уровней, вспомогательных переменных и дополнительных переменных язык ДИНАМО предоставляет арифметические операции и специальные встроенные функции. Рассматриваемая версия системы моделирования включает более 20 специальных функций, которые обеспечивают моделирование запаздываний в материальных и информационных потоках, обработку табличных значений, вычислений значений математических функций, генерацию равномерно и нормально распределенных псевдослучайных чисел, формирование ступенчатых и импульсных воздействий, присвоение переменным модели значений в зависимости от истинности логических выражений и др. Несмотря на то, что аппарат специальных функций в ДИНАМО достаточно развит, нет оснований говорить о наличии в ДИНАМО алгоритмических возможностей. В языке отсутствуют средства для организации циклов, условных и безусловных переходов. Наличие этих средств противоречило бы принципам системной динамики, предусматривающим жесткий порядок вычислений значений переменных модели. Кроме перечисленных возможностей в языке ДИНАМО предусмотрен аппарат макропроцедур. Тело макропроцедуры состоит только из описанных выше уравнений. При макровызове происходит простая подстановка фактических параметров на место формальных. В качестве формальных параметров макропроцедуры выступают переменные уравнений модели. Таким образом, макропроцедуры языка ДИНАМО не являются средством агрегации на уровне понятий предметной области моделирования. Они предназначены для компактного кодирования часто повторяющихся последовательностей уравнений модели. Неотъемлемой частью программы на языке ДИНАМО являются управляющие директивы и операторы. Управляющие директивы 12 п/р С. В. Емельянова 353
предназначены для задания заголовка программы, метода интегрирования, режима работы компилятора (обеспечить-отменить распечатку текста программы, диагностических предупреждений, таблицы перекрестных ссылок идентификаторов программы и других сведений). Для каждого параметра управляющих директив имеется значение по умолчанию. В операторах языка ДИНАМО указывается информация, необходимая для организации выполнения программы, повторного счета по программе, вывода результатов моделирования. Вывод результатов производится в табличной или графической формах с временным шагом, кратным шагу моделирования. Для организации вывода пользователь указывает, изменение каких переменных модели во времени надо представлять в табличной, а каких — в графической формах. Представление результатов моделирования имеет стандартный для языка ДИНАМО вид. При подготовке выполнения программы указываются численные значения шага моделирования, левая и правая границы интервала моделирования, шаги графического и табличного выводов. В языке ДИНАМО предусмотрена возможность неоднократного выполнения экспериментов с моделью без повторного обращения к компилятору программы. Такой режим носит название режима повторного счета. При повторном счете допускается изменение значений констант, табличных величин и шага моделирования. Новые значения перечисленных величин задаются в операторе повторного счета. Необходимо особо отметить, что вся информация, задаваемая операторами языка ДИНАМО, записывается непосредственно в теле программы. Программа содержит информацию как о модели, так и о конкретном режиме (режимах) функционирования этой модели. В языке не предусмотрена возможность ввода исходных данных в откомпилированную программу с внешних носителей, что является существенным недостатком языка. К недостаткам рассматриваемой нами версии системы моделирования ДИНАМО следует отнести также отсутствие следующих средств: накопления, сохранения и возвращения данных в ходе экспериментов; раздельной компиляции компонент сложной модели; организации нестандартного вывода результатов; автоматизации процессов модификации структуры ДИНАМО-моделей. 10.4. УНИВЕРСАЛЬНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Можно указать следующие основные варианты применения универсальных языков программирования ФОРТРАН, ПЛ/1, ПАСКАЛЬ и др. в имитационном моделировании: разработка программ-имитаторов либо их отдельных фрагментов; разработка пакетов моделирования (по типу ГАСП-IV); реализация препро- 354
цессорных систем моделирования с языком, расширяющим базовый язык (по типу ПМНП или СИМПЛ/1); реализация языков моделирования с собственным синтаксисом и семантикой. Не рассматривая в деталях каждый из перечисленных вариантов, укажем свойства и характеристики универсальных языков программирования, которые, на наш взгляд, могут быть использованы при том или ином варианте их применения: общие области памяти, обеспечивающие передачу данных между модулями без дополнительных затрат времени на формирование и обработку списков параметров; структурированные типы данных, включающие в общем случае элементы разных типов; динамически управляемая память и средства работы с указателями (адресами) программных объектов; возможность раздельной трансляции модулей программ; наличие макросредств или иных средств проблемной ориентации, позволяющих определять новые типы программных объектов и операции над ними; средства обработки текстовой информации, которые необходимы для программирования препроцессоров или трансляторов; гибкий ввод-вывод текстовой информации в любом необходимом формате; программные средства обработки исключительных ситуаций, упрощающие построение блоков диагностики; развитые средства ввода-вывода, связь с системами управления базами данных; распространенность языка программирования в разных операционных системах. Читатель может заметить, что указанные свойства характеризуют вообще хороший язык программирования. По-видимому, это так и есть: известно, что, например, выявление необходимой алгоритмической базы языков моделирования привело к появлению такого развитого универсального я^ыка программирования, как СИМУЛА-67. 12*
ГЛАВА 11 АГРЕГАТИВНАЯ ИМИТАЦИОННАЯ СИСТЕМА ПЛ. ОБЩИЕ СВЕДЕНИЯ ОБ АГРЕГАТИВНОЙ ИМИТАЦИОННОЙ СИСТЕМЕ Агрегативная имитационная система (АИС) представляет собой комплекс программных средств, обеспечивающих исследование агрегативных моделей с учетом требований схемы моделирования, предложенной во введении. Для пользователей АИС создание конкретных моделей и постановка конкретных экспериментов состоят в формировании заказов — структурированных наборов данных о моделях и методах исследования. Заказы на модель и исследование оформляются отдельно и составляются в расчете на существующие и пополняемые библиотеки моделей и методов. Эксперимент понимается как процесс решения задач исследования на базе имитации модели с применением математических методов. Программные единицы АИС, за которыми закреплены функции управления имитацией и исследования, реализованы стандартными программными модулями, хранящимися также в библиотеках АИС. Разделение функций собственно имитации и проведения эксперимента диктуется тем, что процесс имитации более консервативен, чем процесс исследования — с одной и той же моделью, как правило, проводятся различные эксперименты. Поскольку созданная пользователем модель может содержать состояния и связи, «лишние» с точки зрения программной реализации, то необходимы средства преобразования моделей для исключения неинформативных в рамках конкретного эксперимента фрагментов модели. Перечислим основные компоненты АИС, служащие для поддержки различных режимов и этапов ее работы. Диалоговая система поддерживает процесс формирования пользователем заказов на моделирование. Внутреннее программное обеспечение реализует процесс имитации по принципу планирования событий, происходящих в элементах модели (агрегатах), а также обеспечивает выполнение стандартных функций, связанных с этим процессом имитации. На его базе реализуется также проведение эксперимента. Внешнее программное обеспечение осуществляет контроль и управление проведением эксперимента. 356
Библиотека АИС содержит стандартные модули, из которых компонуются модели и программно-реализованные методы решения задач исследования. Язык программирования высокого уровня КОМПАС, используемый для программирования алгоритмов реакции агрегатов на внутренние и внешние события, служит программной основой для структурных преобразований агрегативных моделей. В число вспомогательных средств входят программы накопления и выдачи результатов эксперимента, средства отладки моделей и методов, преобразования заказов к виду, удобному при построении моделирующих алгоритмов, и др. 11.2. ДИАЛОГОВАЯ СИСТЕМА АЛИСА В описываемом варианте АИС диалоговая система АЛИСА [1,8] контролирует вводимую информацию, которая используется для последующего автоматического построения машинной модели другими подсистемами АИС. Обеспечивается выполнение следующих функций: ввод информации, необходимый для имитации и (или) исследования моделируемой системы в режиме «вопрос системы — ответ пользователя»; лексический и синтаксический контроль всей вводимой информации в процессе диалога; контролируемое редактирование ранее введенных данных в режиме «команда пользователя — реакция системы»; хранение информации, введенной пользователем; помощь пользователю в виде диагностики ошибок и правил работы в системе АЛИСА; анализ полноты и непротиворечивости информации для моделирования и исследования системы с выдачей подтверждающих сообщений. Входом для системы АЛИСА является информация о составе и структуре модели, ее начальных данных и результатах эксперимента. Выходом системы является задание на моделирование, подготовленное для обработки подсистемами АИС. Данное задание состоит из двух составляющих: заказ на модель и заказ на эксперимент. Заказ на модель формируется в виде, пригодном для работы внутреннего программного обеспечения, и содержит информацию о модулях-агрегатах, из которых построена модель, и схеме их сопряжения. Заказ на эксперимент включает информацию об используемых математических методах, их взаимосвязи и перечне данных, необходимых для их работы. Этот заказ поступает во внешнее программное обеспечение. Для формирования моделей используются библиотеки, содержащие элементы-агрегаты и процедуры, реализующие различные методы проведения имитационного эксперимента. 357
« ЗАДАНИЕ ПАРАМЕТРОВ « «ДЛИНА:? ПОДСКАЗКА х ЗАКАЗ ВК РАЗДЕЛ СИСТ АГРЕГАТ ЭВМ * НАДО НАБИРАТЬ ЦЕЛОЕ ЧИСЛО. ДЛЯ ПЕРЕХОДА В КОМАНДНЫЙ РЕЖИМ НАБЕРИТЕ ! ПРИ ОТКАЗЕ ОТ ОТВЕТА - ИНФОРМАЦИЯ НЕ СФОРМИРОВАНА «ДЛИНА:5.2 3 { ОШИБ:НАДО НАБИРАТЬ ЦЕЛОЕ ЧИСЛО «ДЛИНА:5 * ДИАГНОСТИКА ПО АГРЕГАТУ ЭВМ * АГРЕГАТ СФОРМИРОВАН ПОЛНОСТЬЮ ЗАДАНА НЕ ВСЯ ВОЗМОЖНАЯ ИНФОРМАЦИЯ В АТРИБУТАХ: ПРЕРЫВ ВХОД 5< » ДИАГНОСТИКА ПО ЗАКАЗУ ВК * ЗАКАЗ ВК СФОРМИРОВАН ПОЛНОСТЬЮ, НЕ ИМЕЕТ ОШИБОК, НЕПРОТИВОРЕЧИВ. ЗАДАНА НЕ ВСЯ ВОЗМОЖНАЯ ИНФОРМАЦИЯ В . РАЗДЕЛЕ СИСТ 7 { «ЗАПУСТИТЬ ЗАКАЗ НА СЧЕТ(ДА,НЕТ):ДА «БУДЕТЕ ЕЩЕ РАБОТАТЬ С ПАКЕТОМ(ДА.НЕТ): НЕТ «СИСТЕМА АЛИСА ЗАКОНЧИЛА РАБОТУ* Рис. 11.1. Функции диалоговой системы АЛИСА: / — управление порядком ппода: 2 — подсказка отпета: 3 — контроль отпета; 4 — редактирование хранимой информации; 5 — информационное обслуживание: 6 — контроль готовности; 7 — запуск на счет Модули-агрегаты, хранящиеся в библиотеке, снабжены паспортами с именами агрегатов, типов настраиваемых параметров, координат состояний, входных и выходных клемм и типов соответствующих им сигналов, а методы исследования моделей — паспортами с именами методов и типов настраиваемых параметров. 358
Диалог представляет собой процесс построчного обмена информацией между человеком и ЭВМ на русском языке. Пользователь имеет в своем распоряжении набор команд и может при желании перейти на командный режим, который необходим для редактирования ранее введенной информации и выдачи сообщений о правилах работы в системе. Заказ пользователя состоит из разделов, содержащих информацию о составе и структуре модели, эксперименте, а также для защиты заказа от несанкционированного доступа. Фрагмент диалога, на котором отмечены выполняемые системой функции, приведен на рис. 11.1. 11.3. БИБЛИОТЕКА АГРЕГАТОВ При разработке программного обеспечения, в том числе и обеспечивающего процесс моделирования, приходится решать вопросы, связанные с организацией хранения и обслуживания информации, которую можно условно разделить на оперативную и справочную. Справочная информация более «статична», она мало меняется в процессе моделирования, в то время как оперативная информация обновляется почти полностью. В результате требования, предъявляемые к организации обработки оперативных и справочных данных, различны. В АИС в качестве справочной информации выступает описание модулей, оформленных как агрегаты (включая методы и элементы внешнего программного обеспечения). Из этих модулей на основании оперативной информации (заказ на моделирование), полученной в диалоге, строится моделирующая программа. Настройка системы проводится на подготовительном этапе, который не входит в основной цикл моделирования Основными требованиями, предъявляемыми к справочной системе АИС, являются мобильность и удобства пользователя в процессе ее эксплуатации. Мобильность программного обеспечения АИС достигается разработкой всех основных компонент системы на стандартном ПАСКАЛе, предусмотренном в настоящее время практически на всех машинах. Требование удобства весьма существенно, так как справочная информация может содержать большое количество элементов, в которые, естественно, могут вноситься изменения. Поэтому справочная система, как минимум, должна позволять вносить новые элементы, удалять ненужные, допускать коррекцию любого элемента. Для удовлетворения этих требований в АИС были приняты следующие решения [9]. Вся справочная информация системы хранится в символьном виде в файлах аналогичных тем, которые используются для хранения исходных текстов программ и макроопределений. Это позволяет для обслуживания файлов справочной информации ис- 359
пользовать стандартные средства, имеющиеся в распоряжение конкретной операционной системы, например редактора текстов. Файл, содержащий справочную информацию, будем называть библиотекой агрегатов (БА). Б А может содержать один или несколько элементов. Под элементом понимается описание агрегата, метода или любая другая компонента справочной информации. Справочная система может содержать не одну, а несколько БА. Связь основного программного обеспечения с БА осуществляется не «напрямую», а через подпрограммы обмена. Это позволяет оградить основное программное обеспечение от возможных изменений в физической организации БА (такие изменения повлекут лишь переделки в подпрограммах обмена), а также избавиться от дублирования в разработке подпрограмм обмена, так как одни и те же подпрограммы могут быть использованы различными модулями основного программного определения. Вследствие того, что в разных операционных системах для хранения исходных текстов программ используются файлы разной структуры, подпрограммы обмена приводят вводимую информацию к единому виду. БА представляет собой последовательный текстовый файл, который содержит описание одного или нескольких элементов. Каждый элемент состоит из двух частей: заголовка и тела. Заголовок содержит имя элемента и, если необходимо, комментарий. Тело элемента располагается после заголовка и также может содержать комментарии. Опишем кратко взаимодействие основного программного обеспечения с БА. Имеются два режима работы: чтения и записи. В режиме чтения взаимодействие основного программного обеспечения с БА аналогично взаимодействию макрогенератора с библиотекой макроопределений (макросов): в процессе работы основного программного обеспечения формируется запрос, на основании которого подпрограммы обмена выполняют поиск и считывание отдельных элементов из входной БА в память. В режиме записи осуществляется программное формирование выходной БА, которая на следующем шаге обработки может быть использована в режиме чтения, т. е. стать входной. Вносить изменения в БА можно также с помощью текстового редактора. Подпрограммы обмена позволяют прочитать любой элемент БА, сформирорать новую БА и записать в нее один или несколько элементов. Эти подпрограммы написаны на стандартном ПАСКАЛе в виде процедур и функций. Основным достоинством описанной справочной системы является то, что при высокой мобильности и небольших затратах па ее разработку система предоставляет пользователю удобные средства обслуживания. С одной стороны, коррекцию элементов БА можно осуществлять с помощью основного программного обеспечения, с другой, — мощными стандартными средствами конкретной операционной системы. 360
Функции системы значительно расширяются путем добавления в БА оператора включения, с помощью которого можно сократить размер библиотеки за счет однократного описания общих частей, а также контекстных замен в процессе считывания информации из БА. 11.4. ВНУТРЕННЕЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Задачей внутреннего программного обеспечения являются сборка моделирующей программы (включая процедуры проведения эксперимента), имитация агрегативной системы и ведение календаря системных событий. Чтобы конкретизировать данное предложение, перечислим особенности, которые были учтены при создании АИС и которые являются, по сути, преломлением общих требований к программной поддержке процесса моделирования: в процессе построения модели и формирования эксперимента в распоряжении пользователя находятся готовые библиотечные модули, описывающие типовые элементы, из которых собирается модель, и математические методы ее анализа. Таким образом, необходимость программирования для пользователя исключается; мобильность АИС, предопределяющая наличие базового языка программирования, в качестве которого был выбран стандартный ПАСКАЛЬ; наличие средств структурных преобразований моделирующих алгоритмов, удобство описания системы, возможность настройки АИС на проблемные области — эти требования обусловили разработку специального языка КОМПАС (см. п. 11.7), предназначенного для описания модулей, указанных выше. Таким образом, модули-агрегаты и модули-методы могут быть представлены на языках КОМПАС, ПАСКАЛЬ, а также в объектном коде. Модули, записанные на КОМПАСе, обязательно переводятся в модули на ПАСКАЛе, а затем и в объектные; моделирующая программа формируется па основе заказа, получаемого с помощью диалоговой системы; проблемная ориентация АИС обеспечивается введением специальных операций, характерных для проблемной области (например, операции присоединения и ухода из очереди для моделей массового обслуживания), а также внесением определенных изменений и упрощений в моделирующую программу; необходимость проведения достаточно сложных имитационных экспериментов поддерживается возможностями остановки и запуска моделей, изменением их структуры и параметров, обмена данными между моделью и математическими методами; возможность пополнения и модификации библиотечных модулей обеспечивается открытым характером АИС. 361
В результате при создании АИС были приняты следующие решения, которые определили структуру внутреннего программного обеспечения: 1. Как элементы, из которых компонуется модель, так и модули внешнего программного обеспечения представлены в виде агрегатов, что, в частности, ликвидирует проблемы, связанные с пополнением и модификацией библиотеки методов [4]. Кроме того, это дает возможность внутри АИС объединить два заказа на модель и эксперимент. Отметим, что для пользователя два упомянутых заказа существенно различны и по форме, и по смыслу. Программы, поддерживающие процесс имитации, также частично построены по агрегативному принципу. Такое представление унифицирует совместную работу отдельных программ, что облегчает их отладку и дает возможность сравнительно просто вносить необходимые изменения. 2. Элементы модели и внешнего программного обеспечения, необходимые для проведения эксперимента, на основе объединенного заказа собираются в единую систему (метасистему), которая функционирует по законам агрегативных моделей. 3. Введено понятие схемы эквивалентности (аналог COMMON блока в ФОРТРАНе), дающей возможность объявлять тождественными некоторые переменные в метасистеме, т. е. переменные собственно модели и используемых методов. Это решение позволяет простыми средствами осуществлять съем данных с модели для их обработки. 4. В процессе моделирования поочередно запускается исследуемая модель и внешнее программное обеспечение. В терминах метасистемы это означает возможность (и необходимость) остановки «системных часов» для одной ее подсистемы и запуска их для другой подсистемы. Поэтому внутреннее программное обеспечение предусматривает наличие отдельных часов для различных подсистем агрегативной модели. 5. Введено понятие приоритета сигналов, циркулирующих в метасистеме. Это дает возможность организовать совместную работу внешнего программного обеспечения с моделью и необходимый порядок обработки сигналов внутри модели. 6. Предусмотрен также ряд технических решений, например индексирование клемм агрегатов для удобной адресации сигналов. Основой внутреннего программного обеспечения являются две программы: компоновщик и имитатор. Последняя из указанных программ представляет собой «заготовку», которая пополняется служебными процедурами и процедурами агрегатов, входящих в метасистему. Такое пополнение осуществляется компоновщиком на уровне исходных текстов программ, записанных в библиотеках (см. п. 11.3) служебных процедур, стандартных агрегатов (программно реализованных в виде процедур, описывающих функции переходов агрегатов) и элементов внешнего про- 362
граммного обеспечения. В результате получается моделирующая программа на ПАСКАЛе, пригодная (после ее трансляции и обработки редактором связей) для запуска на ЭВМ, Еще одной функцией компоновщика является формирование заказа на выполнение, который вводится моделирующей программой в начале ее работы. Работа компоновщика регламентируется заказом на компоновку, в котором отражена структура и состав метасистемы и даны указания об используемых в эксперименте модулях, схеме сопряжения, схеме эквивалентности, начальных значениях координат агрегатов, входящих в метасистему. Заказ на компоновку содержит следующие разделы: имена функций и процедур, которые используются модулями метасистемы; описание структуры, состава и начальных состояний модулей метасистемы; схемы сопряжения и эквивалентности; сигналы, существующие на момент начала моделирования. Процесс компоновки состоит из двух этапов. На первом этапе заказ на компоновку преобразуется в заказ на выполнение, который компоновщик переписывает в отдельный файл с помощью следующих операций: запоминаются имена функций и процедур, используемых агрегатами; запоминаются все имена агрегатов и их типы; все отличные друг от друга типы агрегатов перенумеровываются; имена процедур агрегатов заменяются их номерами. Таким образом, заказ на выполнение повторяет заказ на компоновку, за исключением того, что в заказе на выполнение отсутствуют указания на имена процедур и функций, которые нужны только при генерации моделирующей программы, а имена типов агрегатов заменены на номера, полученные при перенумерации типов агрегатов. На втором этапе выполняется компоновка моделирующей программы: формируется заголовок моделирующей программы; из библиотек переписываются необходимые служебные процедуры, процедуры агрегатов, а также функции и процедуры, на которые имеются ссылки в текстах процедур агрегатов; формируется головная часть моделирующей программы. Рассмотрим разделы моделирующей программы. Раздел описания данных состоит из трех составляющих. В первой составляющей, которую будем называть деревом метасистемы и которая программно организована как двоичное дерево, фиксируется информация о текущем состоянии метасистемы в целом —¦ о ее структуре, составе, текущих значениях координат агрегатов, схеме сопряжения и т. п. Вторая составляющая раздела содержит данные планировщика событий и состоит из списка записей, включающих сведения о соответствующих событиях метасистемы. Этот список упорядочен по двум ключам: модельному времени и приоритету. 363
Записи представляют собой ссылки на процедуры, которые необходимо выполнить над деревом метасистемы, а их расположение в списке событий задает очередность работ, какой она представляется на данный момент модельного времени. Третья составляющая раздела описания данных содержит служебные переменные и структуры. Дерево метасистемы и список событий выполнены на основе единого конструкторского элемента — узла двоичного дерева, имеющего три указателя «вверх», «вниз» и «вправо», которые показывают, как узел связан с другими узлами, т. е. место его расположения в дереве. Узел содержит также атрибуты, несущие информационную нагрузку: имя узла, тип узла, указатель на информационном поле (описание состояния или описание сигнала), номер процедуры, номер блока, приоритет. В случае отсутствия конкретного значения атрибута ему присваивается некоторое значение по умолчанию. Переменная размерность исследуемой системы, изменение ее структуры в процессе имитации приводят к необходимости использования динамических структур памяти. Вторым разделом моделирующей программы является раздел процедур, используемых для выполнения необходимых при имитации действий над деревом метасистемы. Вся совокупность процедур моделирующей программы делится на четыре класса. В первый класс входят процедуры, осуществляющие передачу сигналов от одного агрегата к другому по схеме сопряжения, а также реализующие планирование событий. В соответствии с общей идеей «пополняемости» свойств и возможностей АИС, которая поддерживалась на протяжении всего процесса разработки данной версии, этот набор процедур может быть расширен по ходу развития АИС, например, при ее проблемной ориентации. Второй класс включает процедуры, осуществляющие ввод заказа на выполнение, построение дерева метасистемы и организацию начального списка событий планировщика. Этот класс также может быть пополнен, например, процедурами контроля заказа на выполнение. Третий класс состоит из процедур агрегатов, входящих в метасистему. Процедуры данного класса в свою очередь подразделяются на блоки, каждый из которых оформлен в виде отдельной процедуры, представляющей собой реакцию агрегата на некоторое событие. И, наконец, в последний, четвертый класс попадают процедуры, ответственные за организацию управления экспериментом в процессе имитации и осуществляющие остановку и запуск отдельных подсистем, изменение структуры метасистемы, присваивание новых значений координатам агрегатов и т. п. Третьим разделом моделирующей программы является ее головная часть, организующая процесс имитации. Моделирующая программа реализована на идеях событийного подхода в моделировании. Это означает, что упорядочение функционирования 364
процедур агрегатов метасистемы ведется с помощью планировщика событий. При разработке моделирующей программы было принято решение — работу всех остальных процедур также организовать через планировщик событий. Такое расширенное толкование функций планировщика потребовало, в частности, введения понятия приоритета события для упорядочения одновременных с точки зрения модельного времени событий. Работу моделирующей программы удобно представить в виде повторяющегося ряда шагов: 1) из упорядоченного по модельному времени и приоритету списка событий выбирается очередное событие; 2) модельному времени присваивается значение времени из информационного поля записи события; 3) определяется процедура, которую необходимо выполнить в данный момент модельного времени; 4) найденная в предыдущем пункте процедура «запускается» на выполнение. Результатом выполнения указанной процедуры является преобразование дерева метасистемы, а также некоторое количество выходных сигналов, которые заносятся в список событий. Далее шаги 1—4 повторяются снова. Работа моделирующей программы заканчивается либо после исчерпывания списка событий планировщика, либо по команде об окончании работы. В заключение данного параграфа сделаем два замечания. 1. В процессе разработки АИС в целях облегчения ее программной реализации были введены новые понятия: приоритеты событий, индексированные клеммы, схема эквивалентности, локальное время подсистем, которые использовались пока для внутренних нужд АИС как средства, недоступные для пользователя. Однако имеется принципиальная возможность предоставить эти средства пользователю в случае, если они окажутся удобными в его работе. 2. Способ реализации моделирующей программы, рассмотренный в этом параграфе (организация всей работы моделирующей программы через планировщика событий), позволил сделать ее легкой в отладке и удобной для модификации. Данный способ организации вычислительного процесса универсален. Подобным же образом можно организовать работы и других программ, например трансляторов, программ печати результатов моделирования, программ ввода, контроля и перекодировки входной информации и т. п. 11.5. ЭКСПЕРИМЕНТ В АИС Под экспериментом в АИС понимается совокупность задач анализа модели, логически объединенных в рамках заказа на исследование. Поясним это, определяя введенные понятия. Узловым понятием эксперимента является задача, представляющая собой программно реализованную процедуру преобразо- 365
вания некоторых входных данных X, снимаемых с моделей, в выходные данные Y> являющиеся результатом выполнения процедуры. Если, например4, рассмотреть задачи обычного статистического оценивания, то входными данными X является получаемая с модели выборка, или выборочная траектория, а выходными данными Y — оцениваемый показатель (среднее, дисперсия, гистограмма и т. п.). Проблем с передачей данных с модели для их обработки не возникает, если совокупность X совпадает с совокупностью траекторий Азкоторого набора координат (состояний) модели: в моменты наступления тех событий в агрегативной модели, когда меняются координаты из указанного набора, соответственно изменяются и данные X. В реализованном варианте АИС в качестве входных данных можно рассматривать последовательности и функции, определяемые с помощью следующих понятий и конструкций. Пусть 3j —¦ пространство состояний исследуемой агрегативной модели, z (t) — ее состояние в момент времени t. Пусть Е = — \et\i^\ — последовательности событий, происходящих в агрегативной системе и совпадающих с моментами Т — \tx> t2> ...\ скачкообразных изменений ее координат. В последовательности Е можно выделить непересекающиеся подпоследовательности E{i)> построенные по моментам Т{1) = (t[l\ t[l\ ...) скачкообразных изменений /-й координаты. Обозначим Т п'^Т х {}...[)*• Пусть В а ЗС — фиксированное подмножество пространства состояний. Введем следующие подпоследовательности особых моментов времени: 7В-Г Л {t:z(t)?B}; тщ = T(t) n Тв. т$ '») - rCi-••••'»> п тв, построенные по моментам пребывания траектории модели в подмножестве В. Зафиксируем набор (ily ..., in), множество В cz3Z и совокупность действительных функций / (г) = (/2 (г), ..., fm(z)) : :X^Rm. Входными данными X назовем последовательность вида {(f, f(z (/))), t^Ta1'"" }. В частности, если функция / тождественно постоянная, то эта последовательность, по сути, совпадает с последовательностью Тв1 . Таким образом, для того чтобы задать входные данные с помощью описанной конструкции, нужно задать набор (il9 ..., in)9 множество Вс^и набор действительных функций f (z). Алгоритм, реализующий ту или иную задачу анализа, преобразует данные X в выходные данные Y, в качестве которых в АИС приняты действительные числа или векторы. При этом сам алгоритм может характеризоваться еще набором действительных параметров Р. Например, при интервальной оценке средних пока- 366
Рис. 11.2. Представление эксперимента в АИС зателей параметром может служить доверительная вероятность и размер выборки, а выходными данными — границы оцениваемого интервала. Каждая задача снабжается признаком б ее окончания. В процессе имитационного эксперимента задача может завершиться результативно в том смысле, что выходные данные Y получены, или нерезультативно, когда выходные данные не получены. Последнее может произойти, например, если исследуемое событие не наступает или полученные выходные данные непредставительны. Будем считать, что указанный признак принимает значение б = 1 в момент завершения работы алгоритма, реализующего соответствующую задачу, а до этого момента он равен 0. Объединение задач в эксперимент осуществляется следующим образом. Пусть в процессе эксперимента необходимо решать задачи А1у Л2, ..., AN. Каждая из этих задач характеризуется соответствующим набором (Х19 Кх, Ply 8J, (Х2, Y2y Р2, б2), ..., (XNy YN> PN, б>у). Совокупность перечисленных задач располагается в форме, напоминающей сетевой график (рис.11.2). При этом некоторые задачи являются первичными — начало их решения не обусловливается другими задачами, см., например, задачи Л1? Л4, Л5, А7. Необходимость решения (а следовательно, и момент начала решения) остальных (вторичных) задач обусловливается фактом окончания решения других задач. Например (см. рис. 11.2), задача Л2 может быть решена лишь в зависимости от решенности задач Лх, Л4, Л5, задача Л3 решается после решения задачи Л2, а Лб — после Лб. Такая организация эксперимента дает возможность «экономного» включения той или иной задачи, т. е. в случае, если в ее решении действительно есть необходимость. Если задача At является вторичной и на необходимость ее решения влияют задачи Л* , ..., А{ , то в АИС считается, что решение задачи Ах может начаться в момент, когда логическая функция се< = txi (б^, ..., 6t-J примет значение 1. В частности, если at = = б; Д бг-2 Д ... Д hi , то задача Л,- может решаться лишь после того, как будут решены все предшествующие ей задачи At , ..., Ai . Если же а* = б< V &t V ••• V ^с , то задача Л i может решаться лишь после того, как будет решена хотя бы одна из задач Л/ , ..., Ас . В общем случае функция а* для каждой вторичной задачи отражает наше представление о порядке выполнения задач и должна задаваться при формировании эксперимента. 367
Таким образом, для задания эксперимента необходимо: задать совокупность решаемых задач А1У ..., Ап совместно с наборами входных данных Хи ..., Хп и параметрами Р1э ..., Рп; выделить в данной совокупности первичные и вторичные задачи; для каждой вторичной задачи At задать логическую функцию а;, определяющую возможность начала ее решения. Обратим внимание еще на одно обстоятельство. Перечень задач, решаемых в процессе эксперимента, обычно невелик и сами задачи достаточно стандартны — оценки стационарных характеристик, проверки гипотез, регрессионный анализ и т. д. Перечень и классификацию задач можно найти в гл. 8. Для нас важно, что задача, как правило, имеет стандартную вычислительную часть (собственно алгоритм преобразования данных), которую назовем методом решения задачи. Этот метод применяется к данным X для получения данных У, причем входные данные X, как говорилось, стандартными уже не являются ни в коей мере. Более того их разнообразие определяет разнообразие задач исследования. Так, две разные задачи оценки стационарных средних длительностей ожидания и длин очередей могут базироваться на одном методе подсчета среднего и отличаться лишь входными данными. Но одна и та же задача может быть решена различными методами. Например, подсчет средней длины очереди может осуществляться регенеративным методом или базироваться на центральной предельной теореме. Сказанное подтверждает целесообразность выделения в задании задачи двух компонент: метода решения задачи (совместно с определяющими его параметрами); исходных данных. Следует обратить внимание еще на одно обстоятельство. Описанный выше граф задает лишь логическую последовательность решения задач, входящих в эксперимент. Реальная же последовательность их решения (во времени), согласуясь с логической последовательностью, определяется еще возможностью или невозможностью одновременного решения задач. Информация о «совместимости» задач должна быть известна и указываться, например, в паспортных данных методов. Эта информация пользователю недоступна и используется программами внешнего программного обеспечения для задания должной последовательности выполнения задач. П.6. ВНЕШНЕЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Внешнее программное обеспечение служит для реализации экспериментов описанного выше типа с агрегативными моделями. Исходной информацией для этого является заказ на эксперимент, формируемый пользователем с помощью диалоговой системы АЛИСА и содержащий перечисленные в предыдущем параграфе сведения об эксперименте (набор решаемых задач, методов ре- 368
шения, входных данных, информация о взаимосвязи задач). Собственно внешнее программное обеспечение состоит из двух частей: библиотечных модулей, реализующих различные методы исследования моделей; исполнительных модулей, реализующих проведение эксперимента в соответствии с заказом пользователя. Как уже говорилось ранее, все модули представлены в виде агрегатов. Модули-методы являются консервативной частью внешнего программного обеспечения. Их состав определяется лишь текущим состоянием методов исследования сложных систем, проблемной ориентацией и не зависит от вида исследуемых моделей. Напротив, исполнительные модули должны быть согласованы как с проводимым экспериментом, так и с исследуемой моделью, т. е. они должны быть перестраиваемыми. Всего имеется четыре исполнительных модуля Мг — УИ4. Модуль Мг называется управляющей программой. Он характеризуется постоянной структурой, т. е. не меняется при изменении экспериментов и модулей. Тем не менее при функционировании модуля Мг в нем используется граф очередности включения задач, который является, по сути, параметром модуля Мх. Остальные модули генерируются на основе заказа на эксперимент и выполняют следующие функции: УИ2 формирует входные данные для задач; М3 запускает соответствующую задачу; М4 вычисляет значения логических функций, определяющих возможность начала запуска задач. Работа внешнего программного обеспечения осуществляется в несколько этапов. Сначала по заказу на эксперимент генерируются модули М2, М3, УИ4, задаются параметры модуля Ми вызываются библиотечные модули-методы, необходимые в данном эксперименте. Из этих модулей формируется агрегативная система со стандартной структурой. Далее устанавливается эквивалентность между состояниями данной системы и состояниями исследуемой модели. Вся полученная информация пополняет заказ на модель, который превращается таким образом в объединенный заказ (на метасистему). Указанная генерация и пополнение заказа выполняются вспомогательными программами, которые в дальнейшем участия в моделировании не принимают. Объединенный заказ передается во внутреннее программное обеспечение, которое собственно и формирует метасистему. На следующем этапе работа внешнего программного обеспечения осуществляется в составе метасистемы под управлением имитатора. Работа эта происходит следующим образом. При наступлении события в модели на входную клемму агрегата М2 поступает сигнал, содержащий полные имена координат модели, изменившихся в этот момент скачкообразно. Агрегат М2 анализирует, влияют ли эти изменения на решение какой-либо задачи, и в случае влияния на соответствующий агрегат-метод подается необходимый входной 369
сигнал для последующей обработки. Указанный входной сигнал формируется на основе набора (ilt ..., in), множества В c=i2 и функции / (z) (см. п. 11.5), задающих этот сигнал и определивших вид агрегата М2 при его генерации. Таким образом, осуществляется сбор и обработка данных в процессе моделирования. Выполнение задач в соответствии с установленным расписанием происходит следующим путем. В начале моделирования агрегат Мх по виду графа выполнения задач определяет, какие задачи могут начать решение сразу же. Далее осуществляется проверка возможности параллельной работы выбранных задач. Определяются задачи, которые будут решаться, и на агрегат Мг выдается сигнал, содержащий имена соответствующих методов. В свою очередь, агрегат М3 запускает методы в работу. При завершении работы метода (если характеризующий задачу признак б принял значение 1) на агрегат Мх подается сигнал и по виду графа выполнения задач определяется, какие задачи связаны с решенной. Сигнал с номером каждой такой задачи поступает на агрегат М4, в котором вычисляется значение логической функции, разрешающей запуск задачи. Если запуск возможен, то информация об этом сообщается агрегату Мь и далее сам запуск осуществляется описанным уже образом посредством агрегата М3. В процессе эксперимента фиксируются выходные данные, полученные при решении задач, а также факт нерешенности той или иной задачи. Описанная схема реализации эксперимента не является единственно возможной. Ее сложность объясняется стремлением получить решение максимально возможного количества задач, входящих в эксперимент. Описанное выше и реализованное в рамках АИС внешнее программное обеспечение расширяет возможности пользователя по исследованию моделей путем имитации. Оно является также программной базой для проведения направленных имитационных экспериментов. Вместе с тем, результаты, приведенные в гл. 8, показывают необходимость по меньшей мере следующих двух режимов работы. Первый режим — замена метода решения задачи в случае непэигодности используемого. Такая замена могла бы осуществляться в соответствии с заранее выбранным правилом или на основе каких-либо общих свойств модели. Режим замены был испытан в первой версии АИС [4], но в описываемой версии пока что отсутствует ввиду слабой проработанности принципов его реализации. Второй режим — смена модели или изменение структуры модели в процессе эксперимента. Необходимость его диктуется наличием методов (например, методов оптимизации), активно воздействующих на модель, а также методов, требующих построения вспомогательных моделей (методы понижения дисперсии, 370
Рис, 11.3. Этапы процесса моделирования на базе АИС: / —• диалог; 2 — заказ на модель; 3 — заказ на исследование; 4 — пополнение заказа на исследование; 5 — описание методов и элементарных агрегатов, составляющих методы; 6 — справочная информация внешнего программного обеспечения; 7 — информационная база эксперимента; 8 — библиотека фрагментов исполнительных элементов внешнего программного обеспечения; 9 — генератор заказа на компоновку; 10 — генератор исполнительных элементов внешнего программного обеспечения; // — заказ на компоновку; 12 — библиотека элементарных агрегатов внешнего программного обеспечения; 13 — программа-компоновщик; 14 — библиотека стандартных агрегатов для составления моделей; 15 — библиотеки стандартных агрегатов для составления моделей и служебных программ; 16 — моделирующкя программа; 17 — программа структурных преобразований; 18 — заказ на моделирование; 19 — преобразованная программа; 20 — транслятор, редактор связей; 21 — моделирующая программа в виде загрузочного модуля; 22 — результаты имитационного эксперимента оценка длительности переходного режима для регенерирующих процессов). Реализация этого режима связана с необ- ( гг уЛ 2/ ходимостью хранения или фор ^ '^ мирования вспомогательных моделей. Необходимо отметить, что внутреннее программное обеспечение допускает возможности изменения модели в процессе имитации, и, следовательно, реализация указанных режимов касается лишь изменений ряда решений в организации внешнего программного обеспечения. Реализованный в АИС процесс моделирования состоит из этапов, наглядно представленных на рис. 11.3. Смысл практически всех этапов заключается в автоматизации процесса составления программы, реализующей имитацию и исследование модели, по заказам, составленным пользователем в процессе диалога. 11.7. ЯЗЫК КОМПАС Рассмотренные в гл. 1 требования к программному обеспечению привели к необходимости разработки языка программирования, допускающего символические преобразования текста моделирующих программ в целях повышения их эффективности (см. также [6, 7]). Данный язык, названный КОМПАС (Композиционная Основа Машинных Преобразований Агрегативных Систем), основан на символике, представленной в п. 6.3. Одним из основных требований к языку КОМПАС было требование простоты. Оно достигается за счет ограниченного числа 371
- Оператор Программа Рис 11.4. Синтаксическая конструя» ция программы введенных синтаксических конструкций, а также благодаря отсутствию служебных слов. При этом текст программы, с одной стороны, становится аналогичным таблице решений, а с другой, — становится похожим на обычную словесную запись алгоритма. КОМПАС является языком структурного типа, что, по общепринятому на данный момент мнению, также облегчает разработку программ [2]. При разработке языка КОМПАС была предпринята попытка приблизить запись текста программы к математической нотации. В частности, это потребовало, чтобы операции, имеющие одинаковое написание (например, знаки равенства «=» в условии и в операторе присваивания), имели разный смысл в зависимости от типа скобок, в которых данный знак находится. Таким способом, по сути дела, устраняется этап кодирования программы и, следовательно, исключаются ошибки, возникающие на этом этапе. Описание языка в целях облегчения восприятия материала дадим в неформальной манере с обращением к интуиции читателя и ссылками на другие хорошо ему известные языки: АЛГОЛ, ФОРТРАН, ПЛ/1 и т. п. Общие сведения. КОМПАС — универсальный язык программирования высокого уровня, построенный по принципам структурного программирования [2] —он не содержит GO TO и части ELSE в операторе IF ... THEN ... ELSE, что дает возможность проводить структурные преобразования программ [7]. Простота задания на этом языке входных и выходных сигналов, состояний агрегатов и их переходных функций обеспечивается структурной формой записи данных, логических условий и операторов. Пользователь имеет возможность вводить новые типы данных и операций. Возможна эффективная организация пошаговой детализации разработки программ [10]. КОМПАС — язык фон-неймановского типа, т. е. типа языков ФОРТРАН, АЛГОЛ-60, ПАСКАЛЬ, ПЛ/1 и т. п., и его основные понятия (тип данного, начальное значение, оператор присваивания, условный оператор, циклический оператор и т. п.) совпадают с понятиями этих языков. -<Ш» + (УСЛ) Рис. 11.5. Синтаксическая конструкция оператора: ЗЦ — заголовок цикла; УСЛ «— условие; БО — блок операторов; БУО — блок условных операторов; БОН — блок описания дан- -[Имя блока 50 Имя блока] -+ [ БУО 1 м] —*п ZZ3 ч>/?до#] Оператор 372
Элементы языка. Синтаксические конструкции языка КОМПАС (в дальнейшем просто конструкции) представляют собой последовательности лексем этого языка, построенные с помощью синтаксических правил. Конструкциям, их отдельным частям и группам конструкций присваиваются имена. Синтаксические правила задаются с помощью синтаксических диаграмм [3, 5], представляющих собой имена конструкций, соединенных специальными знаками или следующих непосредственно друг за другом. В диаграммах используются следующие графические обозначения: -*-КОН — написать КОН, где КОН имя конструкции; ИКОН 1 — написать одну из конструкций: КОН I, 1=1 ... N ^КОН N —*КОН — написать или пропустить конструкцию; -^>КОН — написать конструкцию один или более раз; -^КОН — написать конструкцию несколько раз или пропустить ее; —*|КОН| — конструкция, определяемая диаграммой. Программа на КОМПАСе представляет собой последовательность операторов (рис. 11.4). Общий вид оператора приведен на рис. 11.5. Основными используемыми операторами являются следующие. Оператор описания данных, имеющий вид: -+- [#БОД #1 Все данные программы должны быть описаны в операторах описания данных. Скобки [ф): ... #] являются ограничителями блока описания данных. Условный оператор -ЦУСЛ) [БО] -*(УСЛ) [|БУО|] Если условие в операторе истинное, то выполняется следующий за ним блок операторов (или условных операторов), если ложно, то управление передается на следующий оператор. Альтернативный оператор [|БУО|] работает следующим образом: последовательно проверяются логические условия условных операторов внутри альтернативных скобок «[|«и»|]». При встрече первого истинного условия выполняется следующий за ним блок операторов, заключенных в квадратные скобки; дальнейшие условия не проверяются и управление передается оператору, следующему за альтернативным. 373
[#A,B,C,D = I,Stat, X.Y.Z [ [ ( (К << t: A=2 , В'Л ) , C:A+B ; K=i2 ; A>0 )[ Z=Z+A ] = 4)t! (X<0)[ Y=Y- B, = R, 4,76,6); dyn,(„- Y=Sin(X) ] 1 ¦X ](X>0)[ 1:3,100,2 »( Y<10000 )[ ( X<=-10 )[ Y=l ( -10<:X & X<0 ( 0<:X & X<10 ( 10<:X ] )[ )[ )[ Y=2 ] Y:3 ) Y:4 ] -1.02E + 5)#], 1 1 Y=Y+X ]!] , Y:Y+A(I) ] , :) Рис. 11.6. Примеры операторов языка КОМПАС Циклический оператор -*«ЗАГЛ. ЦИКЛА» [БО] -*«ЗАГЛ. ЦИКЛА» [| БУО | ] Заголовок цикла аналогичен заголовку цикла в ФОРТРАНе и показывает, сколько раз и с каким шагом надо выполнять следующий за ним блок операторов (или условных операторов). Циклический оператор с условием выхода из цикла -К(ЗАГЛ. ЦИКЛА» (УСЛ) [БО] -*«ЗАГЛ. ЦИКЛА» (УСЛ) [| БУО | ] Если условие выхода из цикла ложно, то выполнение цикла заканчивается, а управление передается на следующий оператор. Блок элементарных операторов — последовательность элементарных операторов (операторов типа присваивания в языке ФОРТРАН), разделенных символами «,» или «;» и заключенных в квадратные скобки, являющиеся ограничителями блока и играющие роль алгольных скобок begin ... end. На рис. 11.6 можно найти примеры различных операторов. Блок операторов — это последовательность операторов, разделенных символами «,» или «;». 374
[NOD ( A> С )[ D:A ] ( A< = C )[ D:C) NOD) f5 A:B , C:D , E:F , G:H , I = J , K:L , M:N , 0:P 5) [7 ( A+B>C+D )( A:B , C=D } 7) [SLI «I = l,iO»[ C(I)rA<I)*B(I) J $11) Блок операторов, заключенных в квадратные скобки, может иметь имя. Имена блоков облегчают чтение программы и должны совпадать при открывающей и закрывающей скобках. В качестве имен можно брать идентификатор (который должен быть указан в операторе описания данных) или целый числовой литерал. Примеры блоков операторов даны на рис. 11.7. Опишем теперь конструкции, определяющие операторы и программы, более подробно. Программа как минимум должна содержать оператор описания данных и любой другой оператор (рис. 11.8). В любом месте программы могут встречаться комментарии. Конструкции, описывающие комментарии, приведены на рис. 11.9, а, б. Сочетания символов «*)» и «!» не могут входить в комментарии. Элементарный оператор описывает действия, выполняемые программой над величинами, обозначенными идентификатором, массивами, структурами, списками, файлами и т. п. и результатами присваивания. Он аналогичен оператору присваивания в языках фон-неймановского типа. Общий вид элементарного оператора приведен на рис. 11.9, в. Примеры элементарных операторов: А=В, С=5, D = 1.2, М A, 5, К, 1) = N (S + L*3—6), NL0001 = TRUE, Z = X max Y. Выражения являются правилами вычисления, зависящими от семантики данных и операций (рис. 11.9, г). Примеры выражений: 7, I, А + В, А * * 2 + 4, N + ехр (А * * 2 + В * * 2 - С). Условие — это выражение, принимающее одно из двух возможных значений: истина или ложь. Если условие истинно, то выполняется блок операторов, заключенный в квадратные скобки, к которохму относится это условие. Если оно ложно, управление передается следующему оператору. Запись ^> (УСЛОВИЕ) означает: (УСЛОВИЕ) & (УСЛОВИЕ) & ... & (УСЛОВИЕ) Примеры условий: А > В, А < =С&~D | К - FALSE 375 Ршс 11.7. Примеры блоков операторов
SQRT:[# A,Y,E=R,(„1E [ A=ENTRY ] ( A<0 )[ TYPE= ( A=0 )[ ( A>0 )[1 [ Y=i ] -6) ;J:I ; SQRTrHAHEPROQ *] 'mistake A<0',Yr? ] '<<J = l,$>>(abS(A-Y»Y)>E)[ | [ RETURNS ] RMIN:[# U,X,Y=R,stat [ (X,Y):ENTRY ( X<=Y )[ U=X ( Y< X )[ U=Y [ RETURNS ) Y = (Y+A/Y)/2 ] 1} a) ; RHIN=NAHEPROG #] ] } ] 6) POWBR:tt A,X,Z=R,stat ; N,K:I,stat ; | t (A,N)=EHTRY «I = 0,$»( K>0 [ RETURN--Z ] POWER:NAHEPROG #] X=A , K=N , Zrl ] )[ (ODI(K))[Z=Z»X] [ KrK/2,X:X»X )] *) Рис. 11.8. Три примера программ на языке КОМПАС: :: — вычисление квадратного корня; б — поиск минимума; в — возведение в степень 376
- * -*- С * *~ Сим дол * )- Комментарии • »- Символ • - 0 Комментарии Идентификатор. -Структура ¦ Вводимая \операция типа присваивания ¦ -Выражение Элементарный оператор I —Унарная I I операция И стриктура—Л Идентири катар т\ Структура- Числовой литерал "" Нечисловой литерал ~ L»- (Выражение) —J Выражение *¦ б ипарная операция Идентификатор - Разделитель - д) Операция у -». Выражение I » ) Структура Идентификатор- Ж) Вводимый тип *. Шенти фикатор нти- J^= -С Стандартный--, Вводимый тип 3) *- ?-*~ Параметр-** Описание данных - Выражение - Структура Параметр и) Рис. 11.9. Синтаксическая конструкция: комментария; в — элементарного оператора; г — выра- <) — операции; е — структуры; ж — вводимого типа; з — описания данных; и — параметра
Примеры условных операторов: (A<C&~D|K = FALSE)[A = T **2 + 5, В = Т - 4] (А >~ В) [С = А] (А < В) [С = В ] Операция может быть представлена идентификаторами minus, max, abs, div, mod или последовательностью разделителей + &, *&, <+>, <*>, +/ и др. Конструкция, описывающая операцию, приведена на рис. 11.9, д. Операции могут быть стандартными и вводимыми. Стандартные операции определены в языке КОМПАС и перечислены ниже. Вводимые операции определяются пользователем по его усмотрению и в зависимости от специфики задачи. Способ введения операций аналогичен принятому в языке АЛГОЛ-68. В КОМПАСе используются следующие стандартные операции: арифметические операции: «—» — унарный минус; «—» — вычитание; «+» — унарный плюс; «+» — сложение; «*» — умножение; «/» — деление; «**» — возведение в степень; логические операции: «^» — отрицание; «&» —конъюнкция; «|» — дизъюнкция; операции отношения «==:» — равно; «^» = — не равно; «>» — больше; «>=» — больше или равно; «О — меньше; «<=» — меньше или равно. Блок операторов можно выполнить несколько раз, написав перед ним заголовок цикла (как в ФОРТРАНе). Идентификатор в левой части заголовка цикла представляет собой переменную, меняющуюся в соответствии с описанием в правой части. Правая часть представляет собой разделенные запятыми начальное значение переменной, финальное значение и шаг цикла. Символ $ обозначает бесконечность. Если он присутствует, необходимо наличие условия выхода из цикла, т. е. символ $ может применяться только в циклическом операторе с условием. Примеры заголовков циклов: J - 1, 10, 2; К = L, N, М; L = I*»2 + 1, К/2 - 8,2 * S + 2 * Р - 1; Q = 0, $, 100. Примеры циклических операторов: «1 = 1,10» [А A) = В (I)] «I = J, К, 3» (А(I)> 1000) (ABS(С)< Е)[С = С + I * • 2] «К = 0, $, Р» (F (К) > = 0) [Z = Z + G (К)] 378
Областью действия заголовка цикла является следующий за ним блок операторов, заключенный в квадратные скобки. Идентификаторы, числовой литерал, нечисловой литерал, элемент массива, массив определяются так же, как и в языке ФОРТРАН. В качестве действительного литерала берется действительный литерал ФОРТРАНа. Числовой литерал для удобства визуального восприятия можно разделить на части символом подчеркивания « ». При трансляции подчеркивание в числовом литерале игнорируется. Примеры идентификаторов, литералов и элементов массивов: А, В, С, ABCDE, 1, 10, 1.2, 12.34Е — 16, —78.9, —1.02Е + 10, М (I), 'MNPQKS', —L.JJ_E_ + 17 В КОМПАСе используются как стандартные, так и вводимые типы данных. Стандартные типы данных аналогичны типам данных, принятым в других языках (ФОРТРАН, ПЛ/1, ПАСКАЛЬ и т. п.): 1 — целый; R — действительный; С — символьный; STR — структура; SPSK — список; MAS — массив; FILE — файл; NAMEPROG — имя программы. Конструкция структуры приведена на рис. 11.9, е. Вводимый тип данных определяется конструкцией, представленной на рис. 11.9, ж. На рис. 11.9,:? представлен оператор описания данных. Примеры описания данных (деклараций): А, В, С, D = I, (,, 1, 36) POWER - NAMEPROG Е, F --- R, A.02, 15) S - SPSK, STR, (А, В, С) Конструкция, определяющая параметр, представлена на рис. 11.9, и. В заключение отметим, что подпрограммы, функции и ввод- вывод определяются так же, как в ФОРТРАН-!V.
ГЛАВА 12 ПРОБЛЕМНАЯ ОРИЕНТАЦИЯ ИМИТАЦИОННЫХ СИСТЕМ 12.1. ХАРАКТЕРНЫЕ ОСОБЕННОСТИ И ОСНОВНЫЕ КОМПОНЕНТЫ ПРОБЛЕМНО-ОРИЕНТИРОВАННЫХ ИМИТАЦИОННЫХ СИСТЕМ 12.1.1. Общие требования Инженерам-проектировщикам довольно часто приходится обращаться к имитационным исследованиям и выполнять их, не прибегая к помощи специалистов по моделированию. Успешное проведение комплекса необходимых при этом работ, связанных с созданием моделей, их программированием и проведением экспериментов на ЭВМ, в значительной степени обусловлено возможностями, предоставляемыми специальными проблемно-ориентированными средствами моделирования. Разработка таких средств является сегодня одним из актуальных направлений развития технологии моделирования. Основное внимание при изучении вопросов проблемной ориентации будет сконцентрировано на той фазе исследований, когда выполняется построение и программирование моделей (рис. 12.1). Именно на этих этапах инженеры-проектировщики более всего нуждаются в специальных проблемно-ориентированных программных средствах. Эти средства должны легко настраиваться на предметную область, соответствующую задаче проектирования, допускать применение привычных для проектировщиков терминов и приемов ее описания и изучения. В процессе моделирования проектировщик решает три основные задачи [161: определяет проблемную ситуацию; анализирует условия, учет которых обязателен в ходе решения проблемы; выдвигает гипотезы о возможных способах решения проблемы и проверяет их истинность. При имитационных исследованиях истинность гипотез устанавливается в результате проведения специально спланированных машинных экспериментов с моделями проблемных ситуаций. Работа проблемного специалиста должна поддерживаться ЭВМ во всех основных фазах решения прикладной задачи. При этом не требуется, чтобы проектировщик был компетентным во всех вопросах системного обеспечения применяемых им программных средств имитационного моделирования. Связь пользователя с ЭВМ осуществляется через проблемно-ориентированный язык, словарь и набор понятий которого берутся непосредственно из предметной области исследований [29]. Взаимодействие с машиной организуется в диалоге. В распоряжение проектировщика 380
Мл rfUUC/IU/Ji/CnU И LUL U 1СПЦ / //^/С/ЦГС L J 2| Эмпирический материал ц Результаты статистического анализа г 10 б\ и Содержательное |5 > описание Формальное описание |7 Имитационная модель и план эксперимента \в Программа- имитатор )9 Результаты Анализ системы 1 (процесса) ~\ 1 Моделиро- > Зание > Программирование Л J У Имитация J Рис. 12.1. Моделирование и имитация систем (процессов): / — формулировка проблемы и цели; 2 — получение данных; 3 — анализ структуры и функций; 4 — статистический анализ данных; 5 — формализация; 6 — подготовка данных; 7 — алгоритмизация; 5 — программирование; 9 — проведение имитационных экспериментов; 10 — анализ результатов /переход к новому варианту модели; // — валидация модели/ использование результатов предоставляется канал непосредственной связи с ЭВМ, режим использования которой он воспринимает как монопольный (разделение времени, виртуальная машина). Применяемые средства моделирования должны гарантировать возможность получения адекватных описаний типичных классов проектируемых систем. В силу уникальности проектируемых систем их описание не может быть получено только лишь на основе априорной информации. Иначе обстоит дело с подструктурами систем. Описания подструктур даже очень сложных систем могут быть разработаны, исходя из уже имеющихся сведений о фрагментах моделируемого процесса. Модели подструктур могут повторяться, причем большей повторяемостью обладают подструктуры меньшего объема. В проблемно-ориентированных системах моделирования построение модели осуществляется путем применения множества моделирующих элементов, функций и условий их использования, способов параметризации включаемых в модель элементов и описания связей между ними. Используя данные о каждом входящем в модель элементе и их взаимосвязи, система должна автоматически генерировать программу имитации. Набор элементов, используемых в качестве компонент «меню моделирования», должен быть расширяемым. В систему имитации могут быть включены новые модули и, наоборот, исключены те элементы, необходимость в которых отпала. Проектировщик 381
обращается лишь к нужным ему модулям из имеющегося набора. Разные пользователи могут работать с разными подмножествами моделирующих элементов имитационной системы. Входные данные загружаются в модель либо непосредственно пользователем, либо через имеющиеся в системе средства доступа к файлам. Для лучшей организации этого процесса предусмотрены специальные алгоритмы подготовки данных. Это прежде всего алгоритмы расчета статистических оценок, тесты на соответствие данных, алгоритмы корреляционного анализа. Системы моделирования должны допускать предварительную обработку результатов и иметь программы вывода, в том числе и графического, обеспечивающие представление результатов в понятиях предметной области. При подготовке экспериментов с моделями возникает необходимость в использовании результатов ранее проводившихся прогонов. В системе имитации для этих целей применяются алгоритмы, доступные пользователю в режиме диалога. Сюда относятся алгоритмы статистической обработки и среди них — алгоритмы регрессионного анализа и планирования статистических экспериментов. В ходе экспериментов часто бывает необходимо осуществлять изменение параметров или структуры модели. При непосредственно выполняемых манипуляциях с моделью в процессе реализации плана эксперимента наиболее ярко проявляется эффективность обратной связи «система—пользователь— система». Внесение изменений в модель должно обеспечиваться простыми и надежно работающими средствами. Оценивание и интерпретация результатов, получаемых в процессе имитации, осуществляется в режиме диалога проблемного специалиста с ЭВМ и поддерживается специально предназначенными для этого алгоритмами анализа трендов, динамического регрессионного анализа, анализа временных рядов и др. Имитационные эксперименты содержат большое число различных по содержанию и назначению прогонов модели. Поэтому в системах имитации действует специальный механизм учета ресурса машинного времени и распределения памяти. Рассмотренные нами общие требования, предъявляемые к программным реализациям проблемно-ориентированных имитационных систем, всякий раз тщательно анализируются для выяснения наиболее целесообразной формы их организации. При необходимости перечень общих требований может дополняться, например, требованиями обязательного включения в систему механизмов проверки корректности модели, ускорения процесса обучения пользователя и др. Создание программного обеспечения, полиостью отвечающего разнообразным требованиям, предъявляемым к реализующей проблемно-ориентированной системе, является сложной и не всегда разрешимой задачей. Особое значение при этом имеют программные реализации моделей, используемые при имитации в качестве объектов вычислительных эксперимен- 382
тов. Структуры моделирующих программ, методы их построения и способы применения оказывают сильное влияние на все остальные компоненты имитационных систем. 12.1.2. Средства построения моделей Алгоритмическое описание модели — это результат многоступенчатого процесса абстрагирования (см. рис. 12.1), исходным пунктом которого является реально действующая или проектируемая система и связанная с ее исследованием моделируемая проблемная ситуация. Рассмотрим два основных этапа процесса построения алгоритмического описания — структуризации и формализации модели (рис. 12.2). В реальных случаях практически никогда не удается охватить с помощью модели все многообразие определяющих систему признаков и связей. Приходится находить границы системы и отделять наиболее существенные для целей моделирования признаки и связи от второстепенных, иными словами, определять объект моделирования в узком смысле [14]. Успешное выполнение этой работы зависит от фундаментальных знаний в соответствующей области, которыми может располагать только проблемный специалист, хорошо представляющий себе моделируемую ситуацию. В процессе целенаправленного изучения реальности и тщательного отбора тех ее проявлений, отображение которых в модели представляется обязательным, создается неформальный концептуальный образ проблемной ситуации. Эскизы будущих имитационных моделей являются продуктом особого мышления их конструкторов. Технологический аспект такого мышления мы будем называть концептуальной структуризацией проблем. Наличие строго соответствующей заданной предметной области концепции структуризации является важным признаком проблемно-ориентированных систем имитационного моделирования. Применение этой концепции, закрепленной в специально разработанных и поддерживаемых системой приемах технологии, существенно упрощает построение и программирование моделей. Концепция структуризации более или менее явно лежит в основе всех имитационных систем. Однако во многих случаях пользователь не имеет к ней прямого доступа, так как средства ее поддержки находятся в тесной взаимосвязи с концепцией формализации. Например, при использовании языка моделирования GPSS структура моделируемого процесса изображается в виде потока, проходящего через обслуживающие устройства, очереди, ключи и другие элементы систем массового обслуживания. Однако структурировать процесс именно таким образом нет необходимости. Специалисты обычно применяют формализацию, согласно которой процесс представляется в виде системных событий [33]. Наличие программного обеспечения, позволяющего в режиме диалога формировать и развивать модели, стимулировало поиск 383
Рис. 12.2. Процесс моделирования: / — концепция структуризации; // — концепция формализации; / — формулировка проблемы и цели; 2 —• анализ структуры и функций; 3 — формализация эффективных приемов структуризации. В части I были рассмотрены наиболее известные и широко применяемые на практике концепции структуризации — представление моделей в виде агрегатив- ных сетей, сетей Петри или их расширений, потоковых диаграмм. Обзор этих концепций в достаточной степени характеризует сложность проблем структуризации. Наряду с аппаратом, поддерживающим ту или иную концепцию структуризации, проблемно-ориентированные имитационные системы имеют специальные средства, обеспечивающие применение в системе определенной концепции формализации. Действие механизмов формализации в проблемно-ориентированных системах может быть скрыто от пользователя, поскольку в таких системах структурная модель процесса трансформируется в его формально-математическую модель автоматически. Концепция формализации используется при этом на стадии преобразования модели, полученной после структуризации, во внутреннее представление вычислительной модели. В большом числе систем составление формальных описаний моделируемых процессов целиком и полностью возлагается на пользователя. Это означает, что входными данными для работы таких систем являются заранее (вне системы) составленные структурные и формальные описания процесса или же непосредственно его алгоритмические математические модели. 12J.3. Концепции структуризации Среди применяемых в настоящее время концепций структуризации важную роль играют сети Петри и их различные расширения: буферно-транзактные сети, временные сети, Е-сети, ПРО- и КОМБИ-сети. Методические и формальные аспекты структуризации систем в рамках этой концепции достаточно подробно были рассмотрены в ч. I. В дополнение к изложенным там сведениям мы приведем очень краткий обзор еще небольшого числа концептуальных схем структуризации, которые иногда используются в проблемно-ориентированных имитационных системах и которые понадобятся нам впоследствии при характеристике некоторых из этих систем. Сети очередей, графы потоков. При моделировании дискретных процессов широко используются различные концепции структуризации, разработанные с ориентацией на системы массового обслуживания. Моделируемый процесс в каждом таком случае 384 Моделируемая 1 система (процесс) 2 \ < Концептуальная модель j \ * Математическая модель 1 П
Рис. 12.3. Схематическое представление системы W мультипрограммной обработки: С / — задания; 2 — внешняя память; 3 — основная память; 4 — центральный процессор; 5 — процессор ввода- вывода; 6 — конец программы; 7 — ловушка г2 представляется как поток заявок в системе обслуживания. Системы обслуживания задаются в виде графов. Вершины графов интерпретируются как обслуживающие устройства. Заявки конкурируют между собой за место в обслуживающем устройстве и образуют перед обслуживающими устройствами очереди, если они заняты. Дуги графов интерпретируются как потенциальные потоки заявок между обслуживающими устройствами. Пути на графе соответствуют маршрутам движения заявок в системе обслуживания. Каждый путь начинается в источнике заявок и заканчивается в ловушке-стоке заявок. Пример графа для системы мультипрограммной работы приведен на рис. 12.3. Основными элементами такой структуризации являются заявки (временные элементы), очереди и обслуживающие устройства. Каждому элементу поставлен в соответствие вектор признаков (набор данных). В определениях очередей и обслуживающих устройств используются функции, с помощью которых описываются: для очередей — правила постановки заявок в очередь и правила выбора заявок из очередей; для обслуживающих устройств — дисциплины обслуживания заявок. Структуризация подобного вида была рассмотрена в [19, 30, 31] применительно к задачам моделирования процессов вычислений. На ее основе разрабатывались как аналитические, так и имитационные модели ЭВМ реального времени [9]. Представления моделируемых систем в виде сетей с очередями использовались также при исследовании систем переработки информации, производственных систем, транспортных систем и др. [20, 28]. Применительно к задачам построения программного обеспечения имитационного моделирования дискретных процессов разработана еще одна концепция структуризации. В рамках этой концепции системы представляются потоковыми графами. Потоковые графы — это направленные помеченные графы, дуги которых интерпретируются как операции, выполняемые с затратами времени, а вершины отображают действующие в моделируемой системе причинные связи вида «конец одной операции — начало другой операции». С помощью таких графов описываются логически допустимые потоки временных объектов в системе. Метки вершин и ребер графа прежде всего играют роль количественных характеристик потоков (детерминированных или же стохастических). Для получения адекватных представлений моделируемых 13 П/р С. В. Емельянова 385 * 1 Нет^В ьж
j* \юо yzi Г\ К / Is ш \ ATR!8B)=EXPOG)\ n/ AfRlB(l)=EXPO(WJ\ Рис. 12.4. Сетевая модель простого процесса обслуживания: / — Бремя между двумя прибытиями; // — максимальное число прибытий; III — назначение оценки времени реализации процесса; IV — узел «Очередь»; V — ATRIB A) + RNORM @.0.1); VI — узел «Источник»; 1 — интенсивность обслуживания; 2 — уход объектов процессов вводятся различные типы вершин (например, вершины со стохастическими входами и выходами) и ребер. Каждому типу вершин и каждому типу ребер ставятся в соответствие оценки (признаки) и функции (различают функции вершин и функции ребер). Именно на такой, правда, абсолютно детерминистической концепции структуризации базируется имитационная система MODS [32]. Интересным примером концепции структуризации является представление систем GERT-сетями (структурно-стохастическими графами). Такой способ структуризации использован, например, в имитационной системе CAPSIM [10]. Объекты в CAPSIM задаются графами, имеющими пять различных типов вершин: начальные вершины (генераторы транзактов); конечные вершины (стоки транзактов); внутренние вершины (передают и обрабатывают транзакты); разделительные вершины (порождают параллельные транзакции); соединительные вершины (объединяют параллельные транзакции). Все ребра в таких графах относятся к одному и тому же типу. Основными компонентами векторов-признаков ребер являются данные о вероятностях переходов и длительностях выполнения переходов из начальных в концевые вершины ребер, а также данные об используемой стратегии выбора ожидающих обработки транзакций. Еще одним примером системы имитации, в которой используется теоретико-графовая структуризация, является система SLAM [25]. Это универсальная имитационная система, предназначенная для моделирования дискретно-непрерывных процессов. В ней реализованы несколько концепций структуризации. Непрерывные части моделируемых процессов представляются уравнениями, а дискретные — в форме событий. В сетях, моделируемых с помощью системы SLAM, используются 15 различных ти_пов_ведшдл, с помощью которых отображаются очереди временных объектов, обслуживающие устройства, разветвления и др. Дуги сети моделируют возможные переходы временных объектов и относящиеся к переходам задержки, возникающие при реализации активностей. Вершины и дуги сети имеют признаки (формальные параметры), с помощью которых описываются раз- 386
личные функции. Данная концепция иллюстрируется примером (см. рис. 12.4), взятым из [25]. Проблемно-ориентированные блочные концепции структуризации. В случае блочной структуризации пользователь описывает моделируемый процесс в виде комбинации блоков, выбираемых из некоторого зафиксированного, но, как правило, расширяемого комплекта, имеющегося в системе моделирования. Составленная из блоков модель будет тем более понятной пользователю, чем более явными будут для него аналоги между применяемыми блоками и подструктурами моделируемого процесса. Если, кроме того, блоки модели будут иметь обозначения, соответствующие понятиям, обычно применяемым пользователем в его профессиональной работе, то освоение такой техники моделирования окажется несложным. В порядке обзора укажем некоторые блочно-ориентированные концепции структуризации, являющиеся технологической основой ряда имитационных систем, предназначенных для моделирования производственных процессов, В [18] описывается имитационная система SIRE, поддерживающая календарное планирование процессов производства. Пользователь должен описать процесс путем заполнения специальной анкеты, согласованной с перечисленными ниже понятиями предметной области, являющимися одновременно характерными понятиями принятой в системе блочной концепции структуризации; заказы (детали, партии деталей, которые должны пройти обработку); группы оборудования (однотипные машины, выполняющие операции обработки); маршрутные технологии (последовательности выполнения операций обработки всех видов заказов на каждой группе машин); правила для последовательности обработки заказов из очереди на обработку на данной группе машин. Каждому указанному типу элементов (блоков) поставлены в соответствие признаки, которые задаются пользователем при заполнении анкеты. Данные анкеты являются заданием для автоматической генерации имитационной модели. Система SIMULAP [13] поддерживает решение задач исследования материальных потоков в производственной системе. В SIMULAP используются следующие типы структурных компонент: движущиеся единицы материальных потоков (детали, палеты); граничные точки модели (источники и стоки материальных потоков); устройства с задержками времени (элементы обработки, транспортирования, хранения); точки управления (объединения, распределения материальных потоков по рекомендуемым правилам); соединители (указывают направления движения). 18 * 387
С помощью этих средств пользователь может составить граф процесса, а затем описать каждый элемент полученной им структуры соответствующими наборами данных. Концепция структуризации для транспортной системы [22] использует следующие типы блоков: транспортный объект (ТО); источники-стоки ТО; транспортируемый элемент; разделительный элемент; соединительный элемент; элемент-перекресток; элемент- задержка; элемент-накопитель. Пользователь формулирует модель на языке, основные понятия которого соответствуют перечисленным выше типам блоков, а необходимые ему данные вводит как позиционные параметры языковых конструкций. В исследованиях, связанных с разработкой алгоритмов управления материальными потоками ГПС, применяется имитационная система SIMFLEX 127]. В набор ее структурных элементов входят: временной элемент (ТЕ); станция обслуживания (выполняет операции над ТЕ). Различают заряжающие, рабочие, разряжающие и центральные станции обслуживания; транспортное устройство (движет ТЕ): соединяющая и разъединяющая стрелка, перекресток, транспортер; транспортный склад (перемещает и складирует ТЕ). Каждый элемент имеет свой графический символ. Символические обозначения используются при построении графических изображений моделируемых процессов. Специфические данные при описании моделируемых процессов задаются в форме файла данных. Задачам моделирования ГПС служит также имитационная система MAST [23]. Процессы в этой системе описываются с помощью элементов следующих классов: типы деталей; маршрутные технологии для всех типов деталей; устройства (загрузки, обработки, диагностирования); транспортеры; промежуточный склад. Составляя модель процесса, пользователь использует специальный язык описания. Элементы языка имеют позиционные параметры, с помощью которых задаются соответствующие признаки элементов. Для имитации роботизированных производственных ячеек применяется имитационная система, описание которой приводится в [24]. Система располагает набором блоков, выполняющих следующие функции: генерацию деталей; установку и позиционирование деталей; взаимодействие робота и машины; загрузку машины деталями; снятие детали с машины; отправку готовых деталей. 12.1.4. Концепция формализации Этап структуризации моделируемого процесса завершается его описанием на языке предметной области. Каждое такое описание должно быть затем переведено в формальное описание (см. 388
о Рис. 12.5. Элементы алгоритмической модели: / — алгоритмы событий/операций; // — векторы признаков временных элементов (структуры данных); /// — векторы признаков постоянных элементов (структуры данных) рис. 12.2). Отсюда следует, что в системах имитации необходимо иметь специальный инструмент, поддерживающий технологический акт построения формальных описаний моделируемых процессов. Модели процессов при этом должны быть заданы в общей стандартной форме в виде наборов взаимодействующих дискретных элементов. Элементы описываются с помощью векторов признаков, а их взаимодействия — с помощью специально для этого предназначенных алгоритмов (рис. 12.5). В различных имитационных системах программно-технологическая поддержка концепции формализации реализуется на самых разных уровнях. Например, в СИМУЛЕ (см. п. 10.3.4) пользователю предлагается общее средство декларации взаимодействия типов элементов любого вида как подклассов ранее определенных системных классов SIMULATION. Во многих проблемно-ориентированных имитационных системах могут быть предусмотрены наборы инструментов формализации, каждый из которых согласован с применяемыми в этих системах концепциями структуризации. Необходимо заметить, что элементы, схематично представленные на рис. 12.5, и алгоритмы их взаимодействия в рамках концепции формализации могут быть довольно разнообразны. Такое разнообразие порождается прежде всего тем, что концепции формализации ориентируются на различные математические теории и исходят из разных представлений об изучаемых процессах. Примеры, которые будут приведены ниже, послужат этому необходимой иллюстрацией. Система AFMG [17] построена на формальной основе буферно- транзактных сетей (концепция структуризации), а ее теоретическая схема базируется на механизмах функционирования сетей Петри (концепция формализации). В системе FORCASD [8] используемые схемы структуризации и формализации базируются на конструкции и механизмах работы Е-сетей. Формальная модель генерируется по заданному пользователем описанию без дополнительной структурной трансформации. В системах SLAM [25] и CAPSIM [10] реализована концепция формализации, ориентированная на теорию графов. В CAPSIM формальное описание 389 • п «*с— —:*• - — —*- ¦ ш 6,
Таблица 12.1. Концепция моделирования Обозначение, источник информации AFMG [17] FORCASD [8] CAPSIM [10] J28] SIRE [18] [22, 24] MAST [23] SIMULAP [13] ТОМ AS [34] Концепция структуризации Буферно-тракзактные сети формализации Сети Петри Е-сети Потоковые графы Сети с очередями Блочная структуризация Сети с очередями O-GERT-СЕТИ Формализация блоками Теория автоматов составляется пользователем по структурному представлению процесса, имеющему вид потокового графа (см. п. 12.1.3). Остальные примеры приведены в табл. 12.1. 12.2. ПРОБЛЕМНО-ОРИЕНТИРОВАННАЯ ИМИТАЦИОННАЯ СИСТЕМА ТОМАС Основной областью применения системы ТОМАС (Technology Oriented Modeling and Simulation) является проектирование и технологическая подготовка производственных систем. ТОМАС прежде всего предназначена для использования в качестве компоненты САПР, хотя допускается также работа в автономном режиме как самостоятельной проблемно-ориентированной системы имитационного моделирования. Специальная проблемная ориентация, достигнутые уровни организации доступа пользователя и интерфейса между пользователем и системой обеспечиваются в ТОМАС принятой в ней концепцией структуризации, которая предопределяет первый, как бы внешний слой программного обеспечения системы. Второй уровень программного обеспечения ТОМАС обусловлен принятой концепцией формализации. На нижнем, третьем уровне программного обеспечения особенности ТОМАС определяются применяемой в ней концепцией программирования. Все три уровня программного обеспечения системы вместе с соответствующей документацией представлены ниже: 390
Уровни программных средств Документация 1. Программы, поддержива- Концепция структуризации: ющие процесс составления описание моделирующих элементов в проблемно- модели пользователем ориентированных понятиях предметной области; определение функций этих элементов 2. Файл модели Концепция формализации: алгоритмические описания моделирующих элементов и их динамических взаимосвязей 3. Программы, поддержива- Концепция программирования: ющие генерацию интерак- представление моделирующих элементов и взаимо- тивной модели, пригодной связей между элементами на языке программиро- для выполнения на ЭВМ вания (программные модули и имитатор) Преобразование составленного пользователем описания модели во внутреннее формальное представление выполняется в ТОМАС автоматически. Формальное описание объекта моделирования хранится в ТОМАС в виде файла данных. Это описание автоматически преобразуется в готовую для выполнения на ЭВМ программу. Интерактивный доступ можно рассматривать как нулевой уровень программного обеспечения ТОМАС. 12.2.1. Концепция структуризации В ТОМАС используется блочная концепция структуризации. Сконцентрированные в ней знания о предметной области предполагаются достаточными для пользователя. Они закрепляются в понятиях языка концепции структуризации. Семантика понятий языка близка семантике объектов, с которыми имеет дело проблемный специалист при решении задач проектирования и технологической подготовки производства. Количество применяемых в рамках блочной концепции ТОМАС элементов выбирается минимальным, но достаточным для составления моделей наиболее типичных классов производственных процессов. При проектировании и технологической подготовке производства целесообразно выделять следующие элементы и отношения. Предметы производства в виде отдельных деталей или множеств деталей (партий, комплектов и т. п.)у преобразование которых от некоторого начального состояния к конечному является основной функцией производственной системы. Особыми признаками всех предметов производства являются их временная зависимость от состояний производственной системы и операндный характер. Они исполняют роль входных и выходных величин для элементов — операторов, изменяющих их состояния. Предметы производства в терминах блочной концепции структуризации ТОМАС определяются как (материальные) операнды. Орудия производства в виде рабочих мест, групп рабочих мест и т. п., применяемые для выполнения обработки, манипулирования, транспортирования, испытания и других операций над предметами производства. Общим признаком этих элементов являются затраты времени на проведение операций с операндами. 391
В терминах блочной концепции структуризации ТОМАС орудия производства определяются как технологические операторы. Материальные потоки между операторами. Дискретные потоки предметов производства осуществляют динамическую взаимосвязь групп рабочих мест. Вид этой взаимосвязи обусловлен как характеристиками предметов производства, так и характеристиками производственных операций, выполняемых над ними. Реализация связей производственных операций через потоки предметов производства осуществляется с помощью операций организационно-технологического управления, предпринимаемого, например, в целях обеспечения желательных переходов от одного технологического оператора к другому, или в целях синхронизации потоков предметов производства, или для выполнения обработки предметов производства определенного типа по заданному технологическому маршруту и т. п. В терминах блочной концепции структуризации ТОМАС такие операции определяются как организационные операторы. Информационные потоки между образующими модель операторами. Они могут быть самостоятельными либо связанными с потоками операндов. Производственные процессы, реализуемые в окружающей среде, с которой они связаны и взаимодействуют через входные и выходные материальные и информационные потоки (потоки энергии не рассматриваются). Описание объектов моделирования в ТОМАС подчиняется еле* дующим правилам. В производственной системе FS на временном интервале [О, Т\ протекают процессы преобразования заданного множества видов материальных операндов 0. Множество 0 получается как отображение множества производственных заказов В в/на мно- жество различных материальных операндов, т. е. О = \о (h) : h ? Н\у Н — индексированное множество обрабатываемых операндов; О : B-+G G = [G (i) : i ? /}, / — индексированное множество различ* ного вида допустимых в данной производственной системе операндов (ассортимент выпускаемой продукции); В = \В (i, k) : i ? /, k ? К), К — индексированное множество заказов, имеющихся в производстве на интервале времени Ю, 74. Реализация заказов связана с обработкой материальных операндов операторами 0RT = \0RT (/) : / g J\ — индексированное множество операторов. Каждый оператор ORT (/) состоит из множества jort (/)} однотипных, допускающих параллельное включение операций: ort(/, /):/€* /=1,2,...,/^; /галх ? ЛГ\{0}, 392
и буферного склада SP (/) операндов о ? О. Склад SP (/) имеет ограниченную емкость (т ? N мест хранения). Допускается случай, когда т = 0. Операторы ог? (/, /) выполняют простые или же комплексные, но однотипные операции (ONT (/)), соответствующие характеристикам ORT (/). Эти операции имеют чисто технологический смысл и в общем случае могут выполняться в различных режимах. Таким образом, операторы характеризуются тройкой ORT (у) = (SP (/); ort (j); ONT (/). Для каждого операнда о ? О необходимо реализовать определенную последовательность технологических операций Т (технологическую последовательность): FT (А) с 0#Г° /t ? Я, о==1,2, ..., отах — максимальная длина технологической последовательности, отах ? N /Щ- Последовательность FT (h) зависит от типа заказа и получается в результате управления потоком операндов в производственной системе. Таким образом, в активном или пассивном режиме необходимо выполнять операции организационно-технологического управления (выравнивание интенсивностей потоков операндов, обеспечение необходимых переходов и др.). Все это требует включения в производственную систему множества организационных операторов: 0R0 = [0R0 (р) : р ? Р\> Р — индексированное множество операторов организационного типа. Каждый такой оператор может включать один промежуточный склад SZ (р), имеющий q ? N мест хранения и одну организационно-технологическую операцию 0N0 (р), т. е. 0R0 (р) = = \SZ (p), 0N0 (р)}. В общем случае считается, что перед каждой технологической операцией выполняется организационно-технологическая операция. Множество PS — 0N0r X 0NT\ г = = 1,2,..,, rmax; rmax <^ oo описывает множество возможных актов такого управления. Реализуемый производственный процесс PF при таком статическом описании представляет собой структуру, состоящую из элементов некоторого потенциального множества PS, а именно PF cz PSS (s ? S, S — конечное множество). Аналогично этому, производственную систему FS можно представить как структуру, состоящую из элементов потенциального множества взаимодействующих операторов OR: FS cz 0RS\ OR = 0R0r x ORT. Для производственного процесса как динамической системы выполняется условие pF = {PSxOx T}\ T = {t, 0<*<Г}, где Т — множество дискретных моментов времени на интервале [О, Г]. 393
Цель имитации производственных процессов состоит в получении оценок гарантированного выполнения всех необходимых функций в реальной или же проектируемой производственной системе, что выражается соотношением G" @ = / (PF, G< @), где а — конечное состояние; е — начальное состояние, и функционалом качества Q = Q(PF, G«(i)t G'@), которые в ходе экспериментов с моделью определяются для различных допустимых вариантов организации производственного процесса. Для описания специфических требований, предъявляемых к концепции структуризации задач моделирования производственных процессов, недостаточно определить лишь активные элементы и отношения. Необходимо также установить их важнейшие признаки и значения. В этом плане можно говорить об объединенном множестве признаков, которые при исследовании некоторой заданной предметной области будут составлять характерные группы. Признаки материальных операндов. В числе важнейших признаков материальных операндов рассмотрим следующие. Индивидуальные идентификаторы и признаки типа. Производственные системы в общем случае являются многопродуктовыми, поэтому имеет смысл говорить не только о каком-то одном операнде, но и о его принадлежности к определенному типу операндов. Количественные параметры операндов. Типичной для дискретного производства формой организации является групповая технология, для которой характерна обработка деталей партиями, составленными, например, из определенного числа заготовок одинакового типа. Численность партий в таком случае является важной характеристикой производственного процесса. Если при определении групповой технологии допустить в качестве частного случая также и единичную численность партий, то появляется альтернативная форма представления поточной технологии. Временные параметры, характеризующие моменты начала и окончания работ для операндов. Плановое время выполнения технологических операций, моменты начала и завершения операций — все это важные параметры организации производства. Приоритеты операндов. В многопродуктовых системах обычно следует принимать во внимание приоритеты операндов. Через приоритеты задаются правила упорядочения входов операндов в каждый оператор. Требуемые параметры качества вместе с данными о соответствующих доверительных границах для каждого типа операндов, а также фактические значения этих параметров. 394
С позиций организации производства параметры качества оцениваются как наиболее важные. Часто именно этими параметрами определяются ход технологического процесса обработки и реализация программы выпуска продукции. Перечисленные признаки операндов являются обязательными для использования в модели. Кроме них существуют дополнительные признаки, с помощью которых оцениваются рассматриваемые нами элементы производственных систем. В число дополнительных признаков входят значения среднего времени: затрачиваемого на обработку всех операндов или определенных типов операндов; пролеживания операндов (в совокупности по всем операндам или для отдельных типов) за цикл производства или на отдельных фазах производственного процесса, т. е. при выполнении различных операций, на рабочих местах, на промежуточных складах; задержки операндов (в совокупности и по типам), т. е. превышение предусмотренных планом сроков окончания обработки. К дополнительным признакам относится также число прошедших обработку операндов. Признаки технологических операторов. Важнейшими признаками ORT (/) = (SP (/), ort (/), О NT (/)) являются: индивидуальные отношения (например, номер); число соответствующих отдельных операторов; оценки времени подготовки, выполнения и завершения основных и вспомогательных операций; временные оценки в общем случае находятся эмпирически и задаются в виде функций распределения, полученных для каждого типа операндов G {i) или же в целом по всем типам операндов; вместимость накопителя операндов SP (I) оператора ORT (/); производственную систему можно рассматривать как систему обслуживания, в которой могут возникать очереди операндов и возможны блокировки потоков операндов в силу ограниченного объема буферов; случайные значения интервалов времени между моментами возникновения помех и соответственно случайные значения про- должительностей действия помех; технологические операторы в реальных производственных процессах подвергаются воздействиям случайных помех; эти помехи могут иметь различную природу (дефекты орудий труда, сложности предоставления необходимых трудовых ресурсов различного вида, отказы оборудования и т. п.); воздействие помех играет важную роль в вопросах организации производства; при описании помех рассматриваются независимые случайные величины с заданными законами распределения; частный случай помех — это плановые остановки процесса производства (паузы). Признаки операторов являются не только важными для моделирования величинами, но и критериальными характеристиками при оценивании возможных решений в ходе проектирования си- 395
ORT(i) ORT(j) о) ORl(i) 4) URT(i,) OfiT(ij ORT(j) e) CD ORl(i) ORT(i) \ 1 Qpjf;\ ORT( Щ^(У^Ф) CRf( ^KM OPT(j) ж) i) Рис. 12.6. Схемы, отображающие организационные воздействия на материальный поток стем. Обычно в состав признаков операторов при исследовании производственных процессов включаются: общее число требуемых отдельных операторов или число необходимых категорий операторов; степень использования совокупного ресурса времени операторов или ресурса времени отдельных групп операторов; потери времени, связанные с простоем операторов или их ожиданием (в совокупности или по отдельным группам); совокупная надежность всего процесса или его отдельных частей, являющаяся результатом функционирования отдельных операторов. Концепция структуризации должна потенциально допускать построение целевых функций, связанных с характеристиками операторов и ориентированных на отдельные составные части имитационных моделей. Наряду с технологическими операциями в дискретном производстве проводятся разнообразные организационные мероприятия, связанные с воздействиями на материальные потоки. В некоторых случаях такие воздействия носят характер пассивных задержек в форме времени ожидания, что должно быть отражено в модели. Рассмотрим несколько важных примеров (рис. 12.6). 1. Прямой поток операндов от одного технологического оператора i к другому оператору /. Здесь t, / ? У; J — индексированное множество операторов. Пример — конвейерное или поточное производство (рис. 12.6, а). 2. Прямой альтернативный поток операндов от одного технологического оператора i к одному из К технологических операторов /lf /2, ..., /к- Пример — последовательность обработки зависит от типа операнда (рис. 12.6, б). То место, где поток подвергается организационному воздействию, отмечено на рисунке кружком. 396
3. Прямой поток операндов от К технологических операторов ilf /tf ##м 1ц к технологическому оператору /. Пример — предварительная подготовка различных видов деталей и проведение иа заключительном этапе контрольной операции (рис. 12.6, в). 4. Складирование операндов (формирование запасов). Пример — интегрированный производственный участок, на котором после каждого шага обработки осуществляется передача операндов в промежуточный склад (возможно, с помощью транспортного средства) (рис. 12.6, г). 5. Выдача операндов из промежуточного склада. Пример — интегрированный производственный участок. Группа рабочих мест i занимается подготовкой операндов для дальнейшей обработки (рис. 12.6, д). 6. Подготовка «побочных операндов» для комплектации «основных операндов» в зависимости от имеющегося в наличии состава и запаса «побочных операндов». Пример — подготовка сборочных единиц для поступивших от оператора i основных узлов. ORT (/) в этом случае может представлять собой место сборки (рис. 12.6, е). 7. Объединение L операндов одного типа в один операнд большей валентности. Пример — после обработки операндов на рабочем месте i составляются партии, которые далее транспортируются к рабочему месту / (рис. 12.6, ж). 8. Разборка (демонтаж) одного операнда иа несколько операндов меньшей валентности. Пример — составление транспортных партий из производственных партий (рис. 12.6, з). Реализация перечисленных здесь отношений связана, как это уже упоминалось, с пассивными задержками потоков операндов, т. е. с возникновением очередей. Если такие очереди имеют ограниченную длину, то необходимо учитывать соответствующие параметры промежуточных и буферных складов (атрибуты связи). Следующий важный для моделирования материального потока операндов аспект — это возможность динамического изменения приоритетов, т. е. изменения значений приоритетов в зависимости от критериев, связанных со значениями признаков операндов. Эта проблематика играет центральную роль прежде всего в организации производства по цеховому принципу. Имеется большой выбор различных приоритетных правил, которые могут быть рекомендованы при решении организационных проблем. Однако лишь немногие из них пригодны для практического применения. Программное обеспечение имитационных систем должно гарантировать возможность реализации механизмов действия приоритетов в моделях. Прочие отношения и признаки. Технологический процесс не может быть изучен без учета его взаимосвязей с внешним окружением. В модели должны учитываться воздействия от граничных (по отношению к внешней среде) входных и выходных элементов. К таким воздействиям в первую очередь относятся потоки операндов, поступающих извне в технологическую систему и выходящих из этой системы. Поскольку обычно системы являются многопродуктовыми, то возникает необходимость включения в модель либо одного источника потока неоднородных операндов, либо нескольких источников потоков операндов одинакового вида. 397
Все поступающие извне потоки должны иметь в модели те же самые динамические и структурные свойства, что и потоки реальной системы. Временная последовательность прибытия операндов каждого вида задается функциями генерации операндов от соответствующего источника. Каждая функция генерации описывается с помощью функций распределения независимых случайных величин, имеющих смысл времени между последовательными поступлениями операндов. К другим учитываемым в модели воздействиям среды на систему относятся прерывания процессов функционирования отдельных элементов и всей системы в целом. Такие прерывания могут быть и плановыми (например, паузы в производстве), и случайными. В последнем случае воздействия среды ничем не будут отличаться от действующих внутри системы помех. Поэтому внутрисистемные помехи и внешние случайные воздействия моделируются в системе одинаково. Независимо от характера действующих причин все прерывания процесса производства (случайные и неслучайные) приводят к блокировкам операторов. Действие таких блокировок (возникновение и длительность) также моделируется с помощью функций распределения. Информационные потоки в производственных системах только тогда требуют специального рассмотрения, когда в имитационную модель в явном виде включаются аспекты планирования и управления ходом процесса. Вопросы управления особенно важно учитывать при моделировании мелкосерийного и среднесерийного производства (прежде всего гибкого производства). Уже на стадии структуризации модели важно предусмотреть в ней возможность осуществления типичных акций эксперимента: изменения параметров, структуры, описаний подпроцессов. Очевидно, что все это должно находиться во взаимосвязи с предыдущими рассуждениями, поскольку объектами изменения в модели могут быть только элементы системы, их свойства и отношения. В силу сказанного необходимо разобраться в том, какие признаки должны в обязательном порядке входить в модель и какие из них должны быть представлены в модели как изменяемые при эксперименте параметры. Типичными экспериментальными параметрами являются: набор операндов, т. е. общее число выпускаемых видов предметов производства и объемы производственных заказов по каждому виду операндов; число / операторов (ort (/, /)) в составном операторе ORT (/); объем буферного склада SP (/) оператора ORT (/); структура потоков операндов, проходящих через промежуточный или буферный склады; объемы промежуточного и буферного складов (максимальный возможный объем запаса); число предметов обработки в одном заказе (размер партий); 398
приоритеты операндов; стратегия формирования операндов и управления ими; различные временные величины (в том числе и те из них, которые позволяют проследить связи с организационно-техническими аспектами функционирования производственных систем! время выполнения, подготовки операции и т. п.). Приведенный список параметров неполный. Однако в нем представлены типы параметров, которые обязательно должны находиться в поле зрения разработчиков модели. Организация соответствующего доступа к этим параметрам во время эксперимента должна поддерживаться принятой в системе концепцией структуризации. Основными понятиями принятой в ТОМАС блочной концепции являются операнд, оператор и правило операции. Действуя в рамках этой концепции, пользователь должен структурировать моделируемый процесс таким образом, чтобы: технологические и организационные операторы процесса могли быть адекватно представлены абстрактными операторами; различным типам технологических операндов в каждом отдельном случае можно было поставить в соответствие какой-то один определенный тип абстрактного операнда; абстрактные операнды и операторы с помощью параметров и правил операций, связанных с признаками и отношениями операндов и операторов, могли настраиваться на конкретный технологический процесс. Абстрактные объекты, используемые при составлении модели, предоставляются пользователю в виде «наборов конструктора». В определенных случаях может потребоваться расширение или модификация таких наборов, что, очевидно, будет соответствовать расширению или модификации собственно концепции структуризации. Подобные изменения проводятся, когда стандартная концепция системы не вполне удовлетворяет пользователя ввиду неполного ее соответствия требованиям предметной области. Далее абстрактные объекты концепции структуризации системы ТОМАС определяются в обобщенной форме. Детальное описание элементов структуризации реализованной версии системы ТОМАС приведено в [34]. Абстрактные операнды, источники и стоки операндов. Абстрактные операнды являются обобщением технологических операндов. Они определяются в форме вектора признаков О: Операнд О = \0lh 02j\, i = 1 A) п±; j = 1 A) п2; nl9 n2 ? ? N. Вектор О содержит пх номинальных признаков для идентификации и п2 кардинальных признаков для отображения различных технологических величин, как, например, приоритет, размер партии и т. п. Операнды являются временными элементами модели. Они генерируются в ходе имитации, проходят через моделирующую систему (при этом значения их кардинальных признаков могут из- 399
меняться) и уничтожаются. Отдельные операнды не обязательно декларируются пользователем при описании модели. Пользователь может ограничиться описанием образа действия источников операндов, определением потенциальных маршрутов движения операндов и указанием их стоков. Для представления подпроцессов генерации операндов и их уничтожения концепция структуризации имеет класс специальных. элементов OQS источников и стоков операндов. Элементы этого класса определяются в виде OQS = (М, G), где G — вербальное описание на специальном языке принципа действия соответствующей комплексной операции (подпроцесса); М — вектор признаков, включающий три подвектора: гг^ = = (ти) : Шц — номинальный идентификатор и признак связи, i = 1 A) /Сх; т2 = (m2j) : m2j — параметры или идентификаторы правил, конкретизирующие заданный в общем виде образ действия, / == 1 A) /С^» тз = {тзк) : тзк — переменные, относящиеся к типам операндов и имеющие смысл величин, характеризующих состояние, или оценок к = 1 A) Кг- Задаваясь компонентами вектора ш2, пользователь в деталях описывает поведение G и конкретный вид алгоритма генерации и/или уничтожения операндов. В реализованной версии ТОМАС имеются внешний и внутренний источники. Пользователь должен задать источник для каждого типа операндов. Обозначение источника присваивается каждому генерируемому операнду и соответствует обозначению типа. Аналогично определяются внешние и внутренние стоки операндов. Функции внешних стоков как выходных граничных элементов модели сводятся к учету параметров состояния и оценочных параметров, стиранию векторов признаков соответствующих операндов. Внутренние стоки, помимо тех же самых функций, дополнительно проводят анализ состава операндов в целях выделения и уничтожения «побочных операндов», входящих в «основные операнды». Стоки рассмотренных типов позволяют создавать в модели определенные условия для моделирования других операций, и, кроме того, сами выполняют роль операторов организационного типа. Абстрактные операторы. Генераторы сигналов помех. В ТОМАС используются два класса абстрактных операторов. Операторы первого класса служат для описания основных и вспомогательных технологических операций, протекающих с затратами времени (обработка, транспортирование, контроль и т. п.). Операторы этого класса называются активными задержками. Операторы второго класса обеспечивают моделирование организационных функций (локальное или централизованное управление). Такие операторы называются пассивными задержками. 400
В общем виде операторы первого и второго классов задаются набором из двух компонент OPR = (М, F), где М — вектор признаков; F — алгоритм выполнения операции, заданный в вербальной (словесно выраженной) форме. В векторе признаков содержатся три подвектора: т1 = = (ти) : ти — номинальный параметр идентификации и связи, / = 1 A) 1г; т2 = (rn2j) : m2j —параметры или идентификаторы правил, конкретизирующие заданный в общем виде образ действия, / = 1 A) /2; m3 = (m3h) : m3h — относящаяся к операторам переменная, с помощью которой могут быть заданы количественные оценки имитируемого процесса, k = 1 A) /3. Определяя вектор гл2, пользователь выполняет настройку заданного в символическом виде алгоритмического описания процесса на конкретный вид этого процесса. Компоненты т3 предоставляют пользователю информацию о временных оценках про- леживания операндов в операторе, временных задержках в каналах обслуживания и т. п. В реализованной версии ТОМАС имеются три оператора активной задержки: 1) оператор обслуживания (многоканальное обслуживающее устройство с входной и выходной локальными очередями), который применяется для моделирования операций обработки, испытаний и передачи; 2) оператор присваивания, используемый для моделирования сборочных операций, а также для представления кратковременно (или на продолжительный период времени) связанных операндов; 3) транспортный оператор для моделирования централизованно управляемых транспортных операций. В качестве операторов пассивной задержки в ТОМАС используются: оператор-накопитель для моделирования буферных и промежуточных складов технологических операндов; оператор пакетирования для моделирования операций соединения нескольких операндов в один операнд большей валентности (составление партий); оператор копирования для моделирования операций разделения операндов большой валентности на несколько операндов меньшей валентности (разборка партий); оператор объединения для моделирования операций объединения нескольких потоков операндов в один смешанный поток; оператор разъединения для моделирования операций разделения потока операндов на несколько потоков-последователей. Операторы объединения и разделения действуют как локальные операторы управления в иерархической модели производственного процесса. Такие модели в общем отражают особенности массового и крупносерийного производства. Для моделирования процессов с централизованным управлением концепция структуризации должна иметь оператор-диспетчер для моделирования иро- 401
цессов оперативного управления потоками (циклы загрузки, планирование работы транспортных средств и др.). Подобные модели наиболее характерны для мелкосерийного, среднесерийного и в особенности для гибкого производства. Активные и пассивные операторы задержки, как это уже следует из их названия, различаются по механизму реализации задержки операндов. В операторах пассивной задержки время задержки операндов модели является функцией состояния модели, т. е. задержка операндов случается тогда, когда не выполняются необходимые для продвижения операндов по их маршруту условия. Как только эти условия будут выполнены, операнды продолжат движение. Кроме того, операторы активной задержки реализуют запланированные заранее задержки операндов на время, значение которого находится по заданной пользователем функции задержки. Классы операторов задержки различаются между собой конкретными значениями компонент вектора признаков т2. В случае активной задержки т2 включает идентификаторы временных функций задержки. Для операторов с пассивной задержкой подобная компонента в т2 отсутствует. Важным аспектом при имитации производственных процессов являются случайные помехи, изменяющие поведение элементов производственной системы. В концепции структуризации системы ТОМАС действия случайных помех не вводятся в механизмы поведения операторов, а закрепляются за специальным элементом, который называется генератором помех. Этот элемент служит для моделирования случайных и запланированных прерываний нормального хода технологических операций (конец смены, обеденный перерыв, паузы отдыха и др.). Генератор помех может быть подключен к генератору активной задержки. Вектор признаков М включает в этом случае только mj и т2. Состав компонент т2 определяется специфическими функциями генератора помех. Определенные ранее типы элементов составляют основу «набора конструктора», предлагаемого пользователю для построения модели процесса при поддержке ЭВМ. Структура такой модели будет определяться составом отобранных элементов и связями между ними. В отличие от элементов, рассматриваемых далее под названием «Правила операций», элементы типа источников, стоков и операторов могут восприниматься как структурообразующие элементы. Правила операций. Различные типы абстрактных генераторов и операторов образуют базу набора предлагаемой пользователю системы элементов структурирования производственных процессов. Используя этот набор, пользователь может разложить моделируемый процесс на подпроцессы (комплексные операции), каждый из которых соответствует либо оператору, либо генератору. Построение модели в таком случае сводится к следующим действиям: 1) выявлению соответствий между подпроцессами и эле- 402
ментами концепции структуризации; 2) определению связей между элементами; поскольку после выполнения действий 1 и 2 для каждого элемента определен только принцип его поведения F, а не конкретный характер моделируемого этим элементом подпроцесса, то для каждого элемента структуры требуется задать его конкретный вид в форме алгоритма F или G. Для этих целей используются: действительные функции — функции-константы; теоретические функции распределения; эмпирические функции распределения; общие таблицы значений; целочисленные функции (для определения приоритетов, валентностей, принадлежности классам и др.) — функции-константы; эмпирические функции вероятностей; общие таблицы значений; функции разветвления (в особенности при определении операторов-последователей для операнда, передаваемого через оператор разветвления) — эмпирическая функция вероятности; функции признака операндов или операторов (например, тип операндов); функции или правила копирования; матрицы (для указания соответствий: типы операндов — их последователи; операнды в операторе-накопителе; типы побочных операндов — типы основных операндов и т. д.); приоритетные правила (в зависимости от значений выбранных признаков); транспортные правила (для управляемой транспортировки операндов). Система правил операций является семантически открытой. Это условие подобно требованию расширяемости состава элементов концепции структуризации. Построение моделей на основе концепции структуризации ТОМАС, Процесс построения моделей в ТОМАС состоит из нескольких этапов: 1. Определения множества участвующих в моделируемом процессе предметов производства G = {G (i) : i ? /}, / — индексированное множество предметов производства (типы материальных операндов). Определение множества OR — ORT \j 0R0, где ORT = = {ORT (/) : у ? J}; J — индексированное множество технологических операторов; 0R0 = {ORO (k) : k ? /С}; К — индексированное множество организационных операторов. По отношению к множеству операндов множество OR является носителем производственного процесса. Определение множества S = {{0QS (/)} (J [0PR (т)\\ применяемых структурирующих элементов, т. е. источников, стоков и операторов. Первый этап составления модели для производственного процесса, в состав которого входят две неподверженные действию 403
т?, w с Обработка Испытания з ^6рак ^Годные детали Рис. 12.7. Эскиз цесса про- Летали на доработку помех операции (обработка и испытания) и два типа предметов производства 77 и 72, иллюстрируют рис. 12.7, 12.8. 2. Построения отображений FX:G -+ ORS = {ORS (/)} и Ft : OR -+OPR - \OPR (m)}. Отображения 7\ и F2 строят множество М = \тг\у состоящее из элементов, типы которых представлены в S. (Сразу несколько объектов из М могут соответствовать одному типу элементов из S. Не каждый представленный в 5 элемент входит в М.) 3. Определения отношений связи на множестве Му R — = \iRj : {*', / ? N}\9 N — индексированное множество элементов из М\ iRj : i связан с / (/ — последователь i). Система М' = \М9 R] представляет собой модель процесса в структурированном виде. На этапах 2 и 3 формируется вектор тх параметров идентификаторов и связей элементов М. Иллюстрацией результатов выполнения шагов 2 и 3 является рис. 12.9, где приведены структуры модели производственного процесса, эскиз которого представлен на рис. 12.7. Использованные на рис. 12.9 изображения элементов поясняет табл. 12.2. 4. Параметризации элементов множества. Вектор т2 заполняется значениями параметров и идентификаторами правил операций, поэтому подпроцессы производственного процесса, моделируемые с помощью элементов, реализующих соответствующие алгоритмы, точно отображаются в модели. В результате появляется модель М, в которой реализуется проблемно-ориентированное описание процесса. Применительно к имеющейся версии ТОМАС в дальнейшем рассматриваются две основные структуры модели. Первая структура (рис. 12.9, а) не является иерархической и представляет производственный процесс. Потоки операндов не различаются по типам и рассматриваются как локально унравляе- брак Летали на доработку Годнь1е детапи 404 Рис. 12.8. Представление модели
Рис, 12.9. Варианты структуры модели мые в зависимости от выполнения временных условий и условий состояния. Потоки операндов реализуются спонтанно. Рассмотрим модель, построенную из структурообразующих элементов системы ТОМАС. В этой модели имеются несколько внешних источников основных операндов различных типов (это могут, быть, например, сборочные единицы и транспортировочные емкости). От одного из двух внешних источников операнды поступают прямо на оператор диспозиции DISP, от другого источника — предварительно проходят обработку (оператор ВЕММ). На операторе DISP замыкается еще один поток операндов, который генерирует внутренний источник GENA. Этот поток также предварительно проходит через оператор обслуживания ВЕММ. Главные операнды, скомплектованные из побочных, поступают в оператор ZUOR, после которого они проходят двухступенчатый процесс обработки. От типа главных операндов зависит маршрут их движения после оператора разделения VERZ. Например, на одном из этих маршрутов операнды после первого этапа обработки соединяются в партии PACK и поступают на буферный складБРЕЬ Перед переходом в сток операнды разделяются на два потока. Один тип операндов (готовая продукция) уходит 405
Таблица 12.2. Элементы» используемые в концепции структуризации системы ТОМАС Моделирующие элементы Источник операндов: внешний внутренний Сток операндов (внешний) Оператор: диспозиции (внутренний 0 — сток) обслуживания присваивания транспортный накопитель пакетирования копирования объединения разделения диспетчер сигналов помех Обозначение GENO GENA ENDE DISP В EMM ZUOR TRAP SPEI PACK KOPI VERE VERZ DIPA GENS Графический символ 0 a D О I I a CD CD О <D 0 0 Д Описание возможных связей Предшественник 0 1 п (п) 1 п 1 п I 1 0 Последователь 1 0 п A) 0 (п) ' 1 1 п 1 Координатор 0 @ B) 0) 1 0 п 0 Условные о связь с одним элементом; связь с п элементами с п элементами, 1 < п бозначения: 0 — запрещенные связи; 1 — необходимая ; A) — возможная связь с одним элементом; п — необходимая , 1 < п < "тпах; птах "~ параметр; (гг) — возможная связь во внешний сток ENDE, а другой — подается на операцию, функции которой моделирует оператор DISP. Эту обратную связь по материальному потоку можно интерпретировать как возврат пустых транспортировочных емкостей. Операция транспортирования представлена на рис. 12.9, а оператором обслуживания ВЕММ. Итак, при составлении модели пользователь выбирает нужное ему число типов элементов из набора S, составляет из них множество Му определяет на М связи структурообразующих элементов 406
по материальному потоку, причем связи не только обязательные, но и возможные. Каждому элементу модели пользователь дает имя, и этот шаг является первым шагом формирования модели с помощью ЭВМ. Действуя теперь уже с помощью ЭВМ, пользователь присваивает имена всем типам моделирующих элементов и задает имена последователей для каждого элемента. После выполнения этих действий он параметризует элементы модели. Вторая структура приведена на рис. 12.9, б. Здесь мы имеем двухуровневую модель. Верхний уровень представляет организационные процессы управления потоками операндов. Нижний уровень — это модель технологического процесса. Здесь входным пограничным элементом управляемого технологического процесса является оператор присваивания ZUOR, а выходным пограничным элементом — оператор GENA. К нижнему уровню модели относятся необходимое число операторов обслуживания В EMM, транспортных операторов TRAP и один оператор-накопитель SPEI. Связи между элементами нижнего уровня вводятся фиктивно с помощью указаний, какой из элементов нижнего уровня является предшественником, а какой — последователем единственного элемента второго уровня — оператора диспетчера DIPA. Этот оператор организует потоки операндов на нижнем уровне. При параметризации модели пользователь выполняет параметризацию оператора DIPA. 12.2.2. Концепция формализации Общая схема формализации. В качестве универсального математического метода формализации для элементов, являющихся компонентами моделей в ТОМАС, используется автоматная схема А = <Я?, 5J, V, 7\ Pf, Pg, Z0>, в которой приняты следующие обозначения: А — универсальный стохастический инициальный асинхронный автомат (см. гл. 2); 36— конечное непустое множество входных сигналов. Каждый вектор X ? 36 имеет фиксированный размер, а компоненты вектора х ? X принимают значения из некоторого известного конечного алфавита; ? — конечное непустое множество состояний Z. Каждый компонент г ? Z вектора состояний Z ? i? принимает значения из заданного конечного алфавита. Вектор состояния Z включает три подвектора: Zu Zj, Z3, где Хг — вектор дополнительных атрибутов. Размеры векторов 2г и Z2 фиксированы, размер вектора Z3 является функцией от вектора параметров, | Z31 = / (Zx); °У — конечное множество выходных сигналов Y. Каждый ^ 6 °У представляет собой вектор, компоненты которого у ? Y принимают значения из некоторого заданного конечного алфавита; 407
Т — множество моментов времени t, в которых имеет место отношение частичного порядка Т ? R + (R* — подмножество действительных чисел); Pf — таблица условных функций переходов, задающая изменения состояний абстрактного автомата: V X 6 96 : Z (/ + е)е..о - />/ (Z (/), X (/)), причем переход в новое состояние Z (/ + е) при поступлении входного сигнала происходит мгновенно; Pg — таблица условных функций выхода, описывающая генерацию выходных сигналов в моменты времени, когда поступает входной сигнал и автомат переходит в новое состояние: v X е Я? : Y" (t + е')е^о. е^о = Pg (Z (t + e), X (/)); Y" (t + г')г>^>,^ = Pg(P,(Z(t + г)% Х@), X @). е'>е Необходимо заботиться о том, чтобы выходные сигналы появлялись мгновенно, но только после того, как автомат перейдет в новое состояние Y" ^ Щ. Заметим также, что выходное сообщение и последовательность состояний стохастически зависимы; Z0 — детерминированное или стохастическое начальное состояние. Многообразие классов сигналов. Рассматривая объединение множеств соответственно входных *\}82 и выходных U <y сигналов применительно к определенному выше множеству автоматов st> = = |А}, введем классификацию типов сигналов, применяемых в системе ТОМАС: 1) календарные сигналы — внутрисистемные сообщения о будущих событиях и их запуске в момент необходимой актуализации этих событий: 2) маркерные сигналы, которые приводят к открытию и соответственно к вычерчиванию векторов признаков операндов, разрешают позиционную запись; 3) блокирующие сигналы, прекращающие передачу операндов и соответственно разрешающие их передачу при снятии блокировки; 4) передающие сигналы — объявляют передачу и получение операндов; 5) сигналы-помехи — частично и полностью ограничивают обработку сигналов и соответственно отменяют такого рода ограничения; 6) специальные сигналы — реализуют разнообразные вспомогательные функции; 7) сигналы заказа/поставки — объявляют потребность на материальные средства и соответственно указывают возможности располагать этими средствами. Каждому типу сигналов на входе и выходе автомата (если, конечно, в данном автомате этот тип сигналов используется) ста- 408
вится в соответствие пул совпадающего с именем сигнала обозначения. Несколько одновременно действующих входных сигналов автомата предварительно запоминаются, а затем обрабатываются сериями. Также сериями обрабатываются выходные сигналы автомата, записанные в различных пулах. Все это следует учитывать при обработке сигналов в системе автоматов. Передача выходных сигналов. Разобьем рассмотренные виды сигналов на две группы. В первую группу выделим календарные сигналы, указывающие на предстоящие события. Обработка этих сигналов выполняется с помощью специального элемента — «Календаря событий». Вторую группу образуют сигналы типа 2—6, которые несут сообщения о событиях, имеющих место в текущий момент времени в принимающих автоматах. Теоретически передача этих сигналов может выполняться непосредственно, однако необходимость обработки сигналов сериями обусловливает специальные требования к передаче сигналов и вспомогательным средствам регистрации. Образование календарных сигналов. Планирование моментов времени наступления будущих событий связано с использованием правил образования выходных сигналов и осуществляется относительно конкретных функций автоматов на основе функционалов Pj и Pg. Если обозначить через т) плановую последовательность событий, то t]:yx?x!T -»- Т и соответственно /n+1 = r\ (X, Z, in) = /» + r (tn)> причем X ? Я?; Z ? X\ tny tM ? Т\ г ? R+. Отображение г\ содержит составляющие г (tn) принципиально стохастической природы. Это определяет переменный по времени шаг между последовательными моментами наступления событий и объясняет асинхронный способ работы автоматной модели. Содержание вектора состояния. Выделение трех частичных векторов в составе вектора состояния обусловлено следующим. В векторе параметров фиксируются все необходимые для идентификации автомата параметры: состояния (например, тип, номер, имя); место нахождения автомата в общей модели (например, имя приемника); поведения автомата (например, продолжительность обработки). Все параметры задаются перед началом имитации и остаются неизменными в течение всего хода эксперимента. В состав вектора параметров включаются также параметры, значения которых изменяются перед началом каждого нового прогона модели. Параметры, конкретно определяющие свойства, могут иметь характер функций. Они фиксируются путем указания соответствующих функциональных символов и параметров. Вектор основных атрибутов содержит переменные состояния, которые прямо или косвенно используются для оценки элемента или системы (например, интеграл состояния по времени), и вспомогательные переменные, предназначенные для реализации функций переходов и выходов (например, накопления промежуточных результатов). 409
С помощью вектора дополнительных атрибутов прежде всего организуются внутренние очереди. Существенным здесь является переменная размерность вектора. Компоненты вектора лишь декларируются, а его размерность определяется в зависимости от одного или нескольких параметров. Соединение автоматов. Концепция формализации использует расширенное множество st> различных типов абстрактных автоматов. Каждый элемент множества зФу т. е. каждый тип автомата, является формальным эквивалентом элемента концепции структуризации. При формализации описания М' = \М> R], полученного на основе концепции структуризации, необходимо из элементов множества типов автоматов зФ составить множество Ж автоматов, в которое войдут только те элементы, которые будут использованы при построении модели для отображения множества М. На множестве Ж будут задаваться отношения связи ->, соответствующие Rj чтобы система Ж' = {Ж, -*} однозначно и адекватно отображала систему ЛГ. Реализация связи, динамическое взаимодействие входящих в Ж автоматов достигаются обменом сигналами. При этом должны выполняться определенные условия. Автомат А' ? Ж находится в отношении с автоматом В' ? Ж (обозначаем А' -*- В' к говорим «Л' связан с В'ъ) тогда и только тогда, когда п т т. е. взаимодействие двух автоматов обеспечивается за счет того, что компоненты выходного сигнала одного автомата передаются в соответствующий входной пул другого автомата. Тем самым утверждается, что на множестве всех сигналов действует отношение подобия: {Ул, € °Ул) со ХВ|| причем I 6 / = {1, 2, ..., | <у |}. Это отношение определяется следующим образом. Два сигнала X и Y подобны (X со Y), если для /, k = 1, /, где / = min (я, т)> имеет место xh = t/j. Здесь п — число компонент выходного сигнала Y, а т —¦ число компонент входного сигнала X. Конкретно данное условие означает, что для любого адреса отправления сигнала каждой компоненте входного сигнала принимающего автомата соответствуют определенные компоненты выходного сигнала отправляющего автомата. Назначение компонент сигнала: Хх — адрес автомата-приемника; Х2 — тип сигнала; Х3 — адрес посылающего автомата; Х4 — Х7 — компоненты, зависящие от типа сигнала. Для обеспечения в реальной системе адекватных динамических связей элементов модели через передачу сигналов необходима, 410
как это уже подчеркивалось, соответствующая организация. В рамках концепции формализации для этой цели предлагается специальный автомат L (лидер) с буфером входных сигналов. В состоянии Z автомата определены только векторы Z2 и Z3 : Z2 содержит переменную модельного времени и календарь указанного списка переменной длины для фиксации будущих событий. Размерность вектора задается при инициализации модели таким образом, чтобы каждому элементу модели, имитирующему процессы, протекающие с затратами времени, строго соответствовало определенное хместо в списке событий. Вектор Z3 имеет постоянную размерность и представляет собой список, называемый цепью сигналов. В этом списке содержатся события, совершающиеся в данный момент времени. Для входного алфавита автомата L выполняется условие $вь = = Щ' — и Щ, а для выходного алфавита — Щъ = 9В* = (J 9В. Алгоритм Р функционирования автомата обрабатывает сигналы, находящиеся во входном бункере, таким образом, что сигналы будущих событий (сигналы типа 1) получают отметки в календаре, а сигналы событий настоящего времени (сигналы типов 2—7) размещаются согласно их приоритетам в цепи сигналов (очередь). Устанавливаются следующие классы приоритетов сигналов: сигнал состояния (для блокирующего сигнала) — класс 1 (наивысший приоритет); передающие сигналы — класс 2; прочие сигналы — класс 3. Классы автоматов. В зависимости от областей применения типы автоматов образуют классы. В системе ТОМАС используются четыре класса автоматов: 1. Автоматы «Источники» и «Стоки». Эти автоматы являются источниками или стоками операндов и источниками помех, блокирующих работу соответствующих элементов модели. 2. Автоматы «Операторы». Их действие связано с изменением атрибутов операндов. Использовались два подкласса автоматов- операторов: операторы с активной и пассивной задержками операндов. Первый подкласс использовался для моделирования главных и вспомогательных технологических операций. Операторы с пассивной задержкой операндов применялись для воспроизведения изменений в материальных потоках, вызванных прежде всего действиями локальных и централизованных управлений. 3. Автоматы «Поле операндов». Эти автоматы образуют векторы признаков операндов, определенных в модели. Автоматы этого типа в дальнейшем не рассматриваются, поскольку они представляют собой детерминированные автоматы, пассивно регистрирующие сигналы, поступающие от других автоматов, и только при поступлении специальных запросов реализуют функции выдачи результатов: g : Z -> Y. С точки зрения машинно- технической реализации применительно к этим автоматам речь идет о динамически организуемой области памяти, в которой размещаются и хранятся векторы признаков операндов модели. 411
4. Специальные автоматы — накопители сигналов, задача которых заключается в обеспечении последовательной реализации событий, адекватных реальным временным процессам. Особо важным вопросом, связанным с назначением и функционированием автоматов-накопителей событий, является квазипараллельная обработка событий. Классы 1 и 2 следует считать принципиально расширяемыми. За счет включения новых автоматов и соответствующей модернизации имеющихся в системе автоматов удается добиться соответствия возможностей и потребностей в выразительных средствах моделирования. Каждый тип операторов, стоков и генераторов концепции структуризации, вообще говоря, является прообразом бесконечного множества. Тип автоматов характеризует алгоритм Р = = Р/ U Pg и вектор состояний Z. Входящие в Z параметры позволяют формально определять отдельные элементы этого множества. Необходимость использования автомата каждого конкретного типа, таким образом, определяется уже на этапе структуризации. Граф алгоритма Р имеет вид дерева, в котором через посредство входных сигналов активизируется реализация какого- либо пути. Динамическое воздействие автоматов классов 1 и 2 в рамках модели, построенной на их основе, достигается за счет включения в систему L-автоматов. При этом соблюдаются следующие специальные условия: 1. Начало имитации связано с поступлением инициирующего сигнала на L-автоматы. При активации модели в календарь заносятся первые сигналы событий, вырабатываемые генераторами. 2. Сигнал о наиболее близком по времени реализации событии передается от L-автомата к соответствующим автоматным объектам. Одновременно модельное время устанавливается на момент реализации этого события, после чего сигнал, поступивший от L-автомата, стирается. 3. Активация автоматного объекта при подаче на его вход сигнала о наступлении события вызывает изменение состояния объекта, в результате чего на выходе появляются сигналы, которые заносятся в буфер входных сигналов L-автомата. Когда все сигналы будут переданы, L-автомат активируется. 4. Сигналы, находящиеся в буфере, в определенной последовательности включаются в календарь или же в цепь сигналов. 5. Первый сигнал цепи сигналов считывается и передается, вызывая далее действия, описанные в п. 3, если цепь сигналов «пуста», то — в п. 2. Схему взаимосвязей автоматов поясняет рис. 12.10. На этом рисунке представлена модель (см. рис. 12.7 и 12.8) производственного процесса, включающая две технологические операции (обработку, контроль). Заметим, что механизм взаимосвязи автоматов скрыт от пользователя системы. Задача пользователя при мо- 412
г7 —i I г2— 1 1 г5—1 ' Ы 1 J Календарь | ' з Управление г 1 8 . * 1 f А7 f с 1 !t~".r"l 1 1 1 L т\ IU \ ГП 9 L /7а?Р f ( Параметры и 1 атрибуты модели А L- автомат TSIM | Поле NFK  Объект (имя) \ • • • -1 ?7оле~/Ш Объект (имя) \А6томат (тип) 1 • • • • • • 1 1NDEH \ Объект (имя) \ Адрес в F ] • • • * • • Рис. 12.10. Имитатор: 1 — сигналы, поступающие от объектов модели; 2 — сигналы состояния; 3 — передающие сигналы; 4 — прочие сигналы; 5 — прием одного сигнала; 6 — прием одного сигнала от календаря; 7 — активация алгоритма, передача адреса в поле F; 8 — календарные сигналы объектов активной задержки; 9 — параметры и данные о состоянии объектов; 10 — изменение состояния параметризованных объектов делировании в аспекте организации взаимосвязей ограничивается составлением схемы модели и указанием последователей и предшественников для включенных в модель автоматов. Рассмотренная концепция формализации может развиваться в направлении обеспечения моделирования с наименьшими затратами и при хорошем соответствии имеющихся в наличии инструментальных средств моделирования и потребностей пользователя в таких средствах. Основная часть затрат при моделировании приходится на программирование и тестирование изменяемых или вновь включаемых элементов. Известно, что затраты при программировании и отладке существенно уменьшаются при использовании модульной концепции программирования. Принципы модульного программирования не противоречат автоматной концепции моделирования. Автоматная концепция соответствует так называемому объектно-ориентированному стилю программирования, который поддерживается языковыми конструкциями, реализованными, например, в таких языках программирования, как СИМУЛА, МОДУЛА, SMALLTALK. При этом объект является семантической единицей (entity), которая выражает функцию или свойства явно выделенных понятий (компонент предметной области) или знаний о них, и представляется в виде адресуемой программно-технической единицы в смысле абстрактных типов данных. Объекты такого типа могут порождаться и уничтожаться и отличаются следующими свойствами: присущим им соб- 413
ственным механизмом обработки (Task); собственной локальной памятью; двумя состояниями — активным и пассивным. Объект становится активным при получении сообщения с известным смыслом, т. е. механизм обработки, соответствующий этому объекту, определяет необходимый вид и образ действия непосредственно из содержания сообщения и затем переходит в неактивное состояние. Механизм обработки включает в сферу своего действия операции и решения, актуализацию локальной памяти, передачу сообщений к другим объектам, создание новых объектов. Все это в полной мере распространяется на элементы, построенные на основе автоматной концепции формализации. Еще в большей степени объектно-ориентированному стилю программирования отвечают микропроцессоры четвертого поколения. В них уже на аппаратном уровне реализованы соответствующие механизмы адресации и защиты. Объектная ориентация, вложенная в концепцию моделирования, способствует достижению наилучшего соответствия между возможностями создаваемых имитационных систем и требованиями, предъявляемыми к этим системам со стороны пользователей. Однако важно не упустить еще один аспект этой проблемы, а именно то, что объективная ориентация является хорошей базой для решения проблем параллельной обработки. Хорошо известен факт, что эксперименты, выполняемые с алгоритмическими моделями дискретных процессов, в особенности при наличии стохастических элементов, требуют больших ресурсов машинного времени. Это заметно сдерживает очень нужное для практики применение имитации в задачах управления сложными системами. В конечном счете проблема может быть решена только путем параллельной обработки (в смысле понятия мультипрограммной обработки). Однако параллельная обработка выдвигает свои требования к ресурсам, а также к управлению и координации обрабатываемых программных модулей. В настоящее время проводится интенсивная работа по исследованию различных механизмов взаимодействия, из которых уже сейчас наиболее перспективным представляется механизм, реализующий принцип коммуникации сообщений, наиболее полно отвечающий условиям использования микропроцессоров четвертого поколения. На базе таких микропроцессоров аппаратно реализуется эффективный механизм коммуникации объектов, хорошо согласующийся с автоматной концепцией формализации 115]. 12.2.3. Организация доступа пользователя Изложенная выше концепция структуризации направлена на решение вопросов построения адекватной модели и прежде всего в идеальном и внешнем по отношению к ЭВМ плане. Рассмотрим теперь организацию доступа пользователя к машине и обсудим 414
особенности его взаимодействия с проблемно-ориентированной имитационной системой при вводе в модель данных. Имеющийся в системе ТОМАС интерактивный доступ ориентирован на так называемые главные компоненты, применительно к которым действия исследователя организуются в четыре этапа. Построение структуры. Путем свободного выбора идентификаторов и назначения отношений предшественник/последователь для потоков операндов в модели пользователь фиксирует ее структуру. Установление соответствий для моделирующих элементов. Каждому элементу структуры модели ставится в соответствие один моделирующий элемент и таким образом определяется соответствующий элементу структуры образ его поведения. Инициализация параметров. Для каждого элемента структуры модели вводится соответствующее ему стандартное множество данных (параметры и правила операций). После выполнения этих трех этапов уже для зафиксированной модели определяются: параметры плана проведения эксперимента. Например, пользователь задает время прогона модели, определяет продолжительность переходной фазы при имитации, задает условия сбора и обработки данных; вариации модели в том смысле, в каком они понимаются при экспериментировании с моделью и возможны на каждой фазе фиксации модели. При организации доступа пользователя особое внимание уделяется прерывности процесса ввода данных, а также вопросам обеспечения эффективного и полного диалога пользователя с системой на базе комбинации техники меню и формуляров. Построенная в системе ТОМАС модель является сложной системой данных с разнообразными внутренними зависимостями. Данное обстоятельство наряду с отмеченными выше особенностями процесса фиксации модели (прерывистость ввода, многоцелевые вариации модели в ходе экспериментов) обусловило необходимость создания базы данных собственно алгоритмической модели и обширной системы управляющих величин, которая предназначена для описания отдельных компонент модели и всей модели в целом. Эта база имеет большое значение при управлении повторными прогонами модели, а также при расширении функций системы, связанных с обеспечением этапов моделирования и управления экспериментами. Заметная роль отводится описаниям управляющих величин и в решении проблем дальнейшего расширения концепции структуризации и функциональных возможностей концепции доступа. Характеристики алгоритмической модели при использовании системы ТОМАС обусловливают возможность использования различных путей решения вопросов структурирования данных модели. Так, в настоящее время реализуется развитая система уи- 415
равления данными. Однако наряду с преимуществами при использовании такой системы имеются и негативные эффекты, например увеличение времени ответа в интерактивном режиме. Важный момент рассматриваемой нами концепции доступа — это обеспечение в системе полного диагностирования ошибок в синтаксическом и формально определенном семантическом планах. Имитатору передаются только формально правильные модули, так что диагностирование управления ходом времени в имитаторе может быть сведено к минимуму. В качестве недостатков, проявляющихся при решении проблем обеспечения открытости и расширяемости концепции структуризации, можно отметить внутреннюю функциональную структуру, обусловленную чисто прагматическими соображениями, и слабую абстракцию данных, применяемую в концепции доступа. Именно в этом следует видеть причины высказываемых в настоящее время возражений относительно необходимости открытого характера концепции структуризации. Дальнейшее развитие концепции доступа в системе ТОМАС характеризуется следующими аспектами: методологические аспекты—обеспечение открытости в структурном и функциональном планах; достижение возможностей концептуального описания процессов с необходимой степенью подробности (преобразование концепции структуризации на высшем уровне); предоставление средств автоматического моделирования непосредственно по технологическому описанию производственных процессов; программно-технологический аспект — создание условий для обеспечения машинной независимости программно-технических средств; оптимизация процессов распределения памяти; сокращение времени ожидания ответа; обеспечение работы в режиме коллективного доступа; реализация в системах аппарата обеспечения повторных запусков модели и т. д. Дальнейшими перспективами в развитии проблемно-ориентированных систем являются использование банков данных при управлении моделью и банков моделей при управлении моделями. Все это требует специальной разработки проблем абстрактного представления данных и базовой концепции доступа. Обоснование концепции доступа к ТОМАС связано с применением теории автоматов. Пример 12.1. На участке обрабатываются 27 деталей-представителей. Объем производства по каждой такой детали предполагается одинаковым. Для каждой детали-представителя установлен план выпуска, известна маршрутная технология, заданы тип, количество и состав необходимого производственного оборудования, определены детерминированные временные ограничения. Оборудование участка предназначено для выполнения технологических операций распиловки, обточки, шлифовки, сверления, контроля. Степень технологической замкнутости участка составляет 77 %. Операции прессования, ионизации, закалки, рихтовки, фрезерования и шлифовки плоских поверхностей выполняются в других производственных подразделениях завода. Каждый 416
Рис» 12.11. Структура модели вид выходящего с участка промежуточного продукта должен передаваться в смежное подразделение для последующей обработки. Лимит времени на передачу полупродукта в смежные подразделения принимается равным одной смене. Недельный фонд времени рассчитывается исходя из 5 рабочих дней в неделю» трехсменной работы и продолжительности каждой смены, равной 7 ч. Требуется установить, справится ли участок с предложенным ему полугодовым заданием при предусмотренном проектом ресурсе оборудования. Месячный план производства включает 200 заказов. Реализация каждого заказа связана с выполнением 13—20 технологических операций. (Подобные задачи возникают при проектировании новых или реконструкции действующих производственных участков.) Структура имитационной модели, отвечающей условиям задачи, приведена на рис. 12.11. Элементы этой структуры означают следующее: ТУ01, ..., ТУ27 — генераторы операндов, имитирующих соответствующие производственные заказы; VER1, VER2, VER3 — операторы типа VERE. С их помощью в модели осуществляется объединение потоков операндов. Включение в модель трех однотипных элементов обусловлено ограничением на допустимое число входных потоков (не более 20); RBG — элемент обслуживания типа ВЕММ. Он предназначен для имитации процессов складирования заготовок, поступивших на участок. Складированию в модели соответствует операция транспортного типа. Несмотря на то, что загрузка деталей на стеллажи склада выполняется дважды (до и после обработки), в модели этот процесс выполняется только один раз. Кроме того, в модели не учтены фактически имеющие место различия во времени выполнения операций загрузки и выгрузки деталей со склада; VER5 — также оператор типа VERE. Его назначение в модели — имитация слияния двух потоков — потока, поступающего со склада, и потока с выхода элемента DSF2; VTYP — оператор разветвления потоков типа VERZ. Он распределяет детали по группам рабочих мест в соответствии с маршрутной технологией и Х/г14 п/р С. В. Емельянова 417
этапом обработки. В этом месте структуры модели необходимо решить вопрос о накопителе, который может быть связан с оператором VTYP или может непосредственно примыкать к каждой из рассматриваемых групп оборудования; WIRB, FZWD, DSF2, SAG2, С500, ТКО — операторы типа ВЕММ, моделирующие определенные группы технологического оборудования. После обработки пять из шести потоков операндов поступают с выходов элементов, имитирующих обработку деталей, на элемент VER3, а поток от DSF2 — на элемент VER5; ORG — оператор обслуживания типа ВЕММ, моделирующий передачу деталей для последующей обработки на смежных производственных участках; VTYK — элемент типа VERZ. Он действует так же, как оператор VTYP; TIEF, ZIEH, IONI, GLUE, RICH, KEIL, BAND — элементы типа ВЕММ, имитирующие обработку соответствующих видов на смежных участках; ENDK — оператор типа ВЕММ, представляющий в модели выходной контроль деталей; PACK — оператор пакетирования; SEN К — оператор стока (учет выполненных заказов); STIE, SZIE, SION, SGLUE — элементы, генерирующие помехи—сбойные ситуации в работе технологического оборудования. Построение модели с такой структурой, т. е. разработка эскиза моделируемой проблемной ситуации, структуризация модели, параметризация, — все эти действия в рамках ТОМАС занимают у подготовленного пользователя не более одного дня. При заданных выше условиях модель показывает, что предлагаемый в проекте производственный план нереален. Примерно 20 % заказов выходят из графика. Возможны три способа действий, направленных на обеспечение реализуемости плана: изменение технологии обработки, изменение графиков прохождения заказов, увеличение производственных мощностей участка. После соответствующей модификации модели можно исследовать влияние каждого из этих способов в отдельности и в любых целесообразных сочетаниях. 12.3. ПОСТРОЕНИЕ ПРОБЛЕМНО-ОРИЕНТИРОВАННЫХ СРЕДСТВ МОДЕЛИРОВАНИЯ НА БАЗЕ СТРУКТУРНЫХ ПРЕОБРАЗОВАНИЙ МОДЕЛИРУЮЩИХ АЛГОРИТМОВ 12.3.1. Вопросы формирования проблемно-ориентированных моделей Ниже будет рассмотрен ряд задач, возникающих вследствие блочного характера формируемых моделей и модульного строения моделирующих программ при реализации проблемно-ориентированных средств моделирования. Как уже указывалось, проблемная ориентация порождает необходимость наличия концептуальных блоков, которые базируются на содержательных понятиях, характерных для рассматриваемой проблемной области. Набор концептуальных блоков должен быть, естественно, ограниченным и давать возможность составлять модели для достаточно широкого класса систем из предметной области. Требования к надежности, мобильности и адаптации программных средств приводят к необходимости построения моделирующей программы способом, аналогичным способу построения модели, т. е. выделяется ограниченный набор типовых программных конструкций — модулей. 418
Указанный набор программных модулей должен обеспечивать формирование соответствующей моделирующей программы. Достичь взаимно однозначного соответствия между указанными блоками и модулями удается далеко не всегда, да это по ряду причин может оказаться и нецелесообразным. Поэтому программные средства проблемно-ориентированного моделирования должны обеспечивать развертку информация, содержащейся в сформированных пользователем концептуальных блоках, в упомянутые программные модули. При попытке подобной организации программного обеспечения возникают по меньшей мере две проблемы: эффективности работы моделирующей программы и корректности ее работы. Первая из этих проблем вызвана тем, что организация взаимодействия программных модулей связана с передачей управления и пересылками данных, что приводит к значительным затратам вычислительных ресурсов, в частности, машинного времени. Кроме того, возможны потери эффективности, обусловленные внутренней организацией моделирующей программы, например, эти потери зависят от того, какой способ управления событиями выбран — императивный или интеррогативный (управление событиями занимает до 40 % времени моделирования [12]). Недостатком более эффективного алгоритма императивного управления является необходимость дробления логического блока модели и возложение на пользователя ответственности за учет всех возможных взаимодействий, возникающих при обработке события. Средства, предоставляемые интеррогативным алгоритмом управления, часто оказываются более удобными, но их применение может приводить к большим затратам машинного времени. Использование жестких проблемно-ориентированных конструкций упрощает процесс программирования, но требует большого объема памяти по сравнению с вариантом, когда используются программы, написанные с помощью гибких языков при широком применении общеалгоритмических средств [7]. Проблема корректности в данном контексте вызывается следующими причинами. Разработчик программных модулей может тестировать их автономно и в некоторых стандартных ситуациях их соединения. Но он не может учесть всех возможных вариантов взаимодействия, возникающих в моделирующей программе, полученной по описанию пользователя. С другой стороны, пользователь, не являясь программистом в традиционном понимании и в принципе не зная даже о существовании модулей, лишен возможности тестирования моделирующей программы на этом уровне. Далее основное внимание будет уделено проблеме эффективности. Мы ограничимся лишь указанием на принципиальную возможность использования развиваемого подхода к решению проблемы корректности. Проблему эффективности будем решать на основе идей преобразования алгоритмов. Эти идеи применительно к поиску рацио- Vil4 419
SERVER 2 H SERVER 1 QUEUE SERVER 3 SERVER 4 Рис. 12.12. Фрагмент системы массового обслуживания нальных программ были сформулированы в работе [4] и с тех пор интенсивно исследовались [1, 3]. Существует даже тенденция [26] рассматривать весь процесс получения программ от спецификаций до эффективного объектного кода как цепь формальных преобразований, поддерживаемых программными средствами. Проиллюстрируем указанные выше проблемы построения модели из набора элементов и возникающие при этом трудности следующим примером [21 ]. Пусть дан фрагмент системы массового обслуживания (рис. 12.12). Фрагмент состоит из четырех обслуживающих приборов SERVERi (i = 1, 2, 3, 4) и очереди QUEUE, которые работают и взаимодействуют следующим образом. По системе перемещаются однородные заявки. После окончания обслуживания на SERVERI (нас будет интересовать только судьба обслуженных заявок, поэтому никаких предположений, скажем, о механизме образования очереди перед ним не делается) заявка поступает в очередь, если число заявок I в ней меньше L*. В противном случае заявка остается в приборе, блокируя дальнейшее обслуживание в нем до тех пор, пока / не станет меньше L*. Заявки из очереди забираются на обслуживание по следующему правилу: заявка поступает на приборы SERVER2 или SERVER3 в соответствии с дисциплиной fifo (первым пришел — первым обслужен), если длина очереди меньше критической L**; если L*>/^L**, то в соответствии с той же дисциплиной заявка может поступить и на SERVER4y т. е. прибор SERVER4 является резервным. В случае, если свободны оба прибора SERVER2 и SERVE R3y то заявка переходит в тот из них, который простаивал дольше. Если заявка не поступит на обслуживание за время т > 0, то она покинет очередь. Отметим, что время обслуживания является случайной величиной, закон распределения которой нас здесь не интересует. Запишем символически модель системы так, как показано на рис. 12.13, где значения символов следующие: (Р) — проверка условия / < L* для выяснения возможности перехода заявки в очередь; CHOICE — правило выбора приборов SERVERi (i = = 2, 3, 4), описанное выше; (Т) — проверка условия / >- L** для выяснения возможности обслуживания на приборе SERVER4. Механизм передачи заявки между элементами ясен из рис. 12.13, но реализация этого механизма не описана. Такое или 420
*- SERVER 1 **(P) QUEUE ^-^ CHOICE { SERVER 2, SERVER J, (Г) SERVER4 } —^ • • • Рис. 12.13. Концептуальное представление фрагмента системы массового обслуживания подобное представление модели удобно для пользователя, но не подходит непосредственно для реализации на ЭВМ. Переход от него к моделирующему алгоритму можно осуществить по-разному. Например, можно непосредственно формировать реакцию системы в целом на каждое событие, заключающееся в перемещении заявки или окончании обслуживания. Тогда необходимо явным образом отслеживать все возможные изменения, связанные с изменением каждой переменной, описывающей систему. Это приводит к увеличению времени на создание моделирующего алгоритма. Другая возможность состоит в конструировании моделирующего алгоритма из подалгоритмов, описывающих некоторые стандартные подсистемы и их взаимодействие «локально», но тогда независимо от выбора конкретного разбиения системы и способа программной реализации возникнут передачи управления и пересылки данных между подалгоритмами, а это фактически эквивалентно моделированию наступления новых событий, что и приводит к снижению эффективности моделирующего алгоритма. Построим моделирующую программу рассматриваемой системы, например, с помощью следующего набора программных модулей: Si, i ~ 1, ..., 4 — модули, имитирующие процессы обслуживания заявок на приборах SERVERi соответственно; Q — модуль, имитирующий очередь заявок и осуществляющий постановку заявок в очередь и ухода их из нее; CHAi, i --- 1, 2 и CHBi, i — 1, 2— модули, организующие Взаимодействие описанных выше модулей с учетом логики работы изучаемой системы. Для работы моделирующей программы в целом необходима информация о выполнении определенных соотношений между состояниями модулей Si и Q (например, превышает длина очереди некоторый уровень или нет, занят прибор или нет и т. п.), а также о диктуемых этими соотношениями связях указанных модулей друг с другом (например, куда послать обслуженное требование в той или иной ситуации). Переработка этой информации и обеспечивается модулями CHAi и CHBi. Несмотря на то, что данное разбиение является достаточно произвольным, оно удовлетворяет требованиям модульного программирования [6] и позволяет организовать расширение возможностей пользователя при моделировании (например, введение новых дисциплин обслуживания) внесением лишь локальных изменений в модули. 14 П/р С. В. Емельянова 421
51 СНА J СНВ1 Q СНА 2 -A 52 СИВ 2 Рис. 12.14. Модульное представление фрагмента системы массового обслуживания Работа модулей будет пояснена ниже, при описании реакции системы на различные события. В отличие от представления на рис. 12.13 представление на рис. 12.14 описывает взаимодействие между составными частями системы и может служить непосредственной основой для программной реализации. Рассмотрим события, происходящие в системе: 1) уход заявки из очереди, если ее время ожидания превышает т; 2) поступление заявки на обслуживание на приборы S2, S3 или S4. Предположим, что в приборе S1 находится обслуженная заявка, тогда событие 1 вызовет следующую последовательность передач управления и соответственно передач данных между элементами: Q — СНА2 — СНВ2 — СНВ1 — СНА1 — S1 — — СНА1 — Q— СНА2 — СНВ2 — СНВ1 — CHAL Цепочка начинается с изменения очереди (Q) — уход заявки; изменение ее вызывает активизацию проверки модуля СНА2, проверяющего условие возможности взятия заявки из очереди Q и передачи ее на последующие модули; в свою очередь, это вызывает активизацию модуля СНВ2, проверяющего истинность условия Т и реализующего правило выбора приборов S2, S3, S4; далее проверяется условие Р (СНВ1) и, наконец, активизируется модуль СНА1, содержащий информацию о наличии обслуженной заявки в SL Отметим, что ЭВМ будет проверять эти условия каждый раз после изменения длины очереди, независимо от их смысла, так как в рамках представления на рис. 12.13 невозможно явно указать механизм и последовательность проверок условий, а при представлении на рис. 12.14 необходимо использовать достаточно универсальные модули для обеспечения возможности описания системы ограниченным набором модулей и автоматического перехода от описания на рис. 12.13 к описанию на рис. 12.14. Такая ситуация имеет место при использовании интеррогативного алгоритма управления — большинство проверок условий проводится «вхолостую». Далее модуль СНА1 опрашивает модуль СНЫ о наличии свободных мест в Q, а затем пересылает заявку в очередь Q. Таким образом, число заявок в очереди вновь изменилось. Снова проверяются условие Т (СНА2, СНВ2), возможность поместить заявку на один из приборов 52, S3 или S4 (СНВ2)У а также условие Р (СНВ1)У после чего активизируется модуль CHAJ, выясняющий наличие обслуженной заявки в 5/. 422
Проанализируем эту последовательность. Условие Т после ухода заявки можно не проверять, так как очередь уменьшилась, условие Р можно не проверять по той же причине — в очереди заведомо есть свободное место. Пытаться занять S4 после прихода заявки в очередь и вновь проверять Т нет смысла — после прихода заявки очередь будет содержать столько же заявок, сколько их было до наступления события 1. Занять S2 или S3 нельзя: в самом деле, дисциплина очереди — fifo> а если бы один из приборов S2 или S3 был свободен, то уход заявки был бы невозможен. Последняя проверка условия Р и попытка забрать заявку из S1 излишни: условие Р истинно в данном контексте, обслуженную заявку уже забрали, а новая не успела обслужиться. Таким образом, реакцию системы на событие 1 можно описать последовательностью Q — СНВ1 — СНА! — S1 — СНА! — СНВ1 — Q, которая эквивалентна исходной. Реакция на событие 2 имеет вид Q~CHA2—CHB2—Si—CHB2—Si—CHB2—CHA2— —СНВ2—СНВ1—СНА1—SI—СНА 1—CHB1—Q— ~СНА2—СНВ2—СНВ1—СНА1У i = 2, 3, 4. Цепочка Q—СНА2—СНВ2—Si соответствует собственно постановке заявки на прибор 5/; после этого модуль СНВ2 проверяет условие возможности начать обслуживание на Si, и обслуживание начинается; дальнейшая часть цепочки повторяет цепочку, уже рассмотренную ранее, и отвечает реакции системы на изменение очереди Q. Рассуждая таким же образом, как при исследовании реакции на событие 1, получаем эквивалентную последовательность: Q~CHA2—CHB2—Si—CHB1—CHA 1—S1— —CHA1—CHB1—Q. В полученных цепочках возможны дальнейшие преобразования, связанные с ликвидацией передач управления между модулями, и упрощения, получаемые на основе анализа логики работы моделирующего алгоритма и его «алгебраических» преобразований |5, 21 ] в целях устранения избыточных конструкций. Таким образом, представление моделирующей программы системы в виде набора модулей обусловливает необходимость передач управления и данных, а определенная универсальность исходных модулей, необходимая при формировании библиотек, приводит к избыточности последовательности передач управления и функциональной избыточности отдельных модулей. Если подытожить сказанное выше, то можно выделить следующие составляющие моделирующих программ, используемых 14* 423
Рис. 12,15. Технология получения эффективных моделирующих программ: 1 — программа развертки; 2 — библиотека типовых концептуальных блокоз; 3 — моделирующая программа на внутреннем языке системы; 4 — библиотека схем типовых программных модулей; 5 — программа синтеза; 6 — библиотека оптимизирующих преобразований; 7 — эффективная моделирующая программа на внутреннем языке системы; 8 — программа генерации; 9 — библиотека проблемно-ориентированных процедур; 10 —> эффективная моделирующая программа на языке программирования высокого уровня для заданной проблемной области (рис. 12.15). Рассмотрим эти составляющие. Описание системы пользователем проводится в терминах, традиционных для рассматриваемой предметной области. Пользователю предлагается совокупность стандартных конструкций (элементов, способов их взаимодействия и т. п.), с помощью которых он может формировать модели. Эти конструкции, называемые типовыми концептуальными блоками, обладают заданными наборами характеристик и их значений. Если предлагаемые наборы значений не удовлетворяют пользователя, то они могут быть изменены путем выбора других из определенного множества значений. Кроме того, пользователю предоставляется возможность расширять множества значений программным путем. Соответствующие концептуальные блоки хранятся в специальной библиотеке. Библиотека схем типовых программных модулей включает описание структуры типовых модулей и символическое описание их функций [2]. Выбор функций, выполняемых модулями, определяется соображениями удобства реализации, легкостью отладки, модификации и т. п., и членение моделирующей программы па модули в принципе может не совпадать с членением системы на блоки в описании пользователя. Программа развертки переводит описание системы, составленное пользователем, в схему, состоящую из типовых модулей. Программа осуществляет выбор символических описаний функций, имена процедур и их параметров, полученные из описания системы пользователем. Для задания одного модуля может потребоваться информация, содержащаяся в описании нескольких блоков и их взаимодействия, и, наоборот, одному блоку может соответствовать несколько модулей. Кроме того, программа развертки подготавливает описание данных для программы генерации. Моделирующая программа представляет собой совокупность текстов типовых модулей на внутреннем языке имитационной системы [5]. Использование специального языка диктуется необходимостью проведения последующих оптимизирующих преобразований (см. гл. 6). 424
Программа синтеза преобразует моделирующую программу в эквивалентную и более эффективную. Эта программа представляет собой единый модуль. При этом исключаются передачи управления и данных между модулями, ликвидируется избыточность описаний, упрощаются логические выражения и выполняемые действия. Библиотека оптимизирующих преобразований содержит подпрограммы, реализующие правила преобразований обычных логических и алгебраических выражений, а также правила преобразования выражений, содержащие проблемно-ориентированные операции х. Указанные подпрограммы используются при работе программы синтеза. Программа генерации переводит моделирующую программу на внутреннем языке системы в программу на языке программирования высокого уровня, которая может содержать обращения к процедурам, находящимся в библиотеке проблемно-ориентированных процедур. Полученная эффективная моделирующая программа на языке программирования высокого уровня может быть выполнена под управлением планировщика событий имитационной системы. Далее мы рассмотрим реализацию описанного подхода для проблемной области (системы массового обслуживания — СМО), когда программные модули формализуются в виде агрегатов. 12.3.2. Средства пользователя для описания СМО — концептуальные блоки Рассмотрим систему, элементами которой являются очереди и обслуживающие устройства. От элемента к элементу в изолированные моменты времени перемещаются заявки, которые характеризуются структурой, описывающей их строение и параметры, и приоритетом. Структура состоит из компонент. Компонента принимает значения из определенного множества или сама является структурой. Заявки генерируются источниками, а приходят на элемент «очередь» или уходят из него в соответствии с дисциплиной очереди (например, fifo> lifo и т. п.). Кроме того, заявка может покидать очередь, если время пребывания в пей истекло. Элемент «обслуживающее устройство» характеризуется параметром К — числом каналов обслуживания и рядом других параметров. При поступлении заявки па этот элемент ей выделяется некоторое число каналов ><;/(. В каждый момент времени любой элемент находится в определенном состоянии. Состояние элемента «очередь» определяется совокупностью заявок, находящихся в нем, а состояние обслуживающего устройства — 1 Проблемно-ориентированными операциями здесь называются некоторые совокупности элементарных операций, которые в рассматриваемом проблемном контексте выступают как единое целое, например операции постановки в очередь и выбора из нее требований в моделях обслуживания. 425
Рис. 12.16. Представление концептуального блока в виде вложенных таблиц значениями параметров этого устройства и обслуживающимися в нем заявками. Возможность перемещения заявок из данного элемента, имя элемента, на который она поступает, начало, прерывание и окончание режима обслуживания определяются наборами соответствующих условий, которые могут зависеть как от состояния данного элемента, так и от состояний других элементов. Рассмотрим один из возможных вариантов задания моделей систем описанного выше класса. Предлагаемая форма представления модели отражает, с одной стороны, интуитивное представление о строении и функционировании таких систем, а с другой стороны, — содержит всю необходимую информацию для построения моделирующей программы. Подобные непроцедурные формы описания все чаще используются в средствах программирования. В основном разработки ведутся в сфере языков запросов и манипулирования данными [35], но есть опыт их применения и в моделировании [11]. Информация о каждом элементе представляется в форме концептуального блока. Кроме того, в форме концептуального блока представляется информация о взаимодействии элементов. Каждый концептуальный блок имеет вид вложенной системы таблиц (рис. 12.16). В такой системе одна таблица является как бы базой — в ней содержатся все основные характеристики и параметры элементов или фрагментов их взаимодействия. Поскольку некоторые из этих характеристик или параметров могут изменяться, пользователю предоставлена возможность вызывать вспомогательные таблицы, содержащие более подробные описания отдельных характеристик и параметров. Информация из вызванной таблицы по желанию пользователя может автоматически переноситься в вызывающую. Такая организация таблицы обусловлена, кроме всего прочего, ограниченностью экрана дисплея. Все таблицы имеют аналогичную структуру (рис. 12.17) и включают следующие компоненты: заголовок таблицы, являющийся названием элемента или его характеристики; имя элемента, 426
CUST <name> STRUCTURE PRIORITY m^^mmmmt ii wm simple no e) JUEUE <name> DISCIPLINE flfO LENGTH $ 1 ARRIVAL single DEPARTURE Single LEAVE REASONS no CHANGE OF CUST ПО 5TATENAHE STATISTICS *) Рис. 12.17. Концептуальные блоки: a — заявка; б — входной поток; в — очередь; г — дисциплина очереди; д — прибор INPUTFLOW <name> FLOW DISTRIBUTION CUST IN FLOW simple d(») u(«,«) m(«) 6) DISCIPLINE OF QUEUE <name> 'name' DISCIPLINE 'name' CONDITIONS no conditions fifo Ufo prior rand i) SERVER <name> CHANNEL 1 PARAMETERS no ARRIVAL Single DEPARTURE single OPERATION 'name' BEGIN CONDITION arrival SERVTIHE OF CUST 0 CHANNEL FOF CUST 1 CHANGE OF CUST no CHANGE OF SERVER no FINISH CONDITION end INTERRUPTION no STATENAME STATISTICS Ф задаваемое пользователем; названия характеристик; изменяемые пользователем значения характеристик; множества выбора; под* таблицы, которые имеют структуру таблицы. Перечислим действия пользователя по заданию модели. 1. Инициализация шаблонов таблиц. Если пользователя не удовлетворяют стандартные шаблоны, то он может определить желаемую конфигурацию таблиц, задавая включаемые в нее под- таблицы. Эти новые шаблоны будут появляться на экране по соответствующему вызову. 2. Вызов очередной таблицы с названием элемента с помощью MENU (рис. 12.18). При создании нового блока копируется шаблон. Для модификации уже существующей таблицы указывается 427
N Е V А L L НЕ LP CUST FLOW QUEUE SERVER SUBSYS INTERACT Рис. 12.18. Меню системы ее имя. Если имя забыто или ошибочно задано, высвечивается каталог таблиц, по которому и находится необходимая таблица. 3. Изменение значений характеристик либо непосредственно в данной таблице, либо в соответствующей вспомогательной таблице путем ее вызова. При возврате к вызывающей таблице, если пользователем не указано противное, выбранное значение и параметры автоматически переносятся в нее. 4. Изменение структуры таблицы внесением копии шаблона соответствующей подтаблицы. 5. При необходимости новые значения характеристик могут быть внесены программным путем. 6. Возврат к MENU, который осуществляется после окончания формирования блока. Работа с таблицами ведется с помощью экранного редактора. Директивы на переход к вспомогательным таблицам, выбор значений и т. п. осуществляются с помощью ключевых символов, вставляемых перед заголовком, соответствующими названиями характеристик, выбираемыми значениями. Эта процедура является машинно-независимой. Однако, используя возможности конкретной операционной системы для экранного ввода-вывода, можно организовать более дружественную процедуру работы с таблицами. Действия пользователя поддерживаются (машинно-независимыми) процедурами работы с библиотеками (рис. 12.19). Так, если создается новый блок, то происходит поиск и копирование соответствующего шаблона из библиотеки шаблонов, либо поиск и копирование таблицы с заданным именем из библиотеки пользователя в рабочий файл, а также поиск и копирование всех вспОхМогательных таблиц во временную библиотеку. Работа с этими библиотеками ведется автоматически: пользователь не только не имеет дела с упомянутыми процедурами, но может вообще ничего не знать ни о структуре, пи о существовании библиотек. Рассмотрим подробнее предлагаемую пользователю совокупность шаблонов и некоторых вспомогательных таблиц. Заявка (см. рис. 12.17, а), описываемая таблицей, по умолчанию имеет простую структуру (является однокомпонентной и неизменяемой). Могут быть введены заявки сложной структуры типа списка или дерева. При этом допустимы как их непосредственное описание, так и ссылка на структуру уже описанной заявки. Компонентами структуры могут выступать также ключевые слова, используемые, например, при описании специальных задач. Так, 428
Рис. 12.19. Схема организации библиотек Временная библиотека пользователя DISCRIPLINF OF THE QUEUF SAMWt T библиотека шаблонов таблиц MENU QUEUF (NAME) SEHVEfi {NAME) Рабочий <райл QUEUE SAMPLE Библиотека пользователе SfRVER 51 HUt HE A5 I J для целей маршрутизации заявок в сети структура заявки может содержать ключевые слова АДРЕС, МАРШРУТ и другие, которые определяются при заполнении пользователем концептуального блока, описывающего заявку. Заявка характеризуется также приоритетом, понимаемым в традиционном смысле. Входной поток заявок (см. рис. 12.17, б) включает описание имен заявок потока и распределение интервалов времени между их прибытиями. Эти распределения выбираются из стандартного набора, предоставляемого пользователю или определяются им самим в специальной вспомогательной таблице. Поток может состоять из заявок, определяемых несколькими таблицами. Для этого необходимо с помощью ключевого символа включить соответствующую подтаблицу. Очередь (см. рис. 12.17, в) характеризуется дисциплиной (по умолчанию, fifo), размерами групп прибывающих и уходящих заявок, ограничением длины очереди, причинами ухода (например, истечением времени пребывания в очереди). Во время пребывания в очереди заявки могут изменяться (изменение структуры, значений компонент, приоритета). На рассматриваемом примере уместно пояснить понятие подтаблицы. Задание дисциплины (которая, как было сказано, по умолчанию, предполагается fifo) может быть осуществлено изменением слова fifo в основной таблице на другое допустимое слово (lifoy rand и т. д.). Однако, если пользователь не помнит множества допустимых слов или хочет задать оригинальную дисциплину, не предусмотренную ранее, он может путем набора ключевого символа перед словом DISCIPLINE в основной таблице QUEUE вызвать вспомогательную таблицу DISCIPLINE 429
(см. рис. 12.17, г). В этой подтаблице, в частности, можно задать имя определяемой новой дисциплины (вместо служебного слова «пате»), и это имя будет автоматически перенесено в таблицу QUEUE. Прибор описывается ресурсами обслуживания (каналы и время обслуживания), выделяемыми заявкам, набором параметров, которые меняются в процессе функционирования модели (рис. 12.17, д). Прибор выполняет последовательность операций над заявками (по умолчанию — одну операцию). Операция начинается непосредственно после прихода заявки (группы заявок), если не указано противное. При этом заявке выделяется определенное количество каналов, которое может зависеть от характеристик самой заявки и параметров прибора. Аналогичным образом назначается (случайное) время обслуживания. Операция заканчивается, если истекло время обслуживания или выполнено какое-либо условие, указанное пользователем после ключевых слов FINAL CONDITION (например, параметр прибора, изменяемый в процессе работы, достиг определенного значения). Операция может быть прервана несколькими способами, например, прерывания по абсолютному приоритету, отказ прибора и т. п. При этом возможны изменения параметров прибора и заявки в зависимости от вида прерывающего воздействия. Прибор может выполнять несколько операций. По умолчанию, принята прямая последовательность операций (одна за другой в порядке расположения в таблице SERVER). Однако можно задавать произвольный порядок операций, используя соответствующую подтаблицу. Блок организации взаимодействия описанных выше элементов, задается следующим образом. Описание взаимодействия проводится для каждого элемента, входящего в систему. При этом определяется множество элементов, готовых передать заявку на данный элемент, и правило приема, согласно которому выбирается элемент, передающий заявку, если таких элементов несколько в данный момент времени. Далее определяются элементы, на которые заявки могут перейти с выбранного, и правило выбора одного из этих элементов. Пользователь должен для каждого элемента (очереди или прибора) указать списки предшествующих элементов, т. е. тех, которые могут передавать ему заявки, и последующих элементов, т. е. тех, на которые он может посылать заявки. Кроме того, заполняются таблицы, описывающие правила приема и выдачи. Эти таблицы по форме близки к вспомогательным таблицам DISCIPLINE и потому здесь не приводятся. 12.3.3. Программные модули Моделирующая программа строится из типовых модулей следующих групп: модули-элементы: QUEUE — очередь, SERVER — прибор; 430
Рис. 12.20. Фрагмент моделирующей программы D31 D3K М1 СН005ЕА D11 Т SuL СН005Е8 D1M D21 Т ъгн т модули взаимодействия: CHOOSE В — выбор до, CHOOSEA—выбор после. Указанные модули образуют фрагмент моделирующей программы, который может быть соединен с другими фрагментами. Общий вид одного из таких фрагментов, на котором модули, отмеченные буквой D, являются модулями-элементами, представлен на рис. 12.20. Работа всех модулей (и модулей-элементов, и модулей взаимодействий) представляется в агрегативном виде, что позволяет в дальнейшем использовать результаты по структурным преобразованиям агрегативных моделей для преобразований моделирующих алгоритмов в целях повышения их эффективности. Модули обмениваются данными, которые удобно интерпретировать как сигналы, а переменные, описанные в модулях,— как их состояния. Сигналы, которыми обмениваются рассматриваемые типовые модули, можно разделить на четыре группы: заявки, сообщения, уведомления и императивы. Заявки — это структуры данных, представляющие собой структуру, приоритеты и другие характеристики заявок, описанные пользователем или носящие служебный характер. Сообщения — это информация об изменении состояний модулей. Уведомления — это сигналы о возможности передачи заявок. Императивы — это требования о передаче заявок или указания о начале, прерывании или окончании их обслуживания . Модули взаимодействия реализуют перемещение заявок с модулей D11, ..., DIM на модули D21, ..., D2N и управление работой последних; перемещение и управление осуществляется с помощью обмена уведомлениями и императивами на основе сообщений, поступающих от перечисленных выше модулей, а также сообщений от модулей D31, ..., D3K, D41, ..., D4L. Приведем схемы модулей, которые содержат символические описания действий, выполняемых модулями, и данных, которыми они обмениваются. Схемы модулей удобно представлять в виде деревьев (рис. 12.21). Сигналы, поступающие на модуль, указаны у ребер верхнего яруса деревьев в виде (^-сигнал). При поступлении сигнала модуль должен выполнить процедуры, указанные в узлах дерева. Однако выполняются те и только те процедуры, которые связаны с предыдущей выполняемой процедурой непомеченным ребром или ребром, помеченным условием вида (состояние), когда это условие истинно. Процедура [^/-сигнал ] означает передачу модулем сигнала. Процедура [ ] не выполняет никаких действий. Параметрами процедур являются состояния и сигналы, поступающие на модуль. 431
(x=cust-p)/ [JOIN] I h-inf] (x^give-p) [LEFT] (x^cust-p) x=give-p) [OCUP] [LEAVEJ [SERV] [STOP] [END] r ' n I I I I ' Locust] fy^infj fcinf] [CHANG6C] [CHAHGEC] [y-CUSt] I III [y^inf] [CHANGES] [CHANGLS/ [y-.inf] [y=inf] [y~inf] (*^cust-p) ••pos-i Jx=no-p) 1x=inf) [5EARCH] [CHOISEB] [list] (nond-p)/\(nd-p) [y=cust] [ANALYSES] [у-попеей] [y=give-p] / ANALYSES ] [ ] [y=give-p][y=bs-p]frsb-P][y=es-p] [ / [y=give-q][y=bs-p)[y^s-p/[yes-p] в) (x=cust) (noneed-p) (x=give-pp f(t'- inf) [y=cust] [l/st] /cho/sea] [analysfa] [ANALYSEa] (pres-p)/(по-fk (prps-q) \(nomore) (pres~p)/ \Jno-p) [y-gfvp-pj [y-no-pj J У DOS-pj / V pOS-q] J I Рис. 12.21. Схемы модулей: a — QUEUE; 6 — SERVER; в — C1IOOSEB; г — CHOOSEA QUEUE (рис. 12.21, а). При поступлении сигнала cust-p (заявка со свойством р) модуль-агрегат, состоянием которого является список заявок, с помощью процедуры JOIX ставит вновь поступившую заявку в этот список и выдает сообщение inf о происшедшем изменении состояния. При поступлении сигнала- императива give-p (дай заявку со свойством р) процедура LEFT выводит соответствующую заявку из списка и выдает сообщение об этом. 432
SERVER (рис. 12.21, б). При поступлении заявки процедура OCUP выделяет ей k (cast) каналов. По сигналу-императиву bs-p (начать обслуживание заявки со свойством р) инициируется процедура обслуживания соответствующего режима SERV, задающая время обслуживания. По сигналу-императиву ss-p (прервать обслуживание заявки со свойством р) процедура прерывает процесс обслуживания, а процедуры CHANGEC и CHANGES изменяют характеристики заявки и параметры модуля SERVER. Аналогична реакция модуля на императив es-p (закончить обслуживание заявки). По сигналу-императиву give-p заявка с соответствующим свойством покидает модуль. При всех изменениях состояния модуля, вызванных приходом сигналов, выдается информация in} об этих изменениях. CHOOSEB (рис. 12.21, в). Модуль осуществляет распределение заявок между элементами D21, ,.., D2N фрагмента и передачу требований на заявки. На распределение заявок и передачу требований оказывают влияние состояние перечисленных выше модулей и, возможно, состояние модулей D41, ..., D4L, которые передают на CHOOSEB только сообщения. Кроме того, CHOOSEB осуществляет управление переключениями начала, прерывания и окончания обслуживания. Все эти функции модуль реализует с помощью процедур изменения и анализа списка условий, формируемых из условий поступлений, начала, прерывания и окончания обслуживания. При поступлении сигнала- заявки процедура CHOISEB определяет элемент, на который заявка будет помещена. По сигналу-сообщению процедура LIST изменяет значение истинности условий, процедура ANALYSEB анализирует изменившийся список значений условий. В случае, если нет возможности перемещения какой-либо заявки на D21y ..., D2N (состояние nond), модуль не выдает никакого сообщения; если необходима заявка со свойством р, то выдается сигнал-императив give-p. Если истинны условия начала, прерывания или окончания обслуживания, выдаются соответствующие сигналы-императивы. При поступлении сигнала-уведомления pos-p (возможно перемещение заявки со свойством р) процедура SEARCH выясняет, выполняется ли условие поступления для какого-либо элемента D21, ..., D2N и если да, то выдает сигнал-императив give-p> в противном случае — сигнал noneed-p. При поступлении сигнала- уведомления по-р (нет заявки со свойством р) инициируется процедура ANALYSEB, которая при параметре nd-q может выдать сигнал-императив «дай заявку со свойством q» — give-q. Остальные действия процедуры аналогичны действиям при поступлении сигнала-сообщения inf. CHOOSEA (рис. 12.21, г). Модуль осуществляет выбор одного из модулей D11, ..., DIM, который может передать сигнал- заявку. Он осуществляет эту функцию, анализируя список условий ухода заявок из Dll> ..., DIM, который зависит от состоя- 433
ний этих модулей и модулей D31, ..., D3K. При поступлении сигнала-сообщения inf значения истинности условий могут измениться (изменение осуществляет процедура LIST). Процедура ANALYSEA в случае наличия заявки со свойством р (выполнено условие pres-p) выдает сигнал-уведомление о возможности перемещения заявки pos-p или не выдает сигнала в противном случае. При поступлении сигнала-императива give-p осуществляется выбор элемента, который содержит необходимую заявку, с помощью процедуры CHOISEA. Если такого элемента нет, выдается сигнал-уведомление по-р. При поступлении сигнала- уведомления noneed-p процедура ANALYSEA либо выдает уведомление о возможности передачи заявки со свойством qy либо, если пет возможности передачи какой-либо заявки, никаких сигналов не выдает. При поступлении заявки этот модуль передает ее транзитом на CHOOSEB. 12.3.4. Программа развертки Эта программа формирует типовые модули по описанию системы пользователем. Рассмотрим, не вдаваясь в технические подробности, принцип ее работы. При вводе очередной таблицы, описывающей концептуальный блок, начинается формирование нового модуля. Копируется схема соответствующего модуля. Модулю присваивается уникальное имя. Встретив очередное ПРАВИЛО ВЫДАЧИ, программа развертки начинает формирование нового модуля, копируя схему модуля CHOOSEA и присваивая этому модулю уникальное имя. Встретив ПРАВИЛО ПРИЕМА, программа начинает формирование нового модуля CHOOSEB аналогичным образом. Модуль QUEUE формируется по дисциплине, описанной в таблице, определяющей очередь, и ограничению на время пребывания заявки в очереди (процедуры JOIN и LEFT). Модуль SERVER формируется по описанию числа каналов, выделяемых заявкам (процедура OCUP); случайному времени обслуживания (процедура SERV); прерыванию обслуживания и изменению заявок и прибора (процедура STOP, CHANGEC и CHANGES соответственно); окончанию обслуживания (процедуры END, CHANGEC и CHANGES) и уходу заявки с модуля (процедура LEAVE). Отметим, что процедуры STOP, END и LEAVE являются стандартными и не описываются пользователем. Для задания модуля CHOOSEA необходимо сформировать список адресов модулей, влияющих на перемещение заявки и связанных с ними условий ухода. Стандартная процедура LIST изменяет значения истинности условий. Процедуры ANALYSEA и CHOISEA формируются в зависимости от ПРАВИЛА ВЫДАЧИ. В тех случаях, когда таблицы однозначно определяют перемещение заявок, используется стандартная процедура. 434
Процедуры, входящие в модуль CHOOSER, задаются аналогично, но для их задания используется ПРАВИЛО ПРИЕМА. Еще одной функцией программы развертки является подготовка описания данных для программы генерации. Эта функция здесь не рассматривается. 12.3.5. Преобразование моделирующей программы В результате работы программы развертки по информации, содержащейся в концептуальных блоках, формируется агрега- тивная система, состоящая из обменивающихся сигналами (заявками, сообщениями, уведомлениями, императивами) модулей- агрегатов, описанных в п. 12.3.4. Число таких сигналов резко возрастает с увеличением сложности системы. Пользуясь методами структурных преобразований, изложенными в п. 6.3, можно построить другую агрегативную систему, эквивалентную исходной. Формально при этом исходная агрега- тивная система компонуется в один агрегат, алгоритм функционирования которого не содержит «внутренних» сигналов, промежуточных состояний и, вообще говоря, более эффективен. Данная композиция осуществляется с помощью алгоритма синтеза реакции системы, состоящего из следующих этапов: сборки, удаления внутренних сигналов, логических и алгебраических преобразований. Опишем кратко работу алгоритма, основанного на построениях, приведенных в п. 6.3. Алгоритм строит реакцию системы на события каждого типа, т. е. события, связанные либо с поступлением сигналов извне (если моделируемая система открыта), либо с обнулением соответствующих координат. Далее событие, на которое строится реакция, считается фиксированным. Сборка. На этом этапе сначала рассматривается реакция модуля (агрегата), в котором происходит событие. Как результат этой реакции модуль может выдать выходной сигнал, адрес которого определяется в соответствии с построенной схемой сопряжения. Затем к первоначальной реакции приписывается реакция очередного модуля на этот сигнал и т. д. В результате выполнения этапа «сборка» формируется реакция всей системы на рассматриваемое событие, не содержащая никаких упрощений и включающая выдачу и прием всех промежуточных сигналов. При этом исключаются процедуры, осуществляющие адресацию и упорядочение передачи этих сигналов. Удаление внутренних сигналов. На данном этапе все промежуточные сигналы из сформированной реакции системы исключаются путем подстановки значений передаваемых сигналов в функции переходов модулей-агрегатов, на которые поступают удаляемые сигналы. В результате формируется реакция системы на рассматриваемое событие, не содержащая промежуточных сигналов. 435
Логические и алгебраические преобразования. Логические преобразования позволяют упростить полученную реакцию, что достигается путем анализа логических условий, их преобразования и исключения некоторых реакций: Иначе говоря, упрощение реакции системы заключается в устранении ветвей, которые следуют за заведомо ложными условиями, а также тождественно- истинных условий и проведении ряда логических преобразований. Отметим, что ложные или истинные условия в реакции системы могут возникнуть как результат конкретных соединений элементов системы, заданных пользователем. Например, в системе обслуживания предусматривается реакция на опустошение системы. Однако, если данная система замыкается (т. е. выходящие заявки вновь поступают на ее вход), то в рамках этой структуры опустошение системы невозможно. Алгебраические преобразования позволяют исключить промежуточные состояния, которые могут появиться в реакции системы при наличии в ней обратных связей. Кроме того, они могут упрощать чисто алгебраические выражения, участвующие в записи функций переходов, например, устранять лишние присваивания. Подобные преобразования могут проводиться не только на формально-логическом уровне, но и на макроуровне, если использовать алгебру, базирующуюся на проблемно-ориентированных операциях. Для перечисленных этапов затруднения с автоматизацией вызывают лишь преобразования, связанные с проблемно-ориентированными операциями, поскольку для их проведения следует прежде всего ввести «алгебру», порожденную этими операциями. В заключение приведем цифры, показывающие эффект от применения упомянутых этапов преобразований. Как показывает эксперимент, основные потери машинного времени связаны с организацией адресации и передачи всех сигналов через планировщик событий. После проведения этапа сборки время счета уменьшается в 10—12 раз (цифра почти не меняется в зависимости от размера модели). Однако при этом требуемый объем памяти увеличивается примерно в 1,5 раза. На этапе удаления внутренних сигналов время счета и требуемая память сокращаются приблизительно в 1,5—2 раза. Наконец, логические и алгебраические преобразования позволяют уменьшить те же параметры примерно еще в 1,4 раза.
ГЛАВА 13 МОДЕЛИРУЮЩИЕ ЦЕНТРЫ 13.1. КОНЦЕПЦИЯ МОДЕЛИРУЮЩИХ ЦЕНТРОВ Появление моделирующих центров (МЦ) обусловлено расширением областей практического применения моделирования для целей анализа, прогнозирования, оптимизации (совершенствования) сложных систем и процессов. В МЦ обеспечиваются наиболее благоприятные условия для теоретической разработки, освоения и использования прогрессивных методов и технологий моделирования с применением ЭВМ. В некотором смысле МЦ подобен производству. На его вход поступают: неформализованные «гуманитарные» описания систем, процессов, задач исследований; количественные и качественные данные о предметной области изучаемых проблемных ситуаций; программные средства, включение которых в фонды МЦ создает необходимые предпосылки для развития и совершенствования инструментально-технологической базы центра; методические материалы по вопросам моделирования, разработанные в других организациях. Основными выходами центра являются: конечные результаты моделирования; подтвержденные или опровергнутые гипотезы относительно способов организации и характера функционирования систем; количественные и качественные оценки переменных состояния систем или процессов, областей и траекторий их изменения; выводы относительно целесообразности применения тех или иных способов реконструкции систем или преобразования процессов; доказательства эффективности используемых в системах алгоритмов обработки информации, принятия решений, управления; факты, характеризующие поведение систем в разнообразных штатных и особых ситуациях, и т. п.; модели, предназначенные для имитации и вычислительных экспериментов; системы моделирования, пакеты прикладных программ, информационно-справочные и экспертные системы, базы данных, базы знаний по исследуемым проблемам; методические материалы с изложением опыта работы МЦ; 437
технология системного моделирования в условиях центра, ее теоретическое, информационное и программное обеспечение. Результаты производственной деятельности МЦ образуют три условные группы. К первой группе относятся так называемые конечные результаты моделирования. Вторую группу составляют математические модели, программные средства, информационное обеспечение и методические рекомендации, предназначенные для эксплуатации вне центра. В третью группу входят математическое, лингвистическое, информационное, методическое и программное обеспечения технологии моделирования. В некоторых случаях абоненты передают в МЦ всю совокупность задач разработки моделей, создания необходимой информационной базы и программного обеспечения исследований, планирования и проведения машинных экспериментов с моделями. Сами абоненты участвуют в работе центра как эксперты по проблеме. Их деятельность направлена на достижение необходимой степени адекватности моделей, соблюдение некоторых обязательных ограничений, сопровождение процессов разработки информационной поддержки моделирования, экспертизу результатов и формирование новых запросов в терминах проблемной области исследования. Имея дело с такими проектами, центр предоставляет абонентам только конечные результаты моделирования. Разработка и эксплуатация моделей в МЦ в этом случае продолжаются до момента полного завершения исследований, т. е. до момента их прекращения заказчиком. Абоненты могут передавать в МЦ лишь часть задач, например поручать центру только разработку математических моделей и систем моделирования. В этом случае эксплуатацию моделей и программных средств абоненты предполагают проводить самостоятельно и, как правило, вне центра. При разработке математических моделей и программного обеспечения в МЦ абоненты, как и ранее, исполняют все функции экспертов по проблеме. Кроме того, они сами являются и конечными пользователями программных средств, определяют необходимый им уровень проблемной ориентации систем моделирования, пакетов программ и средств информационной поддержки, разрабатывают и передают в МЦ контрольные примеры и условия опытной эксплуатации моделирующих комплексов, выполняемых по их заказу, осваивают предоставляемую центром документацию и методические рекомендации по проекту. Центр завершает работу над таким проектом после сдачи заказчику математического и программного обеспечения по проблеме, документации на разработанные программные средства, методических материалов по их использованию при моделировании. МЦ могут иметь различную организационную структуру, но в каждом случае деятельность центра направлена на разработку и реализацию научно обоснованных программ построения и прак- 438
тического использования прогрессивных технологий моделирования сложных систем на ЭВМ. Деятельность МЦ связана с [15] внедрением в практику системно-аналитических исследований конструктивных концепций моделирования, на базе которых оказывается возможной разработка технологий машинного анализа и синтеза сложных систем; накоплением и обобщением опыта реализации проектов больших систем программ, допускающих согласованное взаимосвязанное и взаимообусловленное применение этих систем и любых их компонент в процессе решения прикладных задач машинного моделирования; созданием прогрессивных технологий системных исследований. Моделирование охватывает процессы построения математических моделей для вычислительных и имитационных экспериментов на ЭВМ и собственно проведение таких экспериментов. В МЦ должны разрабатываться, осваиваться и применяться специальные технологии проведения машинных экспериментов, поддерживающие построение и применение в ходе исследований ансамблей различных имитационных моделей и моделей численного анализа. Эти технологии вместе с соответствующим математическим, лингвистическим, информационным и программным обеспечением образуют в МЦ две основные его лаборатории — вычислительную и имитационную. Согласованная работа обеих лабораторий возможна при достижении в МЦ высокого уровня организации и автоматизации всех видов вычислительных процессов, процессов накопления, сохранения и использования данных (знаний), процессов формирования отношений связи и отношений моделирования между понятиями, данными, моделями и программами. Технология системного моделирования развивается в МЦ в двух основных направлениях [13, 14, 15, 49]. Первое из них непосредственно связано с концепцией и формальными схемами системного моделирования, второе — с проблемами автоматизации процессов разработки проблемно-ориентированных программных средств и обеспечением интерактивных режимов использования этих средств в прикладных исследованиях. Оба направления необходимо рассматривать и развивать во взаимосвязи, оценивая при этом конструктивность используемых в МЦ специальных приемов моделирования, достижения центра в вопросах технологии разработки прикладного программного обеспечения, возможности МЦ в плане организации и поддержки эффективных способов ведения диалога пользователей всех уровней с ЭВМ. МЦ — это коллектив программистов-профессионалов и системных аналитиков, комплекс технических средств, проблемно- ориентированное программное обеспечение, базовая система языковых и программных средств, в совокупности образующие целостную систему, назначение которой состоит в разработке, со- 439
вершенствовании и практическом применении технологии системных исследований на ЭВМ. От проекта к проекту, от задачи к задаче в МЦ накапливается опыт моделирования в определенной предметной области, создаются банки моделей, базы данных (знаний), расширяется состав и обеспечиваются необходимые степень взаимодействия и уровень проблемной ориентации применяемых пакетов прикладных программ (ППП), систем управления базами данных (СУБД), систем моделирования (СМ), создается единый комплекс взаимодействующих средств программирования базовых функций (СПБФ), развиваются специальные технологии отладки и диагностирования больших программ, вырабатываются, обосновываются и закрепляются приемы работы с машинными моделями. К проблемно-ориентированному обеспечению МЦ относятся математическое, лингвистическое, информационное и программное обеспечения, В состав математического обеспечения входят совокупность применяемых в МЦ математических моделей, методов алгоритмизации, методов теории и технологии проведения системных исследований на ЭВМ, методов обработки данных и отображения результатов имитационных и вычислительных экспериментов. Лингвистическое обеспечение включает формализованные языковые средства, с помощью которых в МЦ организуется взаимодействие различных по своей профессиональной подготовке групп специалистов (сотрудников и абонентов центра) и достигается высокая эффективность использования ЭВМ при реализации прикладных проектов. Информационное обеспечение МЦ состоит из систематизированных справочных и фактографических данных, результатов вычислительных экспериментов и обработки траекторий изменения переменных имитационных моделей. Систематизация информационного обеспечения проводится в МЦ в целях представления всех сохраняемых данных в виде баз данных и баз знаний. Программное обеспечение МЦ объединяет в себе программные реализации алгоритмов решения задач моделирования. При разработке компонент программных средств центра используются процедурно-ориентированные системы программирования (ПОСП), СМ и СУБД. Совместное использование в МЦ разнородных программ, построенных на основе СПБФ центра, обеспечивает базовая система языковых и программных средств МЦ (БСМЦ), представляющая собой системно организованную совокупность средств программирования базовых функций, средств интеграции и проблемной ориентации [6, 15]. Базовое и прикладное программное обеспечение МЦ организуется таким образом, чтобы уже на концептуальном уровне конечного пользователя операционная среда центра представляла собой и воспринималась бы как единая целостная многофункциональная система программных средств. Этот факт является ха- 440
рактерным признаком МЦ, определяющим возможности сотрудников центра и его абонентов в плане создания на базе МЦ проблемно-ориентированных комплексов программ моделирования и автоматизации управления этими комплексами во время решения прикладных задач с использованием технологии системного моделирования. На практике этот признак МЦ означает, что концептуальные уровни языков заданий пользователей обеспечиваются в условиях центра полным интерфейсом между любыми интересующими их программными компонентами и данными из фондов МЦ. Как уже отмечалось, в исследовательском коллективе МЦ, выполняющем заказы абонентов, действуют три группы специалистов: системные аналитики; прикладные программисты; системные программисты. Абоненты центра и системные аналитики осуществляют содержательную постановку задач в терминах предметной области и вместе формируют лингвистическое и информационное обеспечение по проблеме. Формальную постановку задач и разработку соответствующего математического и алгоритмического обеспечения для их решения выполняют системные аналитики. Деятельность системных аналитиков направлена на построение машинно- ориентированных описаний моделируемых проблемных ситуаций и разработку машинной технологии их исследований. Решение задач в МЦ позволяет абонентам: освободиться от выполнения несвойственных им функций, связанных с построением систем машинных моделей и разработкой вопросов технологии моделирования по интересующей их проблеме; уменьшить совокупные затраты времени, труда и других ресурсов на создание проблемно-ориентированного программного обеспечения при гарантированном высоком научно-техническом уровне разрабатываемых для них в центре программных средств; получить необходимые программные средства в виде законченных разработок, имеющих все обеспечивающие успешную работу технологические и сервисные компоненты, документацию, инструктивные и методические материалы. МЦ предоставляет своим пользователям адекватные средства для передачи исходных данных без существенного предварительного их переоформления или перепрограммирования, т. е. в той же самой концептуальной проблемно-ориентированной и методо- ориентированной форме, в которой эти данные были получены на начальных этапах разработки проблемы до момента обращения абонентов в центр моделирования. Центр обеспечивает своих пользователей необходимым набором средств, поддерживающих привычные для них режимы работы (использование программ, написанных на известном пользователю алгоритмическом языке или языке моделирования, собственных библиотек пользователя и имеющихся в его распоряжении 441
Абоненты 4, 1 1 Системные аналитики 1 1 4 U 1 т Прикладные программисты. i 6 \ \ 5 1 Системные программис ты Рис. 13.1. Схема организации взаимодействия абонентов и специалистов МЦ баз данных и др.). Однако индивидуально выполняемая пользователем работа, являющаяся единственно возможной формой проведения работ в условиях вычислительных центров, нежелательна и неэффективна в МЦ. Самостоятельное обращение пользователей к средствам центра потребовало бы от него серьезных знаний и навыков в области программирования. В случае же решения сложных задач удельный вес трудозатрат на программирование резко увеличивается, поскольку создание сложных моделирующих программ само по себе часто является проблемной задачей. Пользователь начинает самостоятельно работать в МЦ (или вне МЦ) тогда, когда ему будут предоставлены специально изготовленные проблемно-ориентированные программные средства моделирования. Эти средства должны быть достаточно совершенными и удобными для работы с ними пользователей-непрограммистов. Выбор необходимого прикладного программного обеспечения (ППО), составление технологических схем проведения вычислительных и имитационных экспериментов с моделями, отбор проблемно-ориентированных языков, решение вопросов программирования диалогов, выявление состава библиотек программ, необходимых в процессе исследований, а также определение состава и содержания инструктивных, методических материалов и документации на передаваемые абонентам программные средства — все эти работы выполняются в МЦ системными аналитиками совместно с прикладными программистами. В МЦ создается и постоянно расширяется собственный фонд прикладных программных средств. Работу по проектированию, реализации, отладке, документированию и сопровождению единиц этого фонда выполняют прикладные программисты. Взаимодействие абонентов и сотрудников МЦ, содержание выполняемых в центре работ объясняет рис. 13.1, где / — описание проблемных ситуаций, передача фактографической информации, формулирование целей исследований, выбор критериев и оценок; 2 — обособление систем, выявление экстраординарных и нормальных режимов функционирования систем, выделение основных элементов и подсистем, составление программ функционирования элементов и подсистем, назначение связей между элементами и подсистемами, определение целей моделирования проблемных ситуаций, построение графов задач моделирования; 3 — описание систем моделей, отвечающих графам задач моделирования, разработка схем исследований проблемных ситуа- 442
Таблица 13.1. Этапы технологической подготовки машинных исследований в МЦ Этап Исходные данные Конечные результаты Обособление Стратификация Формализация Программирование Основные элементы, связи, подсистемнк Основные и вспомогательные процессы. Информационный обмен Граф задач моделирования. Структура и семантика понятий предметной области. Структурные схемы принятия решений, управления и обработки данных Графы предметных областей. Формализованные базовые понятия. Способы порождения и реконструкции понятий. Сценарии машинных экспериментов с имитационными и вычислительными моделями. Переменные — состояния, входные, выходные, оценочные, дополнительные Технологии программирования в МЦ. Программный и информационный фонды центра. Результаты этапа формализации. Цели исследования, критерии, оценки. Моделируемые проблемные ситуации. Нормальные и экстраординарные режимы. Пользовательское описание информационного обеспечения Система вычислительных и имитационных моделей. Способы доступа и формы организации диалога. Структура пространства состояний и временной базис. Инфологическая модель базы данных имитационных и вычислительных экспериментов. Общие и специальные требования к архитектуре системы моделей Вычислительные и имитационные модели. Связи моделей по данным. Схемы диалогов. Организация ввода-вывода. Модели планирования и обработки данных вычислительных и имитационных экспериментов. Логические модели баз данных системы моделей Интерактивная проблемно-ориентированная СМ, ППП, базы данных и базы знаний по проблеме. Новые системные программы ций на основе системы моделей: построение моделей, составление схем решения задач имитационного и вычислительного экспериментов с моделями, планирование экспериментов, подготовка информационного обеспечения исследований; 4 — разработка архитектуры ППО: выбор проблемно-ориентированных языков; обоснование структуры, содержания и средств программной поддержки интерактивных режимов работы; выбор и обоснование технологических схем моделирования; проектирование информационного обеспечения; определение состава и планов проведения машинных экспериментов с моделями; согласование вида и содержания методических материалов, инструкций и документации; 5 — реализация моделирующих программ на базе стандартных технологий и фондов МЦ; составление заявок на расширение этих фондов; 443
6 — отладка систем моделирующих программ, составление тестовых задач и испытание моделей, доработка проектов систем моделей, передача созданного в МЦ программного обеспечения абонентам, включение новых прикладных и системных программ в фонды МЦ. Основными технологическими этапами решения задач в МЦ являются: обособление, стратификация, формализация, программирование, проведение машинных экспериментов с моделями, обработка данных, верификация и передача результатов. Некоторое представление о характере исходных данных и конечных результатах первых четырех технологических этапов моделирования можно получить из табл. 13.1. Главной отличительной особенностью и одновременно основной целью организации МЦ является возможность осуществления в его условиях комплексных научных программ в направлении создания и внедрения прогрессивных технологий и соответствующего программного обеспечения моделирования. Эти научные программы самым непосредственным образом связаны с проблемами рационализации методов и приемов моделирования сложных систем на всех этапах выполнения заданий в МЦ. Указывая пути и способы решения сложных задач анализа, прогнозирования, оптимизации и проектирования систем, создаваемая в МЦ технология позволяет на теоретическом уровне разрабатывать концептуальные схемы моделирования проблемных ситуаций, а на конкретном практическом уровне — разрабатывать и применять интегрированные интерактивные ППП, необходимые для эффективной реализации концептуальных схем решений в условиях хорошо обеспеченного диалога пользователя с ЭВМ. 13.2. БАЗОВАЯ СИСТЕМА ЯЗЫКОВЫХ И ПРОГРАММНЫХ СРЕДСТВ МОДЕЛИРУЮЩЕГО ЦЕНТРА Организация, состав, особенности развития и возможности использования инструментальных программных средств МЦ обусловлены: требованиями, предъявляемыми к программному обеспечению; применяемой в центре технологией моделирования; предметной областью и характером тех прикладных проблем, для решения которых создается программное обеспечение МЦ; необходимостью совершенствования и расширения программного и информационного фондов центра для наиболее эффективной работы специалистов МЦ при проектировании и реализации прикладных средств моделирования. 13.2.1. Архитектурные принципы построения Базовая система языковых и программных средств МЦ (БСМЦ) является основой для разработки и эксплуатации ПГЮ центра 16, 14, 151. БСМЦ должна поддерживать интерактивный и иа- 444
Кетный режимы работы, основанные на общих машинно-независимых методах управления программами и данными. Для разработки НПО (в состав которого входят различные ППП и СМ сложной структуры) в БСМЦ необходимо иметь средства проблемной ориентации, которые в сочетании с интерактивными возможностями обеспечивают необходимые условия для организации диалога пользователей с ЭВМ на требуемом концептуальном уровне. Разрабатываемое на основе БСМЦ проблемно-ориентированное программное обеспечение должно быть открытым для расширения, т. е. допускать включение новых и модернизацию существующих компонент, их совместное использование для решения комплексных задач. Это условие естественно вытекает из необходимости непрерывного развития и совершенствования программных фондов центра. Разработка НПО в МЦ должна осуществляться в машинно- независимой форме. Набор машинно-независимых инструментальных средств БСМЦ должен быть достаточным, чтобы такое требование выполнялось. В случае машинно-независимой реализации ППО упрощаются коммуникация и обучение пользователей, облегчается обмен готовыми разработками, а также самостоятельное сопровождение и модификация чужих разработок, поскольку используется единая концептуальная основа для разработки ППО. Применение машинно-независимых инструментальных средств способствует типизации разработок и расширяет возможности использования стандартных технологий. В БСМЦ должна быть предусмотрена возможность интегрированного использования (на машинно-независимой основе) языковых и программных средств различных типов (ПОСП, СМ, СУБД). Это условие связано с необходимостью всякий раз при проведении работ в МЦ выбирать наиболее адекватный инструмент для построения ППО. Например, вычислительные модули могут программироваться на процедурно-ориентированных языках, а имитационные модули — на языках моделирования. Программное обеспечение, для создания которого используется БСМЦ, должно обладать свойством модульности, под которым понимается высокая степень взаимной независимости разработки и использования отдельных компонент и подсистем. В БСМЦ необходимо обеспечить преемственность по отношению к существующим программным средствам (ПОСП, СМ, СУБД, прикладным программам). Преемственность означает допустимость возможно более широкого применения в БСМЦ уже существующих программных средств, разработанных вне МЦ. Совокупность рассмотренных нами условий, вообще говоря, задает некоторый класс базовых систем. Поиск конкретных форм реализации БСМЦ составляет задачу разработки ее архитектуры. 445
13.2.2. Запоминающая среда В любой сложной программной системе интегрирующую функцию выполняет определенным образом организованная запоминающая среда. Основными типами логической организации памяти, используемыми в инструментальных системах программирования, являются файловые системы, СУБД, интерактивные среды и системы обработки концептуальной информации (СОКИ). Средства работы с файловыми системами [52] имеются практически во всех языках программирования высокого уровня. Они представляют собой специальные языковые конструкции для манипулирования данными, размещенными в файлах. Языковые средства, поддерживающие взаимодействие пользователей с СУБД, обычно строятся как расширения языков программирования. Известны примеры реализации на основе языков программирования и СУБД систем, по некоторым своим возможностям близких к системам класса БСМЦ. Характерным представителем систем этого вида является разработанная для ЕС ЭВМ система АПЛ/ОРАКУЛ/СИМУЛА-67. Интерактивная среда [15, 37] хорошо обеспечивает решение задач в режиме диалога, автоматическое размещение данных и программ в памяти ЭВМ, сохранение данных при завершении сеансов работы. Пользователь, работающий с интерактивной средой, избавлен от решения вопросов распределения памяти и программирования операций обмена, так как обращение к данным в интерактивной среде происходит только по их именам. В качестве примеров программных средств, использующих интерактивную среду, можно привести АПЛ [18, 25], СЕТЛ [33], систему программирования ДИАМС [42], БСМЦ СОД/СИМ [61. СОКИ предоставляют пользователю большие возможности по организации хранения, анализа и обработки семантической информации, дедуктивному выводу, организации диалога на языке, близком к естественному. Такие системы иногда называют интеллектуальными ППП, решателями интеллектуальных задач, системами искусственного интеллекта [32], банками данных для принятия решений [28]. В качестве примеров реализации СОКИ можно назвать информационно-логическую систему ДИЛОС [9, 21 ] и информационно-дедуктивную систему ВОПРОС—ОТВЕТ—2 [11, 12]. Функции центрального звена системной организации БСМЦ наилучшим образом выполняет интерактивная среда. СОКИ целесообразно использовать в совокупности с интерактивной средой, включая ее в БСМЦ в качестве надстройки над интерактивной средой (см. п. 13.3). Свойства интерактивной среды играют определяющую роль при разработке БСМЦ. Благодаря интерактивной среде в БСМЦ выполняются наиболее важные из приведенных в п. 13.1 требований: обеспечиваются хранение данных, управление программами 446
и данными, организация диалоговых режимов работы; на машинно- независимой основе осуществляется интеграция языковых и программных средств различного вида; создаются необходимые условия для реализации комплекса «Интерактивная среда— соки». Интерактивный режим работы и возможность выполнения в системе диалоговых процедур решения задач системного моделирования обеспечиваются в БСМЦ с интерактивной средой допустимостью прерывания вычислительного процесса по запросу пользователя. Состояние прерванного процесса автоматически сохраняется, и он может быть при необходимости вновь активирован, начиная от момента прерывания. Другие свойства — модульность, расширяемость, возможность использования независимо разработанных компонент ППО — обусловлены в БСМЦ характерными для интерактивной среды процессами динамического связывания программ и данных. Понятие интерактивной среды является достаточно общим для диалоговых систем [15]. Областью интерактивной среды называется множество именованных программ и данных X ¦¦= {х\, где х — элемент области X. Каждый элемент есть тройка х — = (я, ty v), где я ? N — имя элемента; t ? Т — тип элемента (например, массив, программа); v ? Vt — значение элемента; N — множество допустимых имен элементов; Т — множество допустимых типов; Vt — множество допустимых значений типа t. Элементы области имеют несовпадающие имена: я' = я" ->• ->¦ х' = х\ Область может находиться в одном из двух задаваемых пользователем состояний — открытом или закрытом. Когда область открыта, все ее элементы являются прямодоступными. Доступ к элементам осуществляется непосредственно по их именам без использования каких-либо операций доступа. В открытой области пользователь может определять новые и удалять старые элементы. При закрытии области все определенные в ней элементы автоматически сохраняются таким образом, что становятся доступными только при новом открытии области. Повторное определение элементов, сохраняемых в области, не требуется, поскольку все они содержат описание типа t, т. е. являются самоопределенными. Открытие и закрытие областей, определение и удаление элементов, активизация различных операций над ними выполняются на основе сообщений, формулируемых пользователем на специальном языке, обеспечивающем управление интерактивной средой. Идентификаторы элементов указываются непосредственно в предложениях такого языка. Каждое сообщение характеризуется множеством идентификаторов I — Щ в нем содержащихся. Лаконичность сообщений обеспечивается тем, что элементы областей являются самоопределенными и прямодоступными. Следовательно, нет необходимости всякий раз их описывать и указы- 447
вать пути доступа к ним. Связывание идентификаторов, указанных в сообщениях, с конкретными элементами областей выполняются через механизм непосредственного связывания. Правила связывания очевидны, если допускается работа только с одной открытой областью X. Идентификатор i связывается с элементом х -^ (п, t, и), когда i — /г. В многообластной интерактивной среде правила связывания более сложные. В этом случае связывание может осуществляться как на основе явной квалификации идентификатора именем соответствующей области, так и неявным способом, например, путем упорядочения областей. В ЛПЛ используется однообластная интерактивная среда, в системе программирования ДИАМС — двухобластная среда, в БСМЦ СОД'СИМ допускается многообластная интерактивная среда. Применение многообластной интерактивной среды целесообразно, если требуется обеспечить одновременную работу с несколькими областями и при этом некоторые области желательно делать доступными сразу нескольким пользователям или когда не удается реализовать область, допускающую все необходимые типы элементов. 13.2.3. Средства проблемной ориентации Необходимый для пользователей МЦ концептуальный уровень взаимодействия с ЭВМ достигается за счет включения в БСМЦ специальных средств проблемной ориентации. Перспективным направлением развития архитектуры программного обеспечения центра в направлении совершенствования используемых в нем средств проблемной ориентации является включение в состав программных средств центра СОКИ, например, путем соответствующей надстройки БСМЦ. С использованием СОКИ в системе обеспечивается возможность организации диалогового обмена информацией между пользователем и ЭВМ на ограниченном естественном языке. В качестве типовых средств проблемной ориентации БСМЦ можно применять языки, допускающие проблемно-ориентированные расширения, метасистемы и макросредства. Наибольшее предпочтение обычно отдается макросредствам. Поддерживаемый с их помощью диалог во многих случаях полностью отвечает запросам пользователей. Рассмотрим вопрос о средствах проблемной ориентации БСМЦ на примере его решения в СОД/СИМ [6, 15, 49]. Взаимодействие с конечными пользователями в этой системе обеспечивается с помощью универсального текстового макропроцессора (макрогенератора). Он может работать с любым базовым языком, допускает согласованную генерацию текстов в несколько потоков вывода, имеет непроцедурные средства условной генерации. С позиций организации диалога использование нескольких потоков вывода обеспечивает одинаковый концептуальный уровень входных и выходных сообщений и одновременное отображение предложений проблемно-ориентированного языка в задан- 448
Рис, 13.2. Генерация в несколько потоков вывода: 1 — задание на проблемно-ориентированном языке; 2 — библиотеки проблемных макрокоманд; 3 — комментарии и диагностика; 4 — макрогенератор СОД/СИМ; 5 — задание на ЯУПД; 6 — программа на ФОРТРЛНе; 7 — программа на ПЛ/1; 8 — монитор СОД/СИМ; 9 — транслятор ФОРТРАНа; 10 — транслятор ПЛ/1; 11 — результаты, комментарии, диагностика; 12 — библиотеки загрузочных модулей; 13 — страничные файлы ное число языков более низкого уровня. Генерация в несколько потоков вывода позволяет реализовать транслирующую функцию G : L0-> LXX xL2 x ... xLn, где L0 — проблемно-ориентированный язык, a Lx, L2, ..., Ln — объектные языки (языки программирования базовых функций и язык управления программами и данными СОД/СИМ). Для надежной связи с конечным пользователем в одном из потоков вывода генерируется комментирующий текст на языке, концептуальный уровень которого соответствует L0. Как осуществляется декомпозиция запроса на проблемно-ориентированном языке в задания и программы на языках более низкого уровня, иллюстрирует рис. 13.2. Комментирующий текст направляется в отдельный поток вывода на печать или устройство отображения и удостоверяет запрос на том же самом концептуальном уровне, на котором он был сделан. Согласованная генерация в несколько потоков вывода и наличие обратной связи на уровне проблемно-ориентированного языка обеспечивают эффективное управление процессами системного моделирования со стороны конечного пользователя МЦ. Непроцедурные средства условной генерации предназначены для разработки ППП сложной структуры с автоматическим планированием вычислительного процесса. С помощью этих средств реализуются функции вида Q : (В, S, ?>)-> ТХТ, где В - = = \rh i = 1, п) — блок правил вывода; rt = (С;, INt, OUTt, Tt) — правило вывода; Ct — условие применимости правила, зависящее от значений переменных периода генерации; INi} OUTi — множества исходных и результирующих высказываний правила вывода; TL — прикрепленный к правилу вывода текст; S, D — исходное и результирующее множества высказываний запроса; TXT = (#f, H2, ..., Н1т) — последовательность, элементы которой Н) = Тс'у j = 1, m; i = 1, п\ m <^ n. 449
Рис. 13.3. Фрагмент графа предметной области ППП ДОСТИЖИМОСТЬ: рх — граф; р2 ~ " полустеиснн вершин; р3 — матрица достижимости; рА — матрица расстояний; рь — слабые компоненты; р8 — односторонние компоненты; р? — сильные компоненты; р8 — граф конденсаций; р9 — базы графа; р,0 — антибазы графа; plt — порядковая функция; р12 — функция Гранди Порядок следования элементов в последовательности ТХТ определяется правилами: 1) S0 - S; 2)Sm=>D; 3) [Я; 6 TXT)^ [lNt c= S/_,]; / = 1, т; 4) [Н) 6 ТХТ]^ [Sj^- S7_i U OUTt]; j = 1, m; 5) S;.i cz S;-; / = 1, m; 6) [Я^ГХГ]-^ [С* = 1]; /= 1, m; 7) ГХГ—минимальна; это правило означает, что не существует другой более короткой последовательности, удовлетворяющей правилам 1—6, все элементы которой содержатся в ТХТ. Предметные области ППП могут быть описаны двудольными графами, с помощью которых исчерпывающим образом задаются вычислительные отношения между задачами (^-вершины) и понятиями (р-вершипы) предметной области [24, 50]. Пример графа предметной области ППП ДОСТИЖИМОСТЬ, входящего в состав ППО СОД/СИМ, приведен на рис. 13.3. Пакеты в СОД/СИМ представляют собой совокупности проблемных макрокоманд и модулей. Проблемные макрокоманды определяют входной язык ППП и автоматически обеспечивают правильное обрат щение к модулям пакета и междумодульный интерфейс. При использовании ручного планирования вычислительного процесса каждой задаче (операции) предметной области соответствует отдельная макрокоманда. В случае автоматического планирования — каждой совокупности связанных р-вершин отвечает макрокоманда, в которой используются непроцедурные средства условной генерации. С помощью этих средств автоматически строится последовательность вычислений на основании заданных конечным пользователем исходных данных и требуемых результатов. 450
13.2.4. Средства программирования базовых функций Выбор СПБФ обусловлен требованиями, предъявляемым к БСМЦ, по обеспечению преемственности ППО центра по отн< шению к существующим языковым и программным средства системного моделирования. Этот выбор проводится на множести реально действующих ПОСП, СМ и СУБД с учетом их возмол ностей, характеристик и особенностей реализации. В БСМЦ щ лесообразно использовать наиболее известные и широко рас пространенные на практике ПОСП (ФОРТРАН-IV, ПЛ/1 ПАСКАЛЬ), а также СМ и СУБД, построенные на их основе. Возможность непосредственного применения в БСМЦ де? ствующих ПОСП, СМ и СУБД определяется достигнутой в си стеме степенью полноты интерфейса. Неполный интерфейс по дан ным, удовлетворяющий значительному числу приложений, в< многих случаях может быть реализован без введения каких-либ< вспомогательных средств путем передачи данных через списю параметров. Полный интерфейс по данным между проблемным) программами и интерактивной средой обеспечивается в BCML с помощью аппарата редактирующих препроцессоров. Редактирующие препроцессоры хорошо известны в настоящее время. Они используются для расширения возможностей базовы: языков (например, в препроцессорных СМ с базовыми языками) в специализированных системах программирования с базовым! языками (например, большая группа языков обработки графо! [14]), в СУБД для реализации языков манипулирования дан ными. Развитие СПБФ в БСМЦ связано с включением новых ре дактирующих препроцессоров базовых языков в разряд ПОСП обслуживаемых интерактивной средой. Подход к разработке редактирующих препроцессоров БСМЕ основан на использовании стандартных средств базовых языкое для работы с данными в интерактивной среде. Операторы, управляющие редактированием, не входят в алгоритмическую часть программы, а размещаются среди описаний программы в виде комментариев, распознаваемых редактирующим препроцессором. Такой подход упрощает использование редактирующих препроцессоров, облегчает адаптацию готовых программ к условиям БСМЦ, повышает общезначимость (типовость) ППО, разрабатываемого на основе БСМЦ. 13.3. БСМЦ СОД/СИМ СОД/СИМ предназначена для: построения моделей различных классов на базе адекватных языковых и программных средств; предоставления прикладным и системным программистам операционной среды, в которой решение задач моделирования поддерживается наиболее адекватными языковыми и программными средствами; 451
Рис. 13.4. Состав БСМЦ СОД/СИМ предоставления конечным пользователям и системным аналитикам специальных средств для эффективного управления процессами моделирования на концептуальном уровне исследуемой проблемной области; разработки компонент ППО системного моделирования на базе интеграции возможностей разнообразных СПБФ МЦ. В состав СОД/СИМ входят (рис. 13.4): средства интеграции — монитор и редактирующие препроцессоры; средства проблемной ориентации — макрогенератор; СПБФ — различные ПОСП, СМ и СУБД. Средства интеграции выполняют общие функции управления программами и данными, обеспечивают интерфейс по управлению и данным между компонентами ППО МЦ. Средства проблемной ориентации позволяют организовать взаимодействие пользователя с компонентами ППО на проблемно-ориентированном концептуальном уровне, СПБФ используются в качестве инструментальных средств построения моделирующих программ, программ решения вычислительных задач, информационного обслуживания, разработки модулей ППО. В СОД/СИМ выполняются большинство из предъявляемых к БСМЦ требований: разработка ППО осуществляется машинно- независимыми средствами; ППО обладает свойствами модульности и расширяемости; обеспечивается преемственность ППО по отношению к существующим программным средствам — ПОСП, СМ, СУБД и прикладным программам, созданным в этих системах; пользователям предоставляются специальные средства для управления программами и данными в интерактивной среде, средства проблемной ориентации и диалогового взаимодействия, а также возможность интегрированного использования на машинно-независимой основе различных СПБФ. 13.ЗЛ. Монитор СОД СИМ Монитор выполняет функции управления программами и данными в многообластной интерактивной среде. В ОС ЕС область интерактивной среды СОД/СИМ представляется двумя наборами данных — страничным файлом и библиотечным набором данных. 452 БСМЦ С ОЛ / С И М PpQiuiypibie компоненты ( реастЬа интеграции Монитор Редактирующие препроцессоры / 'ред(тви проблемной ориентации Макрогенератор Подключаемые компоненть! Средства сервиса Утилиты 6СМЦ Утилизы (К С П5Ф пот см СУЬй .J!
Страничный файл представляет собой набор данных прямого доступа, в котором содержатся данные и описания программ. Собственно загрузочные модули программ размещаются в библиотечном наборе. Интерактивная среда СОД/СИМ ориентирована на применение следующих структур данных: арифметических и логических переменных, однородных массивов всех фортрановских типов и соответствующих типов ПЛ/1; битово-строчных и литерно-строч- ных переменных, однородных массивов постоянной и переменной длины, соответствующих строковым типам ПЛ/1; потокоориенти- рованных файлов с произвольным доступом. Описания программ в страничном файле содержат сведения о типе программы, языке программирования, способе загрузки. Эти данные позволяют автоматизировать обращение к программам, размещенным в области интерактивной среды. Для программирования заданий, выполняемых под управлением монитора в многообластной интерактивной среде, используется машинно-независимый язык высокого уровня интерпретирующего типа — язык управления программами и данными (ЯУПД). В ЯУПД имеются следующие операторы: открытия и закрытия областей, определения конфигурации многообластной интерактивной среды, манипулирования с элементами открытых областей. Обращение к элементам каждой открытой области выполняется непосредственно по их именам без программирования операций ввода-вывода. Элементы, размещенные в закрытых областях, автоматически сохраняются. При открытии ранее закрытых областей содержащиеся в них элементы не требуют повторного описания. При необходимости могут быть определены данные временного хранения. Они автоматически уничтожаются при завершении сеанса (или шага) работы. Для инициализации вычислительных процессов в интерактивной среде ЯУПД снабжен арифметическими и логическими операциями, а также управляющими операторами, распространенными в языках высокого уровня. Предлагаемые в ЯУПД типы данных совместимы с типами данных языков ПЛ/1 и ФОРТРАН-IV. ЯУПД обеспечивает в интерактивной среде интерфейс по данным и управлению между программами, написанными на этих языках. При выполнении заданий, написанных на ЯУПД, происходит динамическое связывание идентификаторов, указанных в тексте задания, с элементами интерактивной среды. При связывании автоматически реализуется отображение Ф: (Рт, п) -*- ~> (t, х)у где Рт ? Р\ Р — множество конфигураций интерактивной среды; t — тип, ах — значение элемента с именем п такого, что (/г, U х) € Рт- В случае необходимости программист может контролировать динамическую связь. Для этого он использует специальную под- 453
программу, встроенную в ЯУПД. С ее помощью выполняется модификация отображения Ф и обеспечивается возможность многократного связывания различных элементов интерактивной среды с одним и тем же идентификатором. Оператор объявления элементов в ЯУПД является выполняемым. Оператор вызова программы обеспечивает ее динамическую загрузку и передачу ей параметров в формате того языка, на котором написана программа. Монитор может загружать программу автоматически, либо под управлением пользователя. Автоматическая загрузка выполняется «по запросу», после загрузки программа остается в основной памяти. При дефиците памяти из нее удаляются все загруженные по запросу программы. Задание на ЯУПД состоит из последовательности шагов. Оно загружается и выполняется по шагам. Разбиение задания на шаги позволяет более гибко управлять ресурсами ЭВМ в процессе выполнения задания. Каждый шаг задания представляет собой некоторую последовательность операторов ЯУПД. При завершении шага задания оперативная память очищается от программ и данных, использованных при выполнении данного шага. Передача данных от шага к шагу осуществляется только через области интерактивной среды. ЯУПД содержит средства высокого уровня, обеспечивающие программирование междумодульного интерфейса в ППП: автоматического распределения оперативной памяти; автоматической загрузки и обращения к программам, написанным на разных языках программирования; автоматического распределения внешней памяти на устройствах с прямым доступом; автоматического поиска данных во внешней памяти; неявного автоматического обмена данными между внешней и оперативной памятью. Применение ЯУПД при программировании ППП обеспечивает ряд преимуществ разработчикам и пользователям. Преимущества разработчика: существенно упрощается программирование междумодульного интерфейса в ППП, так как имеющиеся в ЯУПД средства управления основной памятью, программами и данными исключают необходимость в специальном программировании этих действий при разработке между модульного интерфейса в пакетах программ; в тех случаях, когда модули ППП программируются на машинно-независимых языках, пакет, разработанный с использованием ЯУПД, получается машинно-независимым; снижаются трудозатраты на построение ППП из модулей, написанных на ПЛ/1, ФОРТРАН-IV и языках моделирования, для которых ПЛ/1 и ФОРТРАН-IV являются базовыми языками; упрощается разработка многоэтапных итеративных вычислительных процессов за счет использования областей ЯУПД; обеспечиваются модульность и расширяемость ППО, возможность интеграции при разработке ППО независимо создаваемых 454
программных компонент за счет использования динамического связывания элементов интерактивной среды с идентификаторами программ на ЯУПД, Преимущества пользователя: облегчаются изучение и освоение ППП (во всех пакетах, реализованных с использованием ЯУПД, применяются одинаковые принципы управления программами и данными); упрощаются модификация ППП и подключение собственных программ пользователя (междумодульный интерфейс программируется на языке высокого уровня); обеспечивается возможность совместного использования различных ППП при решении комплексных задач. В наиболее развитой версии ЯУПД дополнительно реализуется возможность расширения языка за счет включения в него операторов определения и использования процедур (включая рекурсивные) и процедур-функций. Кроме того, обеспечивается возможность эффективной организации интерактивных режимов взаимодействия пользователей с ППО. Необходимым условием здесь является выполнение ограничений на моменты прерывания вычислительного процесса. Прерывание допустимо только в тех точках, в которых состояние вычислительного процесса может интерпретироваться на концептуальном уровне пользователя. Совокупность точек прерывания и информация, сохраняемая до момента возобновления момента вычислений, зависят от особенностей прикладных программ. В силу этого функции по организации прерываний возлагаются как на программное обеспечение БСМЦ, так и на интерактивные ППП, входящие в состав ППОМЦ. Интерактивные ППП должны обеспечивать прием запросов пользователя на прерывание вычислительного процесса в интерактивной среде; формирование в ближайшей точке прерывания области сохраняемой информации и области информации пользователя, позволяющей идентифицировать состояние вычислительного процесса в точке прерывания; передачу управления специальной компоненте БСМЦ. Базовая система берет на себя функции по передаче ППП запросов пользователей, сохранению сформированных областей информации, уничтожению прерванного процесса, передаче необходимой информации пользователям. Для управления интерактивным процессом используются директивы, позволяющие прервать, уничтожить или активизировать вычислительный процесс в интерактивной среде, передать данные процессу. 13.3.2. ППО БСМЦ СОД/СИМ ППО создается на основе ППП различных уровней сложности: расширяющих библиотеки; с автономными программами; с произвольной или фиксированной последовательностью обращений к модулям. 455
Таблица 13.2. Классификация уровней сложности структур ППП Наличие средств автоматического планирования вычислительного процесса Есть Нет Наличие проблемно-ориентированного языка Есть ППП сложной структуры с фиксированной последовательностью обращений к модулям ППП сложной структуры с произвольной последовательностью обращений к модулям Нет — ППП простой структуры ППП, расширяющие библиотеки, и ППП с автономными программами относятся к пакетам простой структуры. Пакеты с фиксированной или произвольной последовательностью обращений к модулям имеют сложную структуру. Способ классификации ППП по уровням сложности их структуры иллюстрирует табл. 13.2. Пакеты простой структуры состоят только из прикладных программ (модулей ППП). В тело пакета, расширяющего библиотеку, входят модули, которые вызываются из программ, написанных пользователем с помощью оператора вызова программ. К ППП с автономными программами обращаются непосредственно на языке управления заданиями операционной системы. В ППП сложной структуры кроме тела пакета входит управляющая программа, обеспечивающая вызов модулей в нужной последовательности и автоматизирующая между модульный интерфейс. В случае произвольной последовательности обращений к модулям пользователь сам планирует процесс вычислений. Входной язык пакета содержит множества стандартных величин предметной области и операций над ними. Пользователь ППП сам задает последовательность операций, выполнение которых приводит к решению вычислительной задачи. В пакетах с фиксированной последовательностью обращений к модулям план решения вычислительной задачи строится автоматически на базе информации, заложенной в ППП еще на стадии его разработки. Пользователь такого пакета должен лишь указать цель вычислений и ввести исходные данные. Управление прикладными программами в интерактивной среде СОД/СИМ осуществляется с помощью ЯУПД, поэтому в пакетах программ обязательно присутствуют компоненты, написанные на ЯУПД. С их помощью осуществляется непосредственное управление работой других компонент в интерактивной среде. Программы на ЯУПД называются заданиями. Модули ППП СОД/СИМ, расширяющих библиотеки, являются подпрограммами, написанными на ФОРТРАН-IV или ПЛ/1. 456
Задание на ЯУЗ ОС Задание на ЯУПД 1 Моду/ib Mony/th ¦ .. 1 Модуль к И ш Задание на 1— 1 Задание 1 на ЯУПД L 1 I Задание \на ЯУПД I г ЯУЗОС L . . • Задание на ЯУПД К 1 п Рис. 13.5. Схема использования ППП СОД/СИМ, расширяющего библиотеку: / — стандартная процедура; // -— составляется пользователем; III — предоставляется пакетом Рис. 13.6. Схема использования ППП СОД/СИМ с автономными программами: / — составляется пользователем; // — предоставляется пакетом Используя эти подпрограммы, пользователь составляет задания на ЯУПД для решения своей задачи (рис. 13.5). Запуск задания выполняется стандартным способом, например, с помощью каталогизированной процедуры языка управления заданиями (Я УЗ) ОС ЕС. ППП СОД/СИМ с автономными программами состоят из заданий на ЯУПД. Запуск заданий организует пользователь с помощью ЯУЗ ОС (рис. 13.6). Для построения ППП сложной структуры используются макросредства ЯУПД (в п. 13.2.3 дано общее описание макрогенератора СОД/СИМ). Пакет сложной структуры состоит из макрокоманд ЯУПД, параметрами которых являются стандартные величины предметной области. Макрокоманды пакета должны быть совместимыми по структурам данных. В ППП сложной структуры с произвольной последовательностью обращений к модулям каждая макрокоманда выполняет только одну операцию предметной области. В случае, когда последовательность обращений к модулям в ППП зафиксирована, пакет содержит одну макрокоманду, с помощью которой может быть реализовано вычисление значений всех стандартных величин предметной области. Схема использования ППП сложной структуры в СОД/СИМ приведена на рис. 13.7. В СОД/СИМ обеспечивается возможность постепенного наращивания уровня автоматизации и проблемной ориентации пакетов, предоставляемых пользователю. Каждый пакет является готовым программным продуктом, ориентированным на определенный круг пользователей. В то же время его можно рассматривать как составную единицу при построении ППП более высокого уровня (рис. 13.8). При этом ранее разработанные пакеты автоматически включаются в базовую операционную среду тех вычислительных задач, для решения которых создается новый, более сложный пакет. ППП в СОД/СИМ упорядочиваются по уровням сложности, в результате чего возникают пакеты многого п/р С. В. Емельянова 457
Задание на ЯУЗ ос Задание . , на проблемно - ориентированное языке пользователя Макрокоманда ЯУПД 1 Макрокоманда ЯУПД 2 Макрокоманда ЯУПД К ш |— /7/7/7 с автономными программами \ ППП с фиксированной последовательностью обращений к модулям \ ППП с произвольной последовательностью обращений к модулям \ ППП, расширяющие библиотеки ^ Рис. 13.7. Схема использования ППП Рис. 13.8. Уровни организации ППП СОД/СИМ сложной структуры: СОД/СИМ / — стандартная процедура; // — составляется пользователем; /// — предоставляется пакетом уровневой иерархической структуры. Каждый уровень такого пакета доступен пользователям МЦ. Каждому уровню пакета соответствуют различные по вычислительной мощности и эффективности программные средства, ориентированные на пользователей с определенной степенью подготовки в области программирования. Работа с пакетом на высоком уровне предоставляет пользователю большие возможности, но связана с дополнительными затратами на машинное время и память. © © 6) Рис. 13.9. Граф предметной области ППП: а — КОНТУР: р, - ГРАФ; рг - КОН, р, - ЗАКАЗ; р, - ОКОН; р5 - ПАРЫ; рв — jV-КИ; р7 - ФАКТ; 6 - ПУТИ: Pl - ГРАФ; Рг - УСЛ: ps - ПУТИ; р4 - ЗАКАЗ; Pi — ОПУТИ; в — СВЯЗНОСТЬ: Pl — ГРАФ; р, — КЛИКИ; р, — МКЛИКА; р4 - РАСКР; Р. - ДОМ; р, - НЕЗ; р7 - МИЫД; р, - ЯДРА; р, - MAKH; р10 - МЯДРА 458
Широкое использование в ППП СОД/СИМ модулей, разработанных в рамках поддерживаемых интерактивной средой СПБФ, способствует включению в состав ППО программных компонент, разработанных вне системы, и повышению быстродействия ППП. Последнее обстоятельство объясняется тем, что вычислительные функции пакетов чаще всего не зависят от управления данными в областях интерактивной среды. Доля вычислительных модулей БСМЦ может составлять 60—80 % общего объема программ. Поскольку ЯУПД является интерпретирующим языком, то программирование вычислительных функций на языках, снабженных компиляторами, становится важным фактором повышения быстродействия пакетов. Пример 13.1 *. В целях автоматизации исследований структур транспортных потоков в отраслевых и региональных организационно-экономических системах, потоков распределения воды в городских системах водоснабжения, материальных потоков в транспортно-накопительных системах ГПС и др. в Ленинградском электротехническом институте им. В. И. Ульянова (Ленина) на базе СОД/СИМ были разработаны ППП КОНТУР, СВЯЗНОСТЬ, ДОСТИЖИМОСТЬ, ПУТИ, МОДИФИКАЦИЯ, ОПЕРАЦИИ, СЕРВИС. Пакеты КОНТУР, ПУТИ, СВЯЗНОСТЬ, ДОСТИЖИМОСТЬ предназначались для вычисления различных характеристик орграфов. Графы предметных областей ППП КОНТУР, ПУТИ и СВЯЗНОСТЬ приведены на рис. 13.9. Граф предметной области пакета ДОСТИЖИМОСТЬ изображен на рис. 13.3. При построении пакетов были использованы следующие стандартные величины предметной области [30, 31, 38] и их идентификаторы: Наименования стандартных величин Орграф Список элементарных контуров Список особых контуров Пары несмежных контуров Множества, состоящие из N несмежных контуров (/V>1) Факторы Заказ на отбор особых контуров или путей Список элементарных путей, отвечающих определенным условиям Список особых путей Условие на поиск элементарных путей Список клик Максимальная клика Список максимальных доминирующих множеств вершин Наименьшее доминирующее множество Идентификаторы ГРАФ кон окон ПАРЫ N-КИ ФАКТ ЗАКАЗ ПУТИ ОПУТИ УСЛ клики МКЛИКА дом минд Наименование стандартных величин Список максимальных независимых множеств Наибольшее независимое множество вершин Список ядер Крайние (наибольшее и наименьшее) ядра Минимальная раскраска Матрица расстояний между вершинами Полустепени исхода и захода вершин Граф достижимости вершин Список слабых компонент Список сильных компонент Список односторонних компонент Граф конденсации Список баз Список антибаз Порядковая функция Функция Гранди Идентификаторы НЕЗ МАКН ¦' ЯДРА МЯДРА РАСКР РАССТ СТЕП ДОСТ • СЛАБ СИЛЬН одност конд БАЗЫ АНБЛЗЫ ПОРЯД ГРАНДИ * В примерах 13.1 и 13.2 использованы материалы диссертации А. С. Бачу- рина «Разработка языковых и программных средств для моделирующего центра» (ЛЭТИ им. В. И. Ульянова (Ленина), 1984 г.). 459
Рис. 13,10. Схема использования макрокоманд ппп достижимость Пакет МОДИФИКАЦИЯ должен был обеспечивать изменения невзвешенных орграфов: склеивание вершин, помещение вершины на дугу, включение (исключение) вершин и дуг. Пакет ОПЕРАЦИИ предназначался для выполнения следующих операций над орграфами: объединения, пересечения, разности, дополнения, присваивания, суммы, произведения. При разработке указанных пакетов непроцедурный метод построения ППП не применялся. С целью уменьшить затраты на реализацию в пакетах предусматривалась комбинация произвольной и фиксированной последовательностей обращений к модулям. Каждый пакет представляет собой совокупность макрокоманд ЯУПД, обеспечивающих автоматическое планирование вычислительного процесса [4, 7, 29]. Макрокоманды пакетов построены таким образом, что каждая из них способна вычислять значение только одной стандартной величины, но на основании любых исходных данных, по которым можно выполнить расчет в рамках графа предметной области ППП. Подобная регламентация функций макрокоманд позволила унифицировать алгоритмы их работы. При вычислении значения стандартной величины S макрокоманда действует по следующему алгоритму: 1. Если существует оператор t ? 7\ такой, что S g G (/) Д Г'1 (/) С /S, то на 5. Здесь IS — множество стандартных величин, значения которых передаются макрокоманде в качестве исходных данных, S ф IS; Г, G (t)y Г (/) — элементы модели предметной области ППП; Т — множество операторов; Г: :S^-T,G: T^-S. Для каждого оператора t ? Т отображение G (t) задает множество его параметров, определяющих результаты работы оператора /, а Г (/) — множество параметров оператора, задающих исходные данные. 2. Если не существует оператор t ? Г, такой, что [S € G (/)] Д [(V* € Г @) * 6 IS V О"* (*) Ф 0], то конец. В этом случае выполнить расчет невозможно. 3. Выбор оператора / ? Г, удовлетворяющего условию шага 2 алгоритма. Критерий выбора зависит от особенностей модели предметной области ППП и набора исходных данных IS. В однозначных ППП (КОНТУР, ПУТИ, СВЯЗНОСТЬ) выбор не проводится, так как | G'1 (t) | ^ 1. По крайней мере, для одной стандартной величины неоднозначного ППП должно быть справедливо обратное. Например, в ППП ДОСТИЖИМОСТЬ | СОСЛАВ) | = | С'^ДОСТ) | = 2. 4. Обращение к макрокомандам пакета, вычисляющим значения стандартных величин из множества r_i(/)\/S. 5. Применение оператора / для нахождения значения стандартной величины S. Конец. Гибкость в выборе исходных данных расчета обеспечивается макрокомандой за счет использования ею возможностей других макрокоманд пакета. Схема использования возможностей макрокоманд в ППП ДОСТИЖИМОСТЬ приведена на рис. 13.10. Идентификаторы макрокоманд на этом рисунке совпадают с идентификаторами вычисляемых ими стандартных величин предметной области. Стрелка, идущая от макрокоманды Л к макрокоманде В, показывает, что Л при необходимости обращается к В. Все стандартные величины предметной области рассматриваемых нами пакетов определяются на базе шести различных понятий ГРАНДИ 5АЗЫ rj п. ПОРЯД КОНй ~Г" J АНБАЗЬП СИЛЬН С/1А 6 и олност лост I \PACCT СТЕП 460
Наименования понятий Идентификаторы Орграф ГРАФ Множество последова- ПОСЛЕД телыюстей вершин графа Список параметров мно- СПИСОК жества ПОСЛЕД Заказ на выделение под- ЗАКАЗ множеств множества ПОСЛЕД Условие на поиск элемен- УСЛ тарных путей графа Целочисленная матрица МАТР Таблица 13.3. Трудоемкость реализации Г1Г111 Наименования пакета КОНТУР ПУТИ связность достижимость СЕРВИС Число операторов 466 243 524 601 291 ПЛ/1 1348 936 1988 1477 1090 Общее 1814 1179 2512 2078 1388 Выполнение необходимых операций доступа к этим понятиям обеспечивается с помощью пакета СЕРВИС. Этот пакет реализован как ПИП СОД/СИМ с произвольной последовательностью обращений к модулям. Макрокоманды пакета могут уничтожать экземпляры понятий, размещенных в интерактивной среде, и вводить экземпляры тех понятий, для которых полустепень захода в графах предметных областей равна нулю (ГРАФ, ЗАКАЗ, УСЛ). Общее представление о трудозатратах на реализацию пакетов можно составить на основе данных, приведенных в табл. 13.3. Приведем примеры использования пакетов для вычисления различных характеристик орграфов. Ключевым словом оператора вызова макрокоманд в ЯУПД является EXEC: / / / / / / ч, и // // // // // // // // // // // // // // // // /+ /+ /+ /+ 1+ 1+ /+ /+ /+ /+ /+ /+ /+ /+ /+ /+ /- /-f /+ /+ EXEC СИЛЬН, ГРАФ=Г; ОПЕРАТОР УСТЛНЛВЛИВАЕТ, ОБЛАДАЕТ ЛИ ГРАФ Г КОНТУРАМИ. ВВИДУ ТОГО, ЧТО ИДЕНТИФИКАТОР РЕЗУЛЬТАТА РАБОТЫ МАКРОКОМАНДЫ НЕ УКАЗАН, СИЛЬНЫЕ КОМПОНЕНТЫ ГРАФА БУДУТ НАЙДЕНЫ, РАСПЕЧАТАНЫ, НО НЕ РАЗМЕЩЕНЫ В ИНТЕРАКТИВНОЙ СРЕДЕ ДЛЯ ХРАНЕНИЯ. EXEC ВУСЛ, УСЛ=У; ИЗ 1 В 4—8 # ОПЕРАТОР ВВОДИТ УСЛОВИЕ НА ПОИСК ЭЛЕМЕНТАРНЫХ ПУТЕЙ ГРАФА, КОТОРОЕ БУДЕТ СОХРАНЕНО ДО ОКОНЧАНИЯ СЕАНСА РАБОТЫ. УСЛОВИЕ У ОБЕСПЕЧИВАЕТ ВКЛЮЧЕНИЕ В СПИСОК ЭЛЕМЕНТАРНЫХ ПУТЕЙ ТОЛЬКО ПУТИ ИЗ ВЕРШИНЫ 1 В ВЕРШИНЫ 4—8 ГРАФА EXEC ПУТИ, УСЛ-У, ГРАФ=Г, ПУТИ=П, ХРАНИТЬ^ ПОСТОЯННО; ОПЕРАТОР НАХОДИТ СПИСОК ЭЛЕМЕНТАРНЫХ ПУТЕЙ ГРАФА Г, КОТОРЫЕ УДОВЛЕТВОРЯЮТ УСЛОВИЮ У. СПИСОК П БУДЕТ СОХРАНЕН ДО МОМЕНТА ЕГО УНИЧТОЖЕНИЯ ПОЛЬЗОВАТЕЛЕМ. EXEC B3AKA3, ЗАКАЗ=3; 1) ВЕРШ 5; о\ цр 1 л. ВВОДИМЫЙ ОПЕРАТОРОМ ЗАКАЗ ОБЕСПЕЧИВАЕТ ОТБОР ОСОБЫХ КОНТУРОВ (ПУТЕЙ), КОТОРЫЕ НЕ ПРОХОДЯТ ЧЕРЕЗ ВЕРШИНУ 5. EXEC ОКОН, ГРАФ=Г, ЗАКАЗ-3, ОКОН-ОК; ОПЕРАТОР НАХОДИТ СПИСОК ОСОБЫХ КОНТУРОВ ОК ГРАФА Г, КОТОРЫЕ НЕ УДОВЛЕТВОРЯЮТ ЗАКАЗУ 3. Ц +/ + +/ +/ + + +/ +/, +/ 461
// EXEC ОПУТИ, ПУТИ-П, ЗЛКАЗ-3, ОПУТИ-ОП; // /+ ИЗ НАЙДЕННОГО СПИСКА П ПУТЕЙ ГРАФА Г ОПЕРАТОР + / // /+ ОТБИРАЕТ ПУТИ, НЕ ПРОХОДЯЩИЕ ЧЕРЕЗ ВЕРШИНУ 5. +/ Основными недостатками таких пакетов являются: отсутствие в них средств информирования пользователя о хранимых в интерактивной среде экземплярах понятий и связях между ними; единственность формы представления каждого понятия, используемой для его хранения. Это затрудняет автономную разработку ППП. Данный недостаток может быть устранен за счет использования средств управляемого программистом динамического связывания идентификаторов в программах на ЯУПД с объектами многообластной интерактивной среды. Пример 13.2. Покажем, как могут быть использованы рассмотренные в предыдущем примере пакеты. Для краткости изложения выберем не слишком сложные задачи, встречающиеся при выполнении технико-экономического расчета систем водоснабжения [1] (см. сноску на с. 459.) Сеть водоснабжения будем задавать в виде орграфа Г = (X, U) с помеченными вершинами и дугами. Вершинам X орграфа соответствуют так называемые ключевые точки системы водоснабжения. К ним относятся водопитатели, источники и приемники воды, места разветвления водоводов, а также элементы сети, имеющие совмещенные функции. Вершины xi ? X, i= 1, |Х| взвешиваются парой значений (#'?, ЯЛ, где #? и 1г\ — соответственно минимальная и максимальная допустимые пьезометрические отметки в i-R ключевой точке сети. Дуги графа соответствуют участкам трубопроводов, соединяющим ключевые точки системы водоснабжения. Дуги ориентированы по направлению движения потока воды. Каждой дуге ит ? V, г = 1, | U | ставится в соответствие пара значений (Lr, Qr), где Lr — длина участка, a Qr — расход воды на данном участке в единицу времени. Заметим, что реальные сети водоснабжения могут иметь сотни и тысячи элементов (участков, ключевых точек). Задана контроля представления сети водоснабжения в виде орграфа с выявлением допущенных ошибок. Граф Г = (X, U) будет правильным представлением сети, если он обладает следующими свойствами: граф не имеет контуров: число сильных компонент графа (ППП ДОСТИЖИМОСТЬ) должно равняться | X |, а число вершин в каждой такой компоненте должно быть равным 1; граф связный: он имеет одну слабую компоненту (ППП ДОСТИЖИМОСТЬ) с числом вершин, равным | X |; каждая односторонняя компонента графа (ППП ДОСТИЖИМОСТЬ) должна включать одну вершину, соответствующую источнику водоснабжения, и одну вершину — потребитель воды. В точке потребления должен расходоваться весь объем поступающей воды; база графа (ППП ДОСТИЖИМОСТЬ) должна содержать все вершины- источники воды и только их; антибаза графа (ППП ДОСТИЖИМОСТЬ) должна включать все вершины- приемники и только их. Могут контролироваться и другие характеристики орграфа, например наличие в нем характерных путей подачи воды (ППП ПУТИ) и др. Большие сети водоснабжения изучаются по частям с последующей интеграцией результатов в характеристики целостной системы. Эти задачи более трудные и в данном примере не рассматриваются. Задача оценки надежности подачи воды в различные ключевые точки сети. Отказы в водоснабжении зависят от удаленности приемников от источников. Качественно возможность отказа можно оценить с помощью порядковой функции (ППП ДОСТИЖИМОСТЬ) графа Г. Надежное водоснабжение удаленных потребителей зависит от правильного размещения резервных емкостей в определенных точках сети. На структурном уровне эта задача сводится к такому размещению резервных емкостей, при котором длина каждого пути водоснабжения любого потре- 462
бителя не превышает /V участков. Схема решения такой задачи может иметь следующий вид: найти матрицу расстояний М графа Г (ППП ДОСТИЖИМОСТЬ); построить матрицу смежности Mq графа Гд, где ( 1, если M{if j)^N; i, /-1, \Х\; MdV, I) --{ Л [ 0, иначе; найти минимальные доминирующие множества вершин графа Г& (ППП СВЯЗНОСТЬ), Элементы этого множества задают допустимые места расположения резервных емкостей. Наименьшее доминирующее множество вершин графа Го соответствует решению с минимальным числом емкостей. Некоторые потребители воды могут питаться сразу от нескольких источников. В этом случае можно поступать следующим образом: построить граф достижимости Г/j для графа Г (ППП ДОСТИЖИМОСТЬ); найти в графе Г^ пути длины 1 из всех вершин-нсточников в заданную вершину-приемник (ППП ПУТИ). Подобными способами формулируются и решаются на основе пакетов КОНТУР, ПУТИ, ДОСТИЖИМОСТЬ, СВЯЗНОСТЬ некоторые другие задачи обеспечения надежности системы водоснабжения, например, задачи оценки защищенности системы от гидравлического удара, вызванного потерей напора в некоторой ключевой точке сети. На структурном уровне эта задача может быть решена путем нахождения максимальных независимых множеств вершин графа Г или графа Гл (ППП СВЯЗНОСТЬ). Задача построения и использования линейной модели системы водоснабжения для техника-экономического расчета. Воспользуемся представлением сети водоснабжении в виде графа Г для построения линейной модели сети, рассчитанной на применение метода линейного программирования к задаче технико- экономического расчета [27]. Предлагается следующая схема решения: найти множества вершин D графа Г, в которых устанавливаются резервные емкости, промежуточные водонагнетательные установки н другое оборудование подобного назначения. При установке на сети такого оборудования должны оцениваться соответствующие капитальные и эксплуатационные расходы. Вершины-источники в множество D не входят; построить граф G (Y, V) на основе исходного графа сети Г. Переход к G регламентируется следующим: \Y\ = \X\ + \D\i | V | = | ?> I: i>\X\~yteE; EdV; i - 1Г|Л; f--{yi\xi?D)-+E, i = T7W\; ("г = (*.• *j) € i>) Л (*i &D)~(«V = (vt> yj) € V); i, i = ГГРП; («r = (*|. *j) € V) A (*, GD)~(vr-f (*,, yt) € V); i, / = ГЩ, откуда следует, что х, €0-*<г(у,)-О, !=»СТЙ]; где а~ и а+ — соответственно полустепени исхода и захода вершин графа G. Веса дуг графа G и вершин У\Е совпадают с весами соответствующих элементов графа Г. Веса вершин из Е фиксируют допустимые диапазоны пьезометрических отметок на выходе промежуточных водопитателей. На рис. 13.11 дан граф Г, вершины х3 и хб которого соответствуют промежуточным водопита- телям. Граф G для исходного графа Г показан на рис. 13.12; 463
O- *3 *Ю i -*o y* o- У5 -*o -*o У5 л y7 Рис. I3.ll. Фрагмент графического изображения сети водоснабжения (граф Г) У^ У* Ую Рис. 13.12. Граф G найти точки встречи потоков и построить граф R (Z, W). Точки встречи являются вершинами графа G, имеющими полустенени захода, большие 1 (ППП ДОСТИЖИМОСТЬ). Граф R получается из G по следующим правилам: \W\ = \V\; \Z\ = % <>+ &) + {& ZY\°* (У,)-=0}\; Zi?P+*i>\Y\; » = 1, |Z|; P с Z; zt €* —o+foX 1; » = 1, |Z|; <? : Z\P-+P{! {0}, причем |ф<2?)|- o+(yt) — 1, если a+(i/.)>0; i-1, I K |; О, иначе; все принадлежат FW /Ю/. = /г. , гЛ ? W\ П (шГ -= /г. , zs \ ? W\ П. •• П /, it, ...,iN=l, \Y\ где q>(z;.) W>0. *W-il -. ^ = 1. \V\', Данные соотношения задают расщепления тех вершин графа G, полустепени захода которых больше 1. Вес расщепленной вершины переносится на все инцидентные ей вершины графа R. Веса дуг графа R совпадают с весами соответствующих дуг графа G. Граф Ry построенный на основе графа G (см. рис. 13.12), показан на рис. 13.13; найти критические ключевые точки S — {zi\yi ? Y] системы водоснабжения. Точка не будет критической, если допустимые значения пьезометрической отметки в ней автоматически обеспечиваются при достижении допустимых значений отметки в некоторой другой точке сети; О- /9 6'« z7 -О 6 Л? Рис. 13.13. Граф R о- 2д о- ho 464
составить линейную целевую функцию \w\ т ^=2 Е^Л/+ ? ^(Я,^Я;)->тш, k=\ /-1 2. (.В где 7/(- и #^. означают соответственно пьезометрическую отметку и дополнительную пьезометрическую отметку в вершине г, графа R, а 1м — длина труб /-го вида, выбранных для установки на 6-м участке сети, и систему линейных ограничений на выбор значений переменных Н^ Н\ и lkt целевой функции F% регламентирующих: характер взаимосвязи пьезометрических отметок т граничные значения допустимых пьезометрических отметок Щ <! Н' i ^ Н*\ условия для точек встречи потоков //$ — Нг, zr = qr1 (z{), zt ? Р ClZ; условия выбора пьезометрических отметок промежуточных водопитателей Hi ^ li'i% т {zi ? Z\yi ? ?}, i— I, | К |; условия выбора длин участков сети ]Г, 1м = L^; *=1 L& — длина k-й дуги графа R, k — 1, | W |. Па этапе составления модели пользователь обращается к ППП ДОСТИ- ЖИЛЮСТЬ, ПУТИ, МОДИФИКАЦИЯ, ОПЕРАЦИИ, СЕРВИС. Полученная модель далее автоматически преобразуется в модель линейного программирования канонического вида [16], которая затем поступает на вход ППП, решающего задачу оптимизации целевой функции F [35]. 13.3.3. Средства программирования базовых функций СОД/СИМ Базовыми языками СОД/СИМ являются ФОРТРАН-IV и ПЛ/1. Различные СМ и СУБД, использующие эти языки в качестве базовых, могут быть включены в состав СПБФ СОД/СИМ. В качестве иллюстрации в табл. 13.4 приводятся некоторые программные средства из числа включенных в СПБФ СОД/СИМ [6, 15]. Приведенный в табл. 13.4 перечень средств программирования базовых функций может быть расширен за счет подходящих систем моделирования и СУБД с базовыми языками ФОРТРАН-IV и ПЛ/1. Для прикладных модулей, разработанных в этих системах, монитор СОД/СИМ обеспечивает передачу данных через основную память и страничные файлы. Кроме ФОРТРАНА и ПЛ/1 в СОД/СИМ допускается использование и других систем программирования, позволяющих создавать загружаемые модули. Для таких модулей монитор системы как минимум обеспечивает программируемый на ЯУПД интерфейс по управлению. В табл. 13.4 помимо средств стандартного программного обеспечения ЕС ЭВМ (ФОРТРАН-IV и ПЛ/1) и средств, поставляемых различными организациями-разработчиками (ГАСП-IV, ..., СПЕКТР), входит проблемно-ориентированная информационная система СОМИ, непосредственно встроенная в СОД/СИМ. Пример 13.3. Рассмотрим автоматизированную систему накопления, хранения и обработки экспериментальной информации СОМИ [45]. При разработке архитектуры СОМИ учитывались следующие требования: модульность; централиза- 465
Таблица 13.4. Средства программирования базовых функций Наименование средства ФОРТРАН-IV ПЛ/1 ПМНП(ЕС) ГАСП-IV АИС МПЛ/1 СИМПЛ/1 СЕТОР СПЕКТР СОМИ Тип средства Процедурно-ориентированная система программирования Процедурно-ориентированная система программирования Препроцессорная система моделирования на базе ФОРТРАН-IV Пакет моделирования на базе ФОРТРАН-IV Пакет моделирования на базе ПЛ/1 Препроцессорная система моделирования на базе ПЛ/1 Препроцессорная система моделирования на базе ПЛ/1 СУБД с базовыми языками ФОРТРАН-IV и ПЛ/1 СУБД с базовыми языками ФОРТРАН-IV и ПЛ/1 Проблемно-ориентированная информационная система, встроенная в СОД /СИМ Область использования Численные задачи Численные и информационно- логические задачи Моделирование непрерывных систем и процессов (см. п. 10.3.7) Моделирование дискретноне- ! прерывных систем, описанных 1 на языке событий, дифференциальных и конечно-разностных уравнений (см. п. 10.3.6) Моделирование дискретных, дискретно-непрерывных и непрерывных систем, представленных в виде систем кусочно-линейных агрегатов [17, 47] Моделирование дискретных систем на языке транзактов Моделирование дискретных систем на языке процессов (см. п. 10.3.3) Управление базами данных с сетевой структурой [46] Управление базами данных с ассоциативной сетевой структурой данных [34] Накопление, хранение и обработка экспериментальных данных [45] ция функций накопления и хранения данных в БД (базе данных); расширяемость БД при сохранении всех функций взаимодействия пользователей с СОМИ; возможность модификации и реструктуризации БД без ее перезагрузки; ориентация технологии создания и ведения БД на пользователей-непрограммистов; раздельное обслуживание процессов организации, обновления, поддержки БД, процессов обработки информации и выдачи результатов; высокий уровень автоматизации операций поиска, выборки и обработки данных, хранимых в БД; возможность на основе СОД/СИМ интеграции СОМИ с СМ, СУБД, ППП и ПОСП базовой системы языковых и программных средств МЦ. СОМИ обеспечивает определение БД, ее загрузку с документов унифицированной структуры, обновление, реструктуризацию, реорганизацию и восстановление БД; многоаспектный поиск и выдачу данных по запросу пользователя; обработку информации с применением компонент НПО СОД/СИМ; выполнение сервисных функций; диагностирование ошибок. В состав СОМИ входят БД и три функциональные подсистемы (рис. 13.14): формирования и ведения БД (ФВБД); информационно-поисковая (ИПС); обработки данных (ОД). Каждая из этих подсистем использует средства СОД/СИМ. Общее представление о составе, взаимосвязях и назначении основных компонент СОМИ дает рис. 13Л5. Монитор СОД/СИМ управляет в системе транс- 466
Рис. 13.14. Функциональная схема СОМИ ляцией заданий и их выполнением. ФВБД применяется для описания и создания БД, загрузки базы, ее обновления и поддержки. ИП обеспечивает параллельный поиск по нескольким критериям выбора, отбор требуемых групп данных, формирование и использование средств ускорения поиска и выбора данных из базы. Функции ОД реализуются в системе на базе алгоритмических возможностей ЯУПД и отдельных обрабатывающих программ — прежде всего ППП, имеющих проблемно-ориентированные языки. В состав ОД реализованной версии СОМИ входят пакеты BMDP, SAS, СТАТИСТИКА, РЕГРЕССИЯ, ФАКТОРНЫЙ АНАЛИЗ, КЛАСТЕР, ДИАГНОЗ и др. СОМИ имеет несколько входных языков: описания схем, описания среды хранения, описания форм унифицированной структуры, запросов. Все входные языки имеют в качестве базовых Ассемблер ОС ЕС и ЯУПД. Они представляют собой наборы макрокоманд и, таким образом, являются расширениями базовых языков. Система предоставляет пользователю процедурный язык описания схемы, в котором структура данных описывается обращением к соответствующим процедурам. Внесение изменений в БД поддерживается специальными операторами модификации. С их помощью схема может дополняться и сокращаться на уровнях области, типа записи, элемента или агрегата данных. Благодаря этому реструк туризация БД может быть выполнена без ее реорганизации и перезагрузки Средства ообония и _ библиотек I формиробония и веде- Ср едет 6 а описания форм библиотеки Средства реорганизации Средства описания 6Д Средства загрузки и обновления Монитор Средства доступа Утилиты СМД сод/сим БД Средства копирования Средства восстановления 1 — Рис. 13Л5. Функциональная схема подсистемы ФВБД СОМИ: макроопределения; 2 — загрузочные модули; 3 — описания форм; 4 — восстановление БД; 5 — копия БД 467
Задание ноль юбателя Рис. 13.16. Схема выполнения задания пользователя Язык описания среды хранения позволяет специфицировать конфигурацию страничной памяти, управлять буферизацией страничных файлов, определять размеры буферных областей [6, 45]. На языке описания форм задаются структура и содержание унифицированных входных документов (форм), устанавливаются их отображения в БД, определяются правила контроля значений отдельных элементов документов, назначается нестандартная обработка данных с помощью программ пользователя. Язык запросов поддерживает требуемый уровень взаимодействия пользователя с БД. Функции пользователя сводятся к вызову операторов языка запросов и присвоению нужных значений их параметрам. Для реализации нестандартных функций, связанных с поиском, выборкой и обработкой данных, используются возможности операторов языка запросов, проблемно-ориентированных языков ППП, применяемых в СОМИ для обработки данных, и ЯУПД СОД/СИМ. Последний выступает в качестве включающего языка и в целом предназначается для организации процессов обработки данных в системе. Задания на ЯУПД содержат операторы языка запросов, с помощью которых регламентируются все действия по поиску и обработке данных (рис. 13.16). Стандартные запросы, выявленные при эксплуатации СОМИ, оформляются в виде макроопределений ЯУПД. 13.4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ ЛАБОРАТОРИИ МЦ 13.4.1. Требования к ППО системного моделирования, обусловленные технологией проведения вычислительных экспериментов в МЦ Проведение вычислительных экспериментов с моделями в условиях МЦ связано с применением специальной машинно-ориентированной технологии. В качестве программной поддержки этой технологии используется ППО, являющееся основным инструментом решения вычислительных задач в ходе системного моделирования. Исследователь разделяет каждый этап вычислительного эксперимента на формальную и неформальную части. Выполнение формальной части он возлагает на ППО. Собственная его функция при этом сводится к постановкам задач на вычисления в форму- 468 Операторы обработки отбора ППП СТАТИСТИКА КЛАСТЕР ДИАГНОЗ !--г-- .-J Отбор \ Рабочее прост- pQHtnM поиска Поиск
лировке «Дано ..., найти ...». Реализация неформальной части этапа связана с анализом ранее полученных результатов и принятием решений о содержании каждого следующего шага эксперимента. Решения исследователя могут привести к изменению ранее намеченного сценария работы. Например, может возникнуть необходимость перехода в новую точку сценария для проведения расчета по некоторой альтернативной методике, или окажется целесообразным вернуться к уже пройденному ранее этапу для повторных вычислений при некоторых новых условиях, или если потребуется применение оригинального метода, не предусмотренного схемой исследований, нужно создать новый фрагмент сценария, обеспечить его необходимыми программными средствами и продолжить эксперимент с какой-то точки этого фрагмента» Рассмотрим требования, которым должны отвечать программные средства, поддерживающие в МЦ вычислительные эксперименты [14]. Проблемная ориентация ППО. Возможности программных средств должны отображаться для абонентов центра и системных аналитиков в модели предметной области, которая представляется как совокупность понятий и операций предметной области. Используя такие операции, абонент или системный аналитик МЦ создает, изменяет или уничтожает объекты, являющиеся конкретными воплощениями понятий предметной области. Состояние предметной области в каждый момент времени задается ее моделью и множеством объектов, созданных пользователями. Основным инструментом для работы с объектами является вызов операций предметной области. Идентификаторы операций и их параметры должны быть предметно-ориентированы. Пользователи обычно не нуждаются в информации о том, как объекты представляются в памяти ЭВМ. Обращаясь к операции, они указывают только имя объекта, являющегося параметром, но не структуру его хранения. Многосеансный характер исследований. Продолжительный многоэтапный характер решения задач системного моделирования обусловливает необходимость использования среды храпения информации (СХИ), на которую возлагаются функции рабочей тетради пользователя. СХИ должна предоставлять возможности для: помещения объектов и результатов исследований на кратковременное или долгосрочное хранение, в том числе на хранение между сеансами работы; хранения отношений между объектами; комментирования пользователем хранимых объектов и отношений; поиска и выдачи хранимых объектов по запросам пользователей и программных средств, реализующих операции над понятиями; предоставления справочной информации; уничтожения хранимой информации. Сложность организации взаимодействия пользователя с СХИ не должна быть больше сложности вызова операций предметной области. 469
Расширяемость ППО. Программное обеспечение, реализующее операции над понятиями, должно быть открытым для расширения, т. е. допускать включение новых и модернизацию существующих компонент, их совместное применение при проведении исследований. Это требование обусловлено характерной для системных исследований необходимостью обеспечения возможностей развития вычислительного эксперимента. Иерархическая структура ППО. Программные средства, поддерживающие исследования в некоторой предметной области, могут в одно и то же время запрашиваться пользователем, работающим с моделью предметной области, и прикладным программистом МЦ, занятым созданием новых программных компонент в целях расширения имеющейся предметной области. Расширение может заключаться в вводе новых понятий и операций в предметную область, создании более общих операций и более сложных понятий па базе уже существующих и т. п. Иерархическое строение программных средств, составляющих ППО МЦ, вызвано повышенными требованиями к оперативности создания и модификации предметных областей. Оперативная работа прикладных программистов в условиях центра возможна в том случае, если операционная обстановка, в которой они действуют, хорошо согласована с задачами, выдвигаемыми системными аналитиками. С этой целью прикладные программисты создают и используют базовые наборы понятий, ориентированные на удовлетворение их собственных потребностей как разработчиков ППО. Понятия, созданные по запросам пользователей, автоматически включаются в базовые наборы и далее также могут быть использованы прикладными программистами при построении более сложных понятий. /С-арные операции предметной области. Операции предметной области системного моделирования часто не соотносятся с единственным объектом и, следовательно, с единственным соответствующим этому объекту понятием. Поэтому операции предметной области должны быть применимыми к множествам понятий, выступающих в качестве параметров этих операций. Множественность форм хранения понятий. Под формой хранения понятия понимается форма его представления в совокупности с формой хранения данных об объекте в рамках выбранного представления. В порядке иллюстрации на рис. 13.17 показаны различные формы хранения понятия «Орграф». Учитывая сложность реализации и достижимое быстродействие при выполнении операций предметной области, можно рекомендовать два различных способа организации множественности форм хранения понятий: 1) хранится единственная базовая форма для объектов каждого понятия. Если применяемая операция предметной области использует форму хранения объекта, отличную от базовой, то перед вызовом этой операции управление автоматически передается 470
Орграф J Матрица инциденцид L Матрица смежности Двумерный массив целых часе/! веерно - вершинное покрытие —I Г" Форма представления понятия Одномерный массив битовые строк битовая строка Форма хранении данных Рис. 13.17. Формы хранения понятия «Орграф» специальному модулю-преобразователю, который помещает в память ЭВМ данные о входном формате операции. После применения операции промежуточные (не базовые) формы хранения объектов уничтожаются; 2) объекты понятий сохраняются в памяти в различных возможных формах. Промежуточные формы хранения объектов не уничтожаются после применения затребовавших их операций. В дальнейшем эти формы могут быть использованы и другими операциями предметной области, но уже без предварительных преобразований. Язык общения пользователя с ППО. Этот язык должен обеспечивать применимость операций предметной области к понятиям и подпонятиям, экземпляры которых выступают в качестве аргументов операций. Многие понятия предметной области вычислительного эксперимента выступают как подпонятия более общих понятий. Например, понятие «Планарный реберный граф» является подпонятием понятия «Реберный граф», а понятие «Лес» выступает подпонятием понятия «Планарный реберный граф». Общий способ определения подпонятия состоит в. фиксации значений одного или нескольких свойств более общего понятия. Поэтому к каждому понятию применимы операции, определенные для понятия верхнего уровня. В то же время понятие обладает набором собственных операций, которые применимы к нему самому и его подпонятиям. Так, к планарному реберному графу применимы все операции, доступные для реберного графа, но планарный граф обладает собственными операциями построения плоского графа, нахождения граней, краев графа. Для того чтобы пользователь мог применить одну операцию к различным понятиям предметной области, необходим контроль за санкционированностью применения операций. Это, в свою очередь, связано с предоставлением программным средствам, обеспечивающим работу пользователя с предметной областью, информации, отражающей правила использования операций. Наиболее предпочтительным представляется следующий способ формирования подобной информации [14]. 471
[ Односторон- j HUU Прадеребо —— Орграф Сбязный 1 1 i i Сильный 1 1 i I i 1 i I Несвязный | Ветбщайся Рис. 13.18. Пример упорядочения понятий Пусть О ? Р означает, что операция О связана с понятием Я, аО^-Р — что О применима к Р. Отношения частичного порядка на множестве понятий и правила связывания операций с понятиями определяются исходя из следующего: для всякой операции 0 найдется, по крайней мере, одно понятие Ру с которым эта операция связана; если О ? Р, то 0-*Р; если Pt предшествует Pj (обозначаем Pt <( Р;), то невозможно обратное; если Pt < Ph a Pj < Pky то Pt < Ph\ если Pt <^и O-v Л,, то 0 -* Л-; если О ? Pt и Р; не предшествует Piyro О не применима к Я7«. Из этих условий выводятся следствия: @-*Х)~@?Х) U (Э>7|(°^) П (Х<К)); (@-+Х) п (о->У))-((о е х) п (г <х» и «о е у> и (х <г» и иC2|(Х<г)П(У<2)П@е2)). Первое выражение задает множество операций, применимых к каждому конкретному понятию. Например, к понятию «Пра- дерево» применимы все операции, связанные с понятиями «Пра- дерево», «Односторонне связный орграф», «Орграф» (рис. 13.18). Второе выражение накладывает ограничение на способ информирования о применимости операций к понятиям. Для иллюстрации можно снова воспользоваться рис. 13.18: если в предметной области отсутствует понятие «Орграф», то понятия «Связный граф» и «Сильно связный граф» не будут иметь общих операций. Такое ограничение является довольно существенным и его следует рассматривать как основной недостаток рекомендуемого способа формирования информации о применимости операций к понятиям. Конгломераты объектов. Получение исходных данных, необходимых для применения операций предметной области, может быть автоматизировано. Базой для этого должны служить конгломераты объектов — совокупности объектов, связанных определенными отношениями. Например, при исследовании сетей водоснабжения большого города информация о сети каждого района образует конгломерат объектов. Сюда можно отнести объекты, задающие топологию сети, источники водоснабжения, их типы, возможные состояния, пути водоснабжения при определенных состояниях источников и т. п. 472
Если для каждой операции предметной области определить место ее аргументов внутри конгломератов объектов, то появляется возможность автоматизации поиска исходных данных операции. Однако необходимость введения конгломератов объектов не является совершенно бесспорной. Только практика конкретных исследований может окончательно определить отношение исследователя к данному предлагаемому средству. 13.4.2. Система языковых и программных средств МЦ, поддерживающая разработку ППО системного моделирования, и его применение в вычислительных экспериментах Систему языковых и программных средств, ориентированную на проведение системных исследований в вычислительной лаборатории МЦ, будем называть СПС/СИ [8, 14]. Ее основными компонентами являются: монитор, информационно-справочная система (ИСС), среда хранения информации (СХИ) и ППП, выполняющие операции над понятиями. Схематическое представление СПС/СИ приведено на рис. 13.19. Монитор СПС/СИ управляет ИСС и совокупностью ППП в соответствии с директивами пользователя. Входным языком монитора является проблемно-ориентированный язык пользователя, предназначенный для программирования директив. Основными функциями монитора являются: прием и расшифровка директив пользователя; планирование реализации директив, в результате которого определяется последовательность обращений к ИСС и ППП; реализация директив; формирование ответа пользователю на его директиву. ИСС обеспечивает хранение в СХИ и выдачу по запросам монитора сведений справочного характера, информации о конгломератах объектов и применимости операций к объектам. ИСС активно работает при формировании монитором обращений к ППП, отвечающих в СПС/СИ за решение задач планирования вычислительных экспериментов. СХИ — это запоминающая среда, в которой реализуются хранение данных определенной структуры и доступ к этим данным. ППП СПС/СИ выполняют операции над понятиями предметной области, размещают экземпляры этих по- г ч нятий в СХИ и обеспечивают извлече- {шьзобате^ ние поня ий, необходимых для использования, из СХИ. В случае необходимости ППП осуществляют планирование вычислительного процесса в рамках Монитор своих предметных областей. i' i И I ППП IH ППП U ИСС Рис. 13.19. Состав СПС/СИ СХИ 473
Пример 13.4 [14]. Допустим, что ИСС доступны сведения об объектах, хранящихся в СХИ, и предметных областях ППП СПС/СИ. Допустим также, что одним из этих ППП является пакет КОНТУР, граф предметной области которого приведен на рис. 13.9. Напомним, что вершины tlt ..., tb графа соответствуют операторам, реализуемым пакетом, а вершины ръ ..., р7 — стандартным величинам, значения которых являются результатами применения операторов. Допустим, что монитор выполняет директиву пользователя «Найти факторы графа А. Результату присвоить имя В». В этом примере идентификаторы КОН, ОКОН, ПАРЫ, N-КИ, ФАКТ обозначают не тип понятия предметной области, а тип операции, выполняемой над понятием ГРАФ. Тип результирующего понятия в директиве отсутствует, так как можно считать, что он однозначно определяется через типы исходных понятий и тип операции, выполняемой над исходными данными. После расшифровки директивы пользователя монитор выполняет следующие действия: 1. Запрос к ИСС: какой ППП выполняет операцию поиска факторов для понятия «Граф»? 2. Если сведений о таком ППП нет, то конец работы. (Будем считать, что найден ППП КОНТУР.) 3. Запрос к ИСС: является ли объект с идентификатором А экземпляром понятия «Граф»? 4. Если объект А не обнаружен нли он не является экземпляром понятия «Граф», то конец работы. 5. Запрос к ИСС: существует ли объект с идентификатором В? 6. Если такой объект обнаружен, то конец работы. 7. Запрос к ИСС: какой объект является факторами графа А? 8. Если такой объект найден, то конец работы. 9. Запрос к ИСС: какие объекты являются дополнительными исходными данными для операции поиска факторов с помощью ППП КОНТУР? (Дополнительными исходными данными операции являются объекты, использование которых при обращении к операции сокращает затраты на ее применение. В данном примере такими объектами могут быть: КОН, ПАРЫ, N-КИ.) 10. Запрос к ИСС: какие объекты являются КОН, ПАРЫ, N-КИ для графа А? (Будем считать, что найден объект КОН—К, задающий элементарные контуры графа А. При поиске используется хранимая в СХИ информация о взаимосвязях между объектами.) 11. Обращение к ППП КОНТУР. При обращении в качестве исходных данных указываются граф А и элементарные контуры КОН=К, а в качестве результата — факторы В. Пакет КОНТУР вычисляет объект В и помещает его в СХИ. 12. Запрос к ИСС: поместить в СХИ информацию: В — экземпляр понятия, соответствующего стандартной величине ФАКТ; В — результат применения операции th к экземпляру А понятия ГРАФ. 13. Конец работы 1. Из последнего примера видно, что монитор, ИСС и СХИ представляют собой универсальные компоненты СПС/СИ, они настраиваются на работу с конкретной конфигурацией ППП в зависимости от информации, имеющейся в СХИ. ППП составляют проблемно-ориентированную часть СХИ. Рассмотренный нами вариант организации СПС/СИ не является единственным. Приведем еще две возможные альтернативные схемы. 1 Фраза «Конец работы» означает выдачу пользователю соответствующего сообщения и перевод монитора в состояние ожидания очередной директивы. 474
1. При обсуждении ППО БСМЦ речь шла об использовании ППП в качестве необходимого и достаточного средства для успешного проведения вычислительных экспериментов системного моделирования. Недостатки такой формы организации СПС/СИ заключаются в следующем: функции по поддержанию СХИ и взаимосвязей между объектами слабо зависят от специфики ППП. Реализация этих функций в составе каждого пакета приведет к неоправданному усложнению его структуры и дополнительным затратам на разработку и эксплуатацию; каждый пакет программ может действовать только в рамках своей предметной области, тогда как предметная область пользователя обычно распространяется на предметные области нескольких ППП. В этих условиях остаются нерешенными вопросы создания единой СХИ пользователя и вопросы объединения экземпляров понятий отдельных ППП в конгломераты объектов. 2. Если предположить, что в СПС/СИ доступ к СХИ имеет только ИСС, то при обращении к ППП монитор должен будет передавать не идентификаторы объектов, а сами объекты. Однако при обращении к пакетам размерности результирующих объектов чаще всего неизвестны. Прием таких объектов монитором и последующая передача их ИСС для занесения в СХИ вызывают затруднения при реализации. Кроме того, путь объектов из СХИ в ППП и обратно проходит через две промежуточные компоненты (монитор и ИСС), что отрицательно влияет на быстродействие СПС/СИ. Логическая организация СХИ. Необходимость включения СХИ в состав СПС/СИ обусловлена поэтапным характером вычислительных экспериментов и связанной с этим целесообразностью сохранять результаты вычислений при завершении сеанса работы на ЭВМ. Данное обстоятельство сформулировано в виде требования к СПС/СИ и не зависит от способа организации системы, метода и применяемых языков программирования. Однако эти три фактора оказывают влияние на выбор формы логической организации СХИ, определяющей множество структур данных, которые могут быть представлены в СХИ, и способы доступа к ним. Наилучшей формой логической организации СХИ является интерактивная среда. Она наиболее полно соответствует особенностям построения СПС/СИ и обеспечивает требуемый режим доступа к данным. Интерактивная среда хорошо приспособлена для хранения компонент СПС/СИ, управления компонентами в интерактивной среде, организации диалоговых режимов работы. Интерактивная среда способна обеспечить интегрированное использование языковых и программных средств различных типов на машинно-независимой основе. Монитор, ИСС, ППП СПС/СИ в условиях МЦ могут быть построены на основе ПОСП, включенных в состав БСМЦ и поддерживаемых интерактивной средой. 475
СПС/СИ функционирует в интерактивной среде под управлением БСМЦ. Интерактивная среда непосредственно используется в качестве СХИ, поэтому создавать специальные программные средства СХИ СПС/СИ не требуется. Как известно, интерактивная среда может служить базой для разработки СОКИ. В данном случае СПС/СИ является одним из возможных вариантов СОКИ, предназначенным для обеспечения вычислительных экспериментов в системном моделировании. ППП СПС/СИ. Выполняемые ППП операции над понятиями описываются функциями вида $:{D[x ••• xDJH->{?>?X ••• XD°M}> N>1, M>1, где D(, ...,Djv; D?, ...,Dai — области допустимых значений исходных и результирующих понятий, экземпляры которых участвуют в операции. Термин ППП используется для обозначения различных типов программных средств, способных выполнять операции вида \|) [23, 48]. При обсуждении ППО СОД/СИМ (см. п. 13.3.2) мы разделяли пакеты программ на ППП простой структуры (пакеты, расширяющие библиотеки, и пакеты с автономными программами) и ППП сложной структуры (пакеты с произвольной или фиксированной последовательностями обращений к модулям). Такая классификация справедлива для тех видов ППП, которые предназначены для непосредственного взаимодействия с пользователем. Применение ППП в СПС/СИ вносит свою специфику: в СПС/СИ не могут быть использованы пакеты с автономными программами, поскольку обращение к ППП в СПС/СИ производится из программы монитора, а не из ЯУЗ ОС; функционирование пакетов программ под управлением монитора СПС/СИ осуществляется при условии унификации обращений к ППП. Поэтому наличие проблемно-ориентированного входного языка пакета не может служить классифицирующим фактором пакетов в СПС/СИ; автоматический междумодульный интерфейс по данным и управлению в СПС/СИ обеспечивается методом создания программных средств на основе понятий, наличием интерактивной среды и монитора. В силу этого отпадает необходимость в ППП с произвольной последовательностью обращений к модулям, которые организуют автоматический междумодульный интерфейс, но не обладают средствами автоматического планирования вычислений; ввиду унификации обращений к ППП в СПС/СИ программные компоненты какого-то одного ППП и разных пакетов не различаются по организации междумодульного интерфейса. Поэтому каждая программная компонента, к которой может непосредственно обратиться монитор СПС/СИ, совместно с внутренними компонентами, не работающими под управлением монитора, называется ППП СПС/СИ". 476
Учитывая сказанное, будем различать два типа ППП СПС/СИ — пакеты простой и сложной структуры — в зависимости от наличия в них средств автоматического планирования вычислительного процесса. Включение в состав пакета средств автоматического планирования вычислительного процесса отражается на потенциальных возможностях ППП СПС/СИ. Пакет простой структуры приспособлен для решения только одной задачи на основе единственного набора исходных данных. ППП сложной структуры используется для решения нескольких задач или же одной задачи, но при нескольких возможных наборах исходных данных. Примером ППП сложной структуры является уже известный нам ППП КОНТУР, с помощью которого находятся факторы графа на основе исходных данных ГРАФ, КОН, ПАРЫ, N-KH. ППП, предназначенные для решения нескольких задач, каждая из которых использует только один фиксированный набор исходных данных, представляют собой вырожденный случай ППП в СПС/СИ. Создание таких пакетов нецелесообразно. Модель предметной области ППП. Форма обращения к пакету. Модель предметной области создается на этапе проектирования ППП и содержит сведения, необходимые для разработчиков и пользователей пакета. Пользователем ППП, применяемых в СПС/СИ, является монитор системы. Вид модели предметной области пакета влияет на выбор приемлемой формы обращения к нему из мониторной программы. Модель предметной области ППП будем задавать четверкой вида М = {S, Т, Г, G), где S, Т — соответственно означают множества стандартных величин и операторов предметной области; Г: S-> T — многозначное отображение, такое, что Г-1 (t) — множество параметров оператора t ? 7\ задающих исходные данные; G : Т-> S — многозначное отображение, с помощью которого находится множество параметров оператора t ? 7\ определяющих результаты его работы. Каждая стандартная величина s ? S задается парой (Ps, V,), где Ps — понятие, к которому относится стандартная величина s, a Vs — множество ее значений. В общем случае стандартные величины отличаются от понятий: (s?S)-+s&G(T(s)); |G(OI-Hr-l(/)l = z, где z — число параметров оператора / ? 7\ С каждым оператором связано условие корректности его применения: Ct:Vt-+{0, 1), где Vt - V$i x • • • x VSm; Si, .... sm?T-4t). 477
Предикат Ct принимает значение 1, если оператор работоспособен при указанном наборе значений исходных данных, и значение 0 — в противном случае. Можно выделять динамические и статические, однозначные и неоднозначные ППП: пакет статический, если у V Ct (v) — 1> пакет однозначный, если у G(t) [) G(h) = 0. Невыполнение первого условия характерно для динамических ППП, а нарушение второго условия — для неоднозначных пакетов. Стандартным представлением модели предметной области ППП является орграф, имеющий два типа вершин: s — вершины (соответствуют стандартным величинам предметной области) и t — вершины (соответствуют операторам предметной области). Дуги такого орграфа представляют отображения Г и G. Если построенный указанным образом граф является связным и имеет пути длины больше 2, то ему соотносится ППП сложной структуры с автоматическим планированием вычислительного процесса. Граф предметной области ППП простой структуры имеет единственную вершину типа i. Передаваемая ППП информация формируется на основе предметной области М пакета. При обращении к пакету следует указать, значения каких стандартных величин известны, сами эти значения, значения каких стандартных величин требуется найти. Кроме того, возможна передача вспомогательной информации, например режим комментирования результатов работы ППП на экране или печатающем устройстве. Для ППП СПС/СИ передаваемая информация должна содержать идентификаторы стандартных величин, идентификаторы экземпляров понятий и вспомогательные сведения, представление которых можно ограничить строками символов или числовыми значениями. Обращения к пакетам формируются монитором динамически. Этому должен соответствовать формат передачи. Механизм обращения к пакетам должен быть распространен в языках программирования высокого уровня. Это условие позволит обеспечить иерархическое построение ППП и сделает возможным обращение к пакетам не только со стороны монитора, но и из вновь разрабатываемых ППП. В силу сказанного, пакеты СПС/СИ оформляются как подпрограммы с фиксированным числом параметров. Формальные параметры подпрограмм стандартизованы и представляют собой тройки упорядоченных наборов (Л, ?, Н)> где А — набор стандартных величин, которые могут выступать в качестве исходных данных ППП; Е — набор стандартных величин — возможных результатов работы ППП; Н — набор вспомогательных параме- 478
тров. При формировании списка фактических параметров наборы А и Е заполняются идентификаторами экземпляров понятий, имеющихся в СХИ, и специальным символом, который указывает, что значение соответствующей стандартной величины не известно (ее нахождение не требуется). Аналогичным образом заполняется и набор Н. Отличительная особенность сообщаемой вспомогательной информации состоит в том, что она передается не через идентификатор экземпляра понятия, а непосредственно в наборе #. Вспомогательная информация не содержится в СХИ. Оформление ППП в виде подпрограмм хорошо согласуется с использованием инструмента контролируемого программистом динамического связывания идентификаторов переменных в программе с объектами интерактивной среды, без которого невозможны вызов подпрограммы с динамически формируемым именем и организация доступа к экземплярам понятия в СХИ. Наличие такого инструмента — одно из важных и обязательных условий, предъявляемых СПС/СИ к БСМЦ. Динамическое установление связей с вызываемыми подпрограммами обеспечивает повышение технологичности процесса расширения состава ППП в СПС/СИ, устраняет ограничение на число ППП. Включение ППП в СПС/СИ не требует в этом случае внесения изменений в монитор. Оно проводится при помощи специальных команд монитора и вызывает занесение информации о модели предметной области включаемого пакета в СХИ в форме, доступной для ИСС. Язык пользователя СПС/СИ. Возможности ППП в СПС/СИ описываются для пользователя с помощью множества типов взаимосвязей \ST\ между экземплярами понятий предметной области. Каждый тип взаимосвязи ^задается в виде четверки Г - (/, {(Р\ R°))t {</» /?*>}, «X, V»), где / — идентификатор типа взаимосвязи; \(Ра, Ra)\ и \(Р\ Rb)) — соответственно множества пар идентификаторов понятий (Ра и Рь) и роли понятий (Ra, R ) в начальной (а) и конечной (Ь) точках взаимосвязи; |(Х, Y)\ — множество пар, где каждая пара (X, Y) задает идентификатор вспомогательного параметра X и область его допустимых значений Y. Вспомогательные параметры варьируются в зависимости от типа взаимосвязи. Они могут задавать режимы вычисления значений конечной точки, режим комментирования процессов вычислений, указывать тип выводного устройства, устанавливать временные или иные ограничения на процесс вычислений. В каждый конкретный момент состояние СХИ отображается для пользователя в виде структуры, элементами которой являются экземпляры понятий и связи между ними. Связь ? = A, {(&*, Ra)}, {<?» tf% {(X, У)}) задается аналогично типу взаимосвязи *#~ и которому она относится. В отличие от ?Г описание S содержит &а и Ф'— иденти- 479
фикаторы экземпляров понятий Ра и Рь соответственно для начальной и конечной точек связи и значения °У вспомогательных параметров вместо областей Y их допустимых значений. Состояния СХИ формируются с помощью директив. Каждая директива реализуется СПС/СИ сразу после ее получения. Директива оформляется в виде последовательности операторов языка пользователя СПС/СИ. Операторы выполняются в режиме интерпретации. В зависимости от назначения операторы языка пользователя образуют три группы: 1) операторы действия (выполняют изменения в состоянии СХИ); 2) справочные операторы (предоставляют пользователю информацию о состоянии СХИ); 3) служебные операторы (вносят изменения во множество понятий и типов взаимосвязи, предоставляемых пользователю). Операторы действия Назначение и условия применения НАЙТИ На основе заданного типа взаимосвязи У вычисляет значения экземпляров понятий &ь при известных значениях &а. Помещает результат вычислений в СХИ, фиксирует факт связи между а и Ь В СХИ до применения оператора должны отсутствовать объекты с идентификаторами &ъ. Для определенных ?Г могут отсутствовать а или Ь. Если а пли Ь состоят из одного элемента, то Т(а и соответственно R могут не указываться Пример: НАЙТИ: С ЕСТЬ КОМПОЗИЦИЯ ДЛЯ ОСНОВА-Л, СВЯЗЬ-В ПРИ ХРАНЕНИЕ ПОСТОЯННОЕ'; НАЙТИ ЗАНОВО То же, что и НАЙТИ, но о тех случаях, когда в СХИ может иметься совокупность экземпляров понятий, соответствующих &b для заданных 0" и &а УСТАНОВИТЬ Выполняет размещение в СХИ информации о наличии связи 9> указанного в операторе типа &~. К моменту выполнения оператора значения экземпляров понятий &а и &ь известны и хранятся в СХИ Пример: УСТАНОВИТЬ: КОММЕНТАРИЙ ДЛЯ А ПРИ ТЕКСТ- 'А— ПРИЧИННО-СЛЕДСТВЕННЫЙ ГРАФ ДИНАМО- ДИАГРАММЫ Н'; Установление связей между сформированными экземплярами понятий может быть связано с необходимостью контроля их значений Уничтожает экземпляр понятия, хранимый в СХИ. Экземпляр уничтожается, если он не входит ни в одну из хранимых связей Уничтожает экземпляр понятия и прерывает все связи, в которые этот экземпляр входит УДАЛИТЬ УДАЛИТЬ СЮ СВЯЗЯМИ 480
Пример? УДАЛИТЬ СО СВЯЗЯМИ: ГРАФ-А; Справочные операторы Назначение и условия применения ТИП ' ' Информирует пользователя о существующих типах взаимосвязи между экземплярами понятий. Если в операторе отсутствует начальный (конечный) список типа, то выполняет поиск среди типов взаимосвязи, не обладающих начальной (а) или конечной (Ь) точками Пример? ТИП: ГРАФ ЕСТЬ КОМПОЗИЦИЯ ДЛЯ?; ТИП: РЕЗУЛЬТАТ-ГРАФ ЕСТЬ КОМПОЗИЦИЯ ДЛЯ ОСНОВА-= ГРАФ, СВЯЗЬ=ГРАФ ПРИ ХРАНЕНИЕ=СИМВОЛЫ ТИП: ? ЕСТЬ КОММЕНТАРИЙ; НЕВЕРНО ТИП: ? ЕСТЬ КОММЕНТАРИЙ ТИН: ? ЕСТЬ ? ДЛЯ ?; (Пользователю предоставляется информация о всех существующих типах взаимосвязи) (знак «?» ставится в тех позициях шаблона, которые могут быть заменены произвольной информацией в отобранных экземплярах отношений) СВЯЗЬ Обеспечивает пользователя информацией о хранимых вСХИ связях между экземплярами понятий. Семантика оператора совпадает с семантикой оператора ТИП Пример: СВЯЗЬ: ? ЕСТЬ ? ДЛЯ А; СВЯЗЬ:РЕЗУЛЬТАТ=С ЕСТЬ КОМПОЗИЦИЯ ДЛЯ ОСНОВАЛА, СВЯЗЬ=В ПРИ ХРАНЕНИЕ^'ПОСТОЯННО' СВЯЗЬ:КОММЕНТАРИЙ ДЛЯ ОБЪЕКТА-А ПРИ ТЕКСТ- 'Л — ПРИЧИННО-СЛЕДСТВЕННЫЙ ГРАФ ДИНАМО- ДИАГРАММЫ Н' ОБЪЕКТ Предоставляет пользователю информацию об отношении вида «Понятие—экземпляр понятия», т. е. какими экземплярами обладает указанное понятие или к какому понятию относится данный экземпляр Пример: ОБЪЕКТ: А ЕСТЬ ?; ОБЪЕКТ: Л ЕСТЬ ГРАФ ОБЪЕКТ: А ЕСТЬ МАССИВ; НЕВЕРНО ОБЪЕКТ: А ЕСТЬ МАССИВ ОБЪЕКТ: ? ЕСТЬ ГРАФ; ОБЪЕКТ: А ЕСТЬ ГРАФ ОБЪЕКТ: В ЕСТЬ ГРАФ ОБЪЕКТ: С ЕСТЬ ГРАФ ОБЪЕКТ: ? ЕСТЬ ?; (пользователю предоставляется информация о всех экземплярах понятий, хранимых в СХИ) 481
ВИД Обеспечивает пользователя информацией об отношении частичного порядка на множестве понятий. Информация используется при регулировании применимости операций к различным понятиям Пример: (см. рис. 13.18) ВИД: ОРГРАФ ЕСТЬ ?; ВИД: ОРГРАФ ЕСТЬ ОДНОСТОРОННИЙ ВИД: ОРГРАФ ЕСТЬ СЛАБЫЙ ВИД: ОРГРАФ ЕСТЬ СИЛЬНЫЙ ВИД: ОРГРАФ ЕСТЬ НЕСВЯЗНЫЙ ВИД: ? ЕСТЬ ПРАДЕРЕВО; ВИД: ОДНОСТОРОННИЙ ЕСТЬ ПРАДЕРЕВО Служебные операторы ВВОДППП ВВОДПОН ВВОДТИП Назначение и условия применения Используется для включения ППП в состав СПС/СИ. Содержит описание включаемого пакета: его идентификатор; параметры Л, Е% Н\ S\ множество идентификаторов Р понятий» соответствующих s ? S; {Y}. Включает новое понятие в множество понятий, с которыми работает СПС/СИ. Оператор сообщает: идентификатор включаемого понятия; местоположение понятия в частично- упорядоченном множестве понятий СПС/СИ; обращение к ППП, с помощью которого может быть уничтожено данное понятие Местоположение понятия задается в виде перечисления подпонятий и более общих понятий для включаемого понятия. Для каждого подпонятия имеется определенное обращение к ППП, обеспечивающему формирование экземпляров включаемого понятия на основе экземпляров этого подпонятия. Аналогично для каждого более общего понятия описывается обращение к ППП, выполняющему формирование экземпляров более общего понятия на базе экземпляров включаемого понятия. Описания обращений к ППП позволяют установить соответствия между стандартными величинами пакета, исходными данными и результатами выполняемого пакетом преобразования Обеспечивает включение новых типов взаимосвязей в множество уже имеющихся типов Оператор содержит следующие данные: описание элементов точек а и fi; применимость взаимосвязи в операторах действия НАЙТИ и УСТАНОВИТЬ; идентификатор ППП, вычисляющего значение точки b связей типа / в случае применения оператора НАЙТИ; соответствие между элементами начальной (конечной) точки и стандартными величинами ППП; дополнительные исходные данные для оператора НАЙТИ, представляющие собой описания типов взаимосвязей. Конечные точки Ь этих взаимосвязей содержат дополнительные исходные данные, а начальные точки а получаются из начальной точки устанавливаемой взаимосвязи /; идентифи- 482
каторы вспомогательных параметров операторов НЛЙТИ, УСТАНОВИТЬ и, возможно, их стандартные значения Кроме того, в операторе могут быть указаны данные о действиях, связанных с контролем значений экземпляров понятий в случае, когда между экземплярами установлены связи заданного типа по оператору УСТАНОВИТЬ ИНИЦ Переводит СХИ в начальное состояние, при котором в СХИ нет ни одного экземпляра понятия, а множества ППП, понятий и типов взаимосвязей — пустые Наряду с рассмотренными здесь служебными операторами ВВОДППП, ВВОДПОН, ВВОДТИП, ИНИЦ язык пользователя СПС/СИ включает еще шесть служебных операторов, применяемых для уничтожения пакетов (ВЫВОДППП), понятий (ВЫВОДПОН), типов взаимосвязи (ВЫВОДТИП), выдачи справок о составе пакетов (СПРАВППП), понятий (СПРАВПОН), типов взаимосвязей (СПРАВТИП). Служебные операторы представляют собой особую категорию операторов языка пользователя. Они не применяются в ходе исследований. Их использование связано с задачами определения предметной области при подготовке вычислительных экспериментов. Служебные операторы рассчитаны на прикладных программистов МЦ. Их использование не связано с применением ППП, а возможности ИСС могут быть задействованы лишь в малом объеме. Поэтому служебные операторы доступны для реализации и вне монитора ППО СМ, но обязательно в рамках интерактивной среды БСМЦ. Взаимодействие монитора и ИСС. ИСС является универсальной компонентой СПС/СИ. Эта система не взаимодействует с ППП и функционирует только под управлением монитора. Вследствие этого обстоятельства ИСС можно рассматривать как составную часть монитора, действия которой закрыты для пользователя. Форма языка взаимодействия монитора и ИСС (языка запросов) не отражается на внешнем описании СПС/СИ и может устанавливаться при реализации системы. ИСС используется для сопровождения специальных информационных объектов, размещенных в СХИ, поиска и предоставления по запросу информации, содержащейся в этих объектах. Число информационных объектов и состав хранимой в каждом таком объекте информации фиксирован и не зависит от конкретного состояния СХИ. Все информационные объекты разделяются на две группы: 1) объекты, в которых содержатся сведения об экземплярах понятий, размещенных в СХИ, и связях между этими понятиями. Информация, сохраняемая объектами этой группы, изменяется при выполнении операторов действия языка пользователя. Необ- 483
ходимая пользователю информация от таких объектов передается ему справочными операторами СВЯЗЬ, ОБЪЕКТ; 2) объекты, характеризующие множества ППП, понятий, типов взаимосвязей, доступных при реализации директив пользователя. Данные, содержащиеся в этих объектах, изменяются с помощью служебных операторов. Вся необходимая информация от объектов второй группы передается пользователю при выполнении служебных операторов ввода. СХИ должна допускать структуры данных, пригодные для размещения информационных объектов обеих групп. Основные функции ИСС, результаты выполнения которых Обозначение запрашиваются монитором при реализации операторов функции действия и справочных операторов языка пользователя При обработке справочных операторов монитор переводит /х операторы в запросы к ИСС, обращается с этими запросами к ИСС, а затем преобразует полученные ответы в формы, пригодные для пользователя. При этом ИСС формирует ответы на запросы монитора, семантика которых совпадает с семантикой справочных операторов При обработке оператора НАЙТИ монитор формирует и пе- /2 : 9~ —> Z редает ИСС запрос относительно описания ППП, пригодного для реализации взаимосвязи заданного типа 0~ но этому оператору. Описание ППП имеет вид четверки Z = C\ Л2, EZi Hz)y где 3 — идентификатор пакета, Л2— соответствие между элементами начальной точки типа взаимосвязи и элементами формального параметра Л; Ez и Нг имеют смысл, аналогичный Л2, но только соответственно для конечной точки и вспомогательного параметра. ИСС выдает ответ на такие запросы, обеспечивая монитор необходимой ему информацией для формирования обращений к ППП ИСС устанавливает путь (пути) преобразования 2? = (Zlt f3 : (plt p2) —> i Z2, ..., Zn), где Zj, i = 1, n — описание ППП, экземпляров понятия pi в экземпляры понятия р2 (здесь рх — подпонятие, а рг — понятие более общего вида), i? устанавливает факт: применение ППП в указанном порядке приведет к порождению экземпляра понятия р2 из исходного понятия р1 ИСС предоставляет информацию, необходимую монитору fA'&~—*Q для формирования обращений к ППП с использованием дополнительных исходных данных для оператора НАЙТИ- Эта информация задается тройками вида Q = (#"g, Nq, s#q)> где &~g — тип взаимосвязи, с помощью которой оператору НАЙТИ предоставляются дополнительные исходные данные; Jf q — соответствие между элементами начальных точек типов взаимосвязей #"" и 0~' q\ JCq — соответствие между элементами конечной точки взаимосвязи типа &~q и элементами формального параметра Л для ППП, идентификатор Э которого можно получить с помощью /2 : ?Г—> Z ИСС запоминает в информационных объектах сведения о по- /ь нятиях, к которым относятся хранимые в СХИ экземпляры понятий, а также сведения о наличии связей между экземплярами понятий ИСС обеспечивает уничтожение экземпляра понятия в СХИ, /в : Р—> iZ) предоставляя монитору информацию о форме 3) обращения к ППП, выполняющему уничтожение экземпляров понятия р 484
ИСС уничтожает в информационных объектах все сведения f1 об указанных экземплярах понятий, включая информацию о связях, инцидентных этим экземплярам понятий. Такая функция ИСС связана с выполнением оператора УДАЛИТЬ со связями. В порядке иллюстрации рассмотрим, каким образом монитор СПС/СИ использует информацию, предоставляемую ему ИСС, при выполнении оператора НАЙТИ. Для этого необходимо явно выделить четыре этапа: 1) формирование плана вычислений. Создается последовательность S?= (Zlf Z2, ..., ZM)> выполнение которой приводит к решению поставленной в операторе задачи. Каждый элемент 5?lL в 2? является описанием ППП C^, Л^, Е1&, Hlcg). Тот факт, что М > 1, означает необходимость реализации цепочки операций, применяемых к разным понятиям. Формирование 3? происходит без участия ППП. Запросы от монитора приводят к выполнению ИСС функций /j —/4; 2) реализация плана вычислений. На этом этапе осуществляется взаимодействие монитора с ППП без обращений к ИСС. Монитор формирует для каждого Z^ из последовательности 9? обращение к ППП с идентификатором &1% и организует вызов этого пакета; 3) уничтожение промежуточных данных расчета. Промежуточными данными являются экземпляры понятий, полученные в результате действий ППП, имеющих идентификаторы «3^, /= 1, М — 1. На данном этапе ИСС реализует функцию /6. Функция /7 не используется, поскольку сведения о промежуточных данных ранее не были занесены в информационные объекты СХИ; 4) занесение справочной информации. Информация об установленной связи и элементах конечной точки связи заносится в информационные объекты СХИ. ИСС выполняет при этом функцию /5, 13.5. ППП СПС/СИ 13.5.1. Формальное описание предметной области вычислительного эксперимента Понятия предметной области. Для дальнейшего изложения необходимо установить строгий смысл термина «Понятие» [14]. Введем обозначения: А = {at\i = 1, п\ — некоторое частич- но-упорядочешюе множество типов данных; Dt — множество допустимых значений данных типа ас FA = {fkJ\i = 2, п\ / = 1* i — 1; k = 1, mFn ) — множество функций вида fl : Di-> Dj\ фЛ = Wg \r = 1, p; i = 2, n\ g = 1, m?i } — множество функ- 485
ций вида ф^ : Тг-> D,, где Тг --" Dt X D,- X ... X DUr — декартово произведение, элементы которого принадлежат множеству \Dj\j = 1, *— 1}. Образующие произведение сомножители Djq{q = 1, Л'7) могут повторяться. Предположим, что все функции из Я и Ф^1 удовлетворяют двум следующим условиям: 1) W i Ф") П (Г, - D,, х D,, х • ¦ • х 0,„) a- - „з у/- »«((/:;¦(/) t!;W)y. vv'*• '*w/ 2) [ft € ^ W 3 fGV = D,t X D/t X • • • X D,N) П nl^K' /!';|^ln nf v *' = ф?((#(Л ••-№))) Функции ф^ ? Ф называются инициализирующими функциями данных типа at. Кортеж Sr называется формой представления aif если (ф7 € ФЛ) П GV = D7l х D/f х ... X D/„) => Sr = <a/x, a/f, ..., a/lv). Обозначим через Ci= (J U a# , * = 1, л множество типов данных, элементы которого будем рассматривать в качестве характеристик данных типа at. Назовем у операцией над типом данных а^А, если данные этого типа участвуют в качестве аргументов или результатов операции. Пусть <Уа — полное множество операций, допустимых над а ? А\ L — некоторый язык программирования, предназначенный для кодирования алгоритмов выполнения операций из множества Щ ~ \] °уа\ °Ца— множество (возможно, пустое) а ? А операций, допустимых в языке L над данными типа а ? А. Операцию у ? <Уа будем называть реализуемой в языке L на основе функций Фл, если у ? °Уа и алгоритм выполнения операции у можно закодировать на основе использования только реализуемых операций над характеристиками данных типа а. В частном случае, когда множество характеристик данных типа аь пусто, операция У € °Уаг будет реализуема в языке L, если у ? ^д.. 486
Множество типов данных А можно считать реализуемым в языке L на основе функций Фл, если для всех а ? А и любых У 6 °?аУ реализуема в L. Далее мы будем рассматривать только реализуемые множества типов данных А. Тип данного а ? А назовем понятием нулевого уровня интеграции (обозначение а0), если множество Са характеристик данного этого типа пустое. Тип данного а ? А назовем понятием /-го уровня интеграции (/ ^ 1) (обозначение а'), если этот тип данного обеспечивается операциями создания, дублирования, контроля, уничтожения конкретных экземпляров данных типа а и операциями вычисления значений их характеристик. В качестве экземпляров понятия рассматриваются конкретные его представители. Понятие а1 может иметь характеристики меньшего, чем /, уровня интеграции, причем в состав этих характеристик обязательно должно входить хотя бы одно понятие (/ — 1)-го уровня интеграции. Операции создания, дублирования, контроля, уничтожения конкретных экземпляров данных типа а1 (I >- 1) и операции вычисления характеристик а1 называются операциями доступа к понятию а1. Операции доступа, и только они, имеют возможность манипулировать внутренними представлениями понятия. Рассмотрим этот вопрос более подробно. Операции создания понятия щ ? А (I ^ 1; / — 2, п) реализуют функции <р?' ? Фл (г = 1, р; g — 1, mfi ). Число операций создания понятия а\ определяется количеством функций ф^ в множестве Фл. В результате применения операции формируется экземпляр понятия а\ на основе указанных экземпляров его формы представления ST. Создание экземпляра понятия состоит в его приведении к форме (формам), в которой этот экземпляр впоследствии может быть использован операциями дублирования, контроля, уничтожения и операциями вычисления характеристик. Созданный экземпляр сохраняется без изменений до момента уничтожения, так как операции модификации экземпляров понятий отсутствуют. Операции вычисления характеристик понятия а\ ? A (i = = 2, п\ I > 1) реализуют функции /?' ? FA (/ = 1, i = 1; k = = 1, rnFij ). Числом таких функций определяется количество операций вычисления значений характеристик понятия а\. В результате применения операции создается экземпляр понятия а) (х < /) на основе экземпляра понятия а\. Каждая операция вычисления значений характеристики понятия имеет доступ к внутренней форме хранения только своего аргумента. Поэтому в процессе выполнения эта операция прямо или косвенно обращается к операциям создания того понятия, экземпляром которого является ее результат. 487
Операции дублирования, контроля и уничтожения понятий не имеют аналогов среди функций множеств FA и Фл. Эти операции имеют доступ к внутренней форме хранения своих аргументов. Каждое понятие обеспечивается одной операцией дублирования, одной операцией контроля и одной операцией уничтожения. Операция дублирования понятия а1 ? А (I ^ 1) копирует значение указанного экземпляра понятия а1 и присваивает копии оригинальное имя. С применением операций создания или дублирования понятия а1 связаны два возможных способа формирования экземпляров этого понятия. Операция контроля понятия а1 ? А (/ ;> 1) предназначена для проверки факта, является ли указанный объект экземпляром понятия а1. Если такая проверка завершается успешно, то результат применения операции принимает истинное значение, в противном случае — ложное. Результатом операции уничтожения указанного экземпляра понятия а1 ? А (/ ;> 1) является уничтожение этого экземпляра. Основное отличие понятий от абстрактных типов данных [2, 20, 53] связано с определением операций доступа к понятиям. В случае абстрактных типов данных предполагается, что любая операция над типом является операцией доступа, т. е. манипулирует внутренним представлением абстрактного типа. Поэтому при построении программных средств по методу абстрактных типов данных необходимо соблюдать специальные правила, что, безусловно, является препятствием для использования всех тех программ, которые были разработаны без учета этих правил. В приведенном нами определении понятия из всего множества возможных операций над понятием выделен узкий круг операций доступа. Эти, и только эти, операции могут манипулировать внутренними представлениями понятий. Говоря о ПИП СПС/СИ (см. п. 13.4.2), мы отмечали, что операции над понятиями реализуют функции следующего вида: ур:Т;-+Т0; T^DhxDi%x ••- X DJn; Т0 -= Dh xfli2x...x DjM9 где Dj (q — 1, N) и Djs (S = 1, M) суть элементы из [D}\ j = — 1, n\y а кортежи /a/ , ..., a^ и /a7 , ..., ay~M^> означают соответственно списки аргументов и результатов операции. Можно допустить, что выполнение каждой конкретной операции ур над понятием а ? А связано с действием некоторой строго определенной конечной последовательности операторов какого-то языка программирования. Программные компоненты подобного назначения в дальнейшем называются блоками. При разработке блоков используются модели декомпозиции и агрегации понятия. Модели понятий. Пусть задано понятие at ? A (i — 1, я)- Пара {Hi, Ft) представляет собой модель декомпозиции поня* 488
Рис, 13.20, Граф GF модели деком- Рис 13.21. Граф G| модели агрега- позиции понятия а8: ции понятия aQ: 0, 1, 2, 3 •— уровни интеграции понятия а§ 0, 1, 2t 3 >~ уровни агрегации понятия а§ тия аи если Ht = at [} Г (at), (Г (at)) — транзитивное замыкание [30] отображения Г- А -*• А [) 0, такого, что Г (at) = Cif и, кроме того (/Г 6 Ft) о (/Г € ^Л) Л («о € Я,) П (а. € Я,); у = 2, i\ w = 1, у — 1; k = 1, mf/ . Пара (Я*, Ф^) задает модель агрегации понятия аи если Hi = a/ U Г (а,)_и_ (фг/^Ф0 о (ф? € ФЛ) П (*/ € Hi) Л Л (Sr s Hi); r - 1, р; / - 2, *; ? = 1, m?f'. Модели декомпозиции и агрегации удобно задавать в виде ориентированных мультиграфов, например, рис. 13.20 и 13.21. Мультиграф GFi = (Hi, Ui) с помеченными дугами представляет собой модель декомпозиции понятия at ? Л, если множество вершин мультиграфа и множество вершин Ht модели совпадают, а множество дуг Ui мультиграфа биективно отображается на множество Ft функций модели. Таким образом, каждая конкретная дуга Uk в G* имеет в качестве своей начальной вершины понятие av ? Ни а в качестве концевой вершины — понятие aw ? Hi. Эта дуга соответствует функции /?ш ? Fi модели декомпозиции. Идентификатор функции /*ш используется как метка дуги uvkw. Мультиграф GFi является односторонне связным орграфом без контуров. Для всех вершин мультиграфа GF выполняется условие d+ (at) = 0; d+ (a;) =/=0; i-ф /, где d+ (at) и d+ (aj) означает соответственно полустепени захода в вершины д$ и aj. Для каждой вершины aj ? Ht (j = 1, i — 1) существует один или несколько элементарных путей в эту вершину из вершины аи Каждый путь указывает возможный способ нахождения экземпляров понятия <zj на основе экземпляров понятия aif т,. е. функцию 26 П/р СВ. Емельянова 489
13,11 Рис. 13.22. Модель декомпозиции понятия ПЛАН-ГРАФИК Fil :Dt-+Dh m = Т72, декомпозиции понятия а до составляющей aj (здесь Z — число путей из вершины at мультиграфа GFi в вершину df). Очевидно, что функция F{L\ имеет смысл функции эквивалентности. Пример 13.5. Рассмотрим пример модели декомпозиции понятия ПЛАН- ГРАФИК гибкой производственной системы (ГПС) [43, 44, 51 ]. Представление модели декомпозиции понятия в виде мультиграфа GFt дано на рис. 13.22. Использованные на рисунке обозначения вершин имеют следующий смысл: aj — идеи- тнфикатор оборудования; a°z — объемы партий деталей; а§ — моменты прибытия партий деталей в зону ГПС; aj — моменты отгрузки партий деталей; ag — длительность обработки; ag — интервалы времени ожидания; а? — моменты окончания работ; а§ — список единиц оборудования; а§ — список партий деталей; а% — начало плана-графика; a?t — окончание плана-графика; а?2— последовательность обработки по всем единицам оборудования ГПС; aj3 — ПЛАН- ГРАФИК. Идентификаторы функций декомпозиции /713.1 /аз,2 /713.3 /713.4 /713*5 /713.6 /713.7 /713.8 /713.9 /713,10 /713.11 /713.14 /713.13 Модели функций декомпс (*?3> Я3'12' *?*> Л2'1, (а?3, /13'12, а?2, /12'2, (а?з. /13'12> *Г2, /12'3, (а?3. /13.12, а?2, /12.4, (а?3, /i3.iif aht /12,5, (А?3. /13'12> *?2> /12'6. (а?3, /13«", а?2, /12'7, Из, Р'8, 4) №з> /13'9, а\) (a?3. Р'10. alo) (а?з, /"•", ah) (aL p.iit ab) (al) )зищ a}) a\) 4) el) «i) fli) "W Ориентированный мультиграф Gf = (Xtf Yi) с помеченными дугами представляет модель агрегации понятия а* 6 Л, если он построен по следующему правилу: 1) |*i| = \Ей\+ |Я,|, ?|S{Sr|r= 1771. «г- кортеж аргументов функции <р^ ? Ф/; 2) вершины графа Gf имеют метки, соответствующие обозначениям понятий из Et и Ht\ 3) каждой функции <р<7 ? Ф, (г = Т7р; / = 277; g = 1, mfi ) ставится в соответствие дуга, началом которой является вершина Sr, а концом — вершина aj. Такие дуги в качестве своих меток имеют идентификаторы инициализирующих функций; 490
4) от вершины а/ к вершине Sr в графе Gt направлено столько дуг, сколько раз понятие aj встречается в кортеже Sr. Каждая такая дуга помечается соответствующим номером понятия <2j в списке аргументов, входящих в кортеж Sr. Общее число дуг графа Gi можно найти по формуле \Yi\ = \d>i\+ I] '(Sr). Sr?Et l(Sr) — длина кортежа Sr. Мультиграф Gf является односторонне связным орграфом без контуров и обладает единственной вершиной (вершина at) с нулевой полустепенью исхода. Для каждой вершины х ? Xt на графе Gf можно указать путь из л: в а<. Если обозначить через Q множество путей в Gi , связывающих вершины из Hi с вершиной aiy то каждый путь в Q будет удовлетворять условиям следующего вида: 1) если каждый из двух путей щ и со2 принадлежит множеству путей Q, то сох не может быть частью со2, а со2 не может быть частью сох; 2) если путь со € Q проходит через вершину а ? Еи то каждая дуга, заходящая в а, является элементом какого-то одного пути из множества Q; 3) не существует какого-либо множества й' cr Q, одновременно удовлетворяющего первым двум условиям. Кортеж Ва. будем называть базой понятия ас ? Л, если его элементами являются понятия из множества Н% и существует построенное по сформулированным выше правилам множество Q путей в графе Gf, такое, что: понятие входит в состав кортежа Ва тогда и только тогда, когда оно соответствует вершине, являющейся началом одного из путей множества Q; понятие дублируется в составе кортежа Ва столько раз, сколько существует в множестве Q путей, начинающихся с вершины, представляющей данное понятие. Каждое множество Q используется для выбора способа нахождения экземпляров понятия at на основе экземпляров понятий одной из баз понятия at. Поэтому множества путей вида Q рассматриваются как модели функций агрегации баз понятия at до понятия й{. Функции агрегации имеют вид Ф^ : Т2 -*- Di9 где Тх — декартово произведение множеств допустимых значений понятий, входящих в базу Ва понятия at\ z~\yZ\ q = 1, Qz, Z — число баз понятия at\ Qz — количество множеств путей вида Q в графе Gf, инициализирующих базу Ва понятия ait Как и в случае функции декомпозиции понятия, функции агрегации Ф$' имеют смысл функций эквивалентности, если Ва = Пример 13.6. Рассмотрим пример модели агрегации понятия ОБРАБОТКА ДЕТАЛИ, входящего в состав предметной области задач календарного плани- 16* 491
Рис. 13.23. Модель агрегации ОБРАБОТКА ДЕТАЛИ понятия требуемое обработка; качество обработки; рования работы ГПС [39, 51]. Модель агрегации имеет вид: (Hlut Ф10), Н10 = {at \ i = 1,10}, Ф10= {Ф17, Ф27, Ф38, Ф48, ФБ9, Ф8'10}; Sx = (а?, а?); 52 = <а$>; 53 = « а?, а°5); 54 - « 4I 55 = (ai, а6°); 56 = {a\t фщ Граф G%t соответствующий этой модели, приведен на рис. 13.23. Вершины графа интерпретируются следующим образом: а? — спецификация детали; а§ — технологический маршрут детали; а% — длительность обработки; а\ — длительность подготовки; а§ — а§ — число обработок; а] — деталь; а\ — множество обработок; а\0 — обработка детали. Реализация операций обработки на основе моделей понятий. Функции \|) : Tj -+• Т0 являются сложными функциями многих переменных. При их реализации используются функции \|/ s Т[ -^ Т„ такие, что: элементы списка аргументов \|/ входят в список аргументов \|г, любой элемент списка результатов \|) имеет базу, все компоненты которой суть элементы списка результатов \|/; применение \|) к конкретному кортежу Д; экземпляров понятий в целях получения кортежа Д0 экземпляров понятий сводится к последовательности вычислений кортежей: Д{ — путем применения функций декомпозиции понятий, являющихся аргументами \|), к соответствующим элементам кортежа А/; До — путем применения \|/ к А/; А0 — путем применения функций агрегации понятий к элементам кортежа До. Ввиду того, что множество Д понятий предметной области ППП подразумевается реализуемым на основе Фл, должен существовать, по крайней мере, один способ реализации \|/, удовлетво- МАСС ИВ СТРОК СПИСОК ищ? кспв ЦСЛОЕ число ОРГРАФ БИТОВАЯ СТРОКА МАТРИЦ-' МАССИВ 6И WBblX СТРОК \ю МАССИВ ЦЕЛЫХ ЧИСЕЛ 11 МАССИВ БУЛЕВЫХ ЧИСЕЛ Рис. 13.24. Фрагмент модели декомпозиции понятия ОРГРАФ: / — ПЕРЕЧЕНЬ ВЕРШИН; 2 — МАТРИЦА, СМЕЖНОСТИ; 3 — МАТРИЦА ИНЦИДЕНЦИЙГ 4 — ТЕЛО СПИСКА; 5 — ДЛИНА, СПИСКА; 6 — КОЛИЧЕ*- СТВО_ СТРОК; 7 — КОЛИЧЕСТВО СТОЛБЦОВ; 8 — ФОРМА ХРАНЕНИЯ БС; 9 — ФОРМА ХРАНЕНИЯ МБС; 10~— ФОРМА ХРАНЕНИЯ МЦЧ; Л — ФОРМА ХРАНЕНИЯ^ МБЧ 492
ОРГРАФ Рис. 13.25. Фрагмент модели агрегации понятия ОРГРАФ: А ~ ИНЦ; В — СМЕЖН; С ~ СПИСОК; Е ~ БС; F — МБС; G — МЦЧ; И — МБЧ ряющий сформулированным условиям. Если имеется несколько способов реализации \|/, то выбирается лучший из них. Пример 13.7. Построим блок, с помощью которого будет выполняться операция объединения двух орграфов, не являющихся мультиграфами. Результирующий граф может быть мультиграфом. Функцию t|) объединения орграфов Г1 и Г2 будем задавать в виде 114]: ОРГРАФ = ОБЪЕДИНЕНИЕ (ОРГРАФ, ОРГРАФ). Фрагменты моделей декомпозиции и агрегации понятия орграф приведены на рис. 13.24 и 13.25. Выберем в качестве г|/ функцию ОБЪЕД: МАССИВ, ЦЕЛЫХ. ЧИСЕЛ, ЦЕЛОЕ- ЧИСЛО, ЦЕЛОЕ- ЧИСЛО, МАССИВ. СТРОК = ОБЪЕД (БИТОВАЯ. СТРОКА, ЦЕЛОЕ. ЧИСЛО, МАССИВ. СТРОК, БИТОВАЯ- СТРОКА, ЦЕЛОЕ. ЧИСЛО, МАССИВ. СТРОК), где в списке результатов понятие МАССИВ. ЦЕЛЫХ_ ЧИСЕЛ и понятие МАССИВ. СТРОК определяют матрицу инциденций орграфа и список его вершин, а понятие ЦЕЛОЕ. ЧИСЛО — число вершин и дуг графа. Каждый исходный орграф задается матрицей смежности, хранимой как БИТОВАЯ- СТРОКА, списком вершин и числом вершин. Функцию ОБЪЕД можно реализовать, например, на ПЛ/1. Блок, соответствующий этой функции, можно кодировать, отлаживать и использовать вне способа программирования на основе понятий. Алгоритм работы блока имеет следующий вид: 1. Ml = МАТРИЦА- СМЕЖНОСТИ (П). 2. М2 = МАТРИЦА. СМЕЖНОСТИ (Г2). 3. В1 = ФОРМА. ХРАНЕНИЯ- БС (Ml). 4. В2= ФОРМА. ХРАНЕНИЯ- БС (М2). 5. КС1 = КОЛИЧЕСТВО. СТРОК (Ml). 6. КС2 « КОЛИЧЕСТВО. СТРОК (М2). 7. С1 = СПИСОК- ИНДЕКСОВ (П). 8. С2 = СПИСОК- ИНДЕКСОВ (Г2). 9. МС1 = МАССИВ. СТРОК (С1). 10. МС2 = МАССИВ. СТРОК (С2). 11. (ВЗ, ККЗ, КВЗ, МСЗ>= ОБЪЕД (В1, КС1, МС1, В2, КС2, МС2). 12. СЗ = СПИСОК (МСЗ, ККЗ). 13. МЗ = МЦЧ (ВЗ, ККЗ, КВЗ). 14. ГЗ = ИНЦ (МЗ, СЗ), 493
Множество необходимых операций обработки может расширяться при эксплуатации понятий. С этим связано создание новых программных компонент. Операции доступа образуют небольшое по численности подмножество всех операций, выполняемых над понятиями. Эти операции практически не изменяются и образуют основу для автономного построения (без учета особенностей организации ранее созданных программных средств обработки) операций обработки. Блоки — это простейшие неделимые компоненты ППП в СПС/СИ, с помощью которых реализуются операции обработки понятий. Они непосредственно используют СХИ только при работе с понятиями нулевого уровня интеграции. Блоки, оформленные как подпрограммы с фиксированным числом параметров (см. п. 13.4.2), представляют собой ППП СПС/СИ простой структуры. Вопросы создания ППП СПС/СИ сложной структуры на базе блоков будут рассмотрены в п. 13.5.3. 13.5.2. Хранение экземпляров понятий Операции доступа манипулируют внутренними представлениями понятий. Какие-либо специальные методы для реализации в СПС/СИ операций доступа не требуются. Важным условием успешного выполнения этих операций является организация хранения экземпляров понятий в СХИ. Понятия нулевого уровня агрегации (/ = 0) создаются в СПС/СИ на основе структур данных, встроенных в системы программирования, поддерживаемые интерактивной средой. Хранение экземпляров понятий нулевого уровня агрегации в СХИ и символический доступ к ним обеспечиваются средствами БСМЦ. Очевидно, что СПС/СИ должна иметь аналогичные средства для хранения экземпляров понятий (/ > 1)-го уровня агрегации. Вопрос о размещении в СХИ экземпляров понятий ненулевого уровня агрегации естественным образом решается при условии, если экземпляры созданных в СПС/СИ понятий заключаются в структуры данных, поддерживаемых интерактивной средой. Будем описывать каждое понятие через его формы представления (п. 13.5.1). Выделим непустое множество S' s «S [Sr\r = 1, р\ форм представления понятия а\ (I > 1). Экземпляр х понятия а\ будем считать хранимым через его форму представления Sr ? S', если составлен кортеж Y = (уъ ..., yN) экземпляров понятия blf ..., bN такой, что [<Ьг Ы = 5Г1П[(ЗФ^ФЛ):ФГ/(П = ^]> где Фл — множество инициализирующих функций. Мощность множества S' определяет количество форм представления понятия а\% используемых для организации его хра- 494
нения. Если | S' | = 1, то понятие хранится в единственной форме представления. Такой способ хранения целесообразно применять в тех случаях, когда выбранная форма представления достаточно эффективно используется каждой из применяемых операций вычисления характеристик понятия. Если же операции вычисления характеристик понятия разбиваются на группы таким образом, что эффективная реализация операций каждой группы обусловлена хранением понятия в какой-то определенной форме представления, то в S' включаются все необходимые формы представления понятия. Операции доступа при этом реализуются одним из двух возможных способов: 1) при создании экземпляра понятия осуществляется его размещение в СХИ сразу во всех формах представления, включенных в S'; 2) созданный экземпляр понятия размещается в СХИ в единственной форме представления, включенной в S'. Остальные формы появляются в СХИ по мере необходимости при эксплуатации экземпляра понятия. Такой способ можно применять при условии реализации операций доступа в СПС/СИ специальными пакетами программ сложной структуры, в которых обеспечиваются возможности планирования вычислительных процессов. При этом экземпляр понятия может быть создан в качестве промежуточного данного некоторого расчета и уничтожен после применения к нему одной операции вычисления характеристики понятия. Для организации хранения понятий в СХИ необходимо, чтобы интерактивная среда поддерживала структуры данных, пригодные для размещения элементов множества S' в памяти. Простейшим примером такой структуры является массив символьных констант. 13.5.3. ППП сложной структуры Средства автоматизации планирования вычислительного процесса являются неотъемлемой частью каждого ППП сложной структуры, реализующего в СПС/СИ операции доступа и обработки понятий. Получая необходимую им информацию о модели предметной области ППП, эти средства генерируют последовательности операторов, выполнение которых впоследствии должно привести к решению поставленных задач. Языки высокого уровня располагают средствами управления вычислительным процессом (операторы условной и безусловной передачи управления), с помощью которых могут отображаться графы предметных областей ППП при планировании вычислений. Однако использование только этих средств связано с неоправданно большими затратами на разработку, программирование и, в особенности, отладку пакетов, работающих с большими графами 495
предметных областей. Включение средств непроцедурного планирования вычислительного процесса в системы построения ППП [3, 26, 48] пр'ивело к существенному улучшению рассматриваемой ситуации. Для программирования управляющей части пакетов в таких системах применяются специальные языки. Мы рассмотрим один «непроцедурный стиль программирования», в рамках которого разработка управляющих частей ППП может осуществляться на языках высокого уровня. Введем важное для наших целей понятие абзаца. Абзац — это четверка </, О, С, В), где В — тело абзаца, реализующее оператор модели предметной области ППП. Тело абзаца может представлять собой блок, обращение к ППП СПС/СИ простой или сложной структуры, последовательность операторов, обеспечивающих выполнение операций доступа к понятию; / — множество идентификаторов стандартных величин, значения которых должны быть известными к моменту применения абзаца; О — множество идентификаторов стандартных величин,значения которых вычисляет абзац; С — условия корректности применения тела абзаца (С зависит от /). Вся относящаяся к абзацу информация имеется в модели предметной области ППП. При кодировании абзаца предполагается, что обращение к абзацу разрешается только тогда, когда выполнились ограничения на работоспособность абзаца, связанные со значениями стандартных величин, составляющих множество /. Текстуально абзац представляет собой помеченную группу операторов языка программирования, выполняющих следующие действия: если С (Zx) = 0, то на 3; выполнение тела абзаца; на 7, где Zx — значения стандартных величин из множества /; метки 3 и 7 задают пункты алгоритма работы управляющей части ППП: 1. Формирование значений IS, RES, N, LI, IN, OUT. 2. <LL, LO, P) - ПЛАН (IS, RES, N, LI, IN, OUT); ISW = = IS; на 4. 3. <LL1, LOl, PI) = МОДИФИКАЦИЯ (ISW, RES, N, LI, IN, OUT, LL, LO, P, LO (i, j)); P = PI; LL - LL1; LO = LOl. 4. Если Р = 0, то сбойный выход из ППП. 5. j = ВЫБОР (LL, LO, P); i = I. 6. Переход по метке LO (i, j). 7. Если i < LL (j), то i - i + 1, ISW = ISW U OUT (k), на б; иначе конец. В п. 6 по оператору перехода управление передается абзацу с меткой первого оператора LO (i, j). После окончания работы абзац возвращает управление на п. 3 или п. 7. В п. 7 значение к выбирается из условия LO (i, j) = LI (к). В алгоритме использованы следующие обозначения: N — число абзацев ППП; RES — множество идентификаторов стандартных величин, значения которых необходимо найти; IS — множество идентификаторов стандартных величин, значения ко- 496
торых известны к моменту обращения к ППП; LI — одномерный массив, 1-м элементом которого является метка первого оператора /-го абзаца, i = 1, N; OUT — одномерный массив, /-м элементом которого является множество О стандартных величин /-го абзаца, i — 1, N; IN — одномерный массив, t-м элементом которого является множество / стандартных величин /-го абзаца, / = 1, N; LL, LL1 — одномерные массивы, /-е элементы которых указывают длину /-го пути расчета; LO, L01 —двумерные массивы, /-й столбец которых содержит /-и путь расчета, / = 1, Р; Р, Р1 — числа возможных путей расчета; ISW — множество стандартных величин, значения которых известны в текущий момент времени. Будем называть путем расчета упорядоченное множество абзацев, последовательное выполнение которых приводит к решению поставленной задачи вычисления характеристик понятий. Каждый абзац задается меткой своего первого оператора. Количество абзацев, которые нужно выполнить, выражает длину пути расчета. Множества IS и RES (IS f| RES = 0; RES Ф 0) создаются на основе информации, передаваемой при обращении к ППП в параметрах А и Е (см. п. 13.4.2). Структуры данных, применяемые для представления этих множеств, определяются по смыслу процедур ПЛАН и МОДИФИКАЦИЯ. В частном случае множества IS и RES могут быть заменены соответствующими фактическими значениями параметров А и Е. Значения массивов LI, IN, OUT и переменной N к моменту кодирования управляющей части ППП предполагаются известными. При описании алгоритма были использованы процедуры ПЛАН, ВЫБОР, МОДИФИКАЦИЯ. Процедуры ПЛАН и МОДИФИКАЦИЯ имеют универсальный характер и могут применяться при построении различных ППП сложной структуры. Процедура ВЫБОР обычно настраивается на какую-то определенную предметную область. Процедура ПЛАН осуществляет планирование вычислительного процесса без учета условий корректности применения абзацев. В ее задачу входит нахождение всех минимальных неэквивалентных путей расчета и размещение информации о них в переменных с идентификаторами LO, LL и Р. Путь расчета X будет считаться минимальным, если не существует другого пути X' для расчета RES по IS, такого, что Я а Х\ где Хи X' — множества абзацев в X и X' соответственно. Два пути расчета X и X' являются эквивалентными, если X = X'. Имеются различные варианты алгоритмов планирования вычислений [40, 50]. В основу построения процедуры ПЛАН может быть положен какой-либо один из них. Процедура МОДИФИКАЦИЯ используется при необходимости внесения изменений в множество путей расчета, найденных 497
с помощью процедуры ПЛАН. Рассмотрим внесение изменений, возникающее при невыполнении условия С корректности применения некоторого абзаца, входящего в предполагаемый путь расчета. Например, если: абзац с меткой L неприменим, то из массива LO удаляются все те пути, в которые этот абзац входит; к моменту установления факта о неприменимости абзаца с меткой L множество IS идентификаторов стандартных величин, значения которых известны, расширилось до множества ISW. Тем самым обеспечивается возможность сокращения оставшихся в массиве LO после вычеркивания путей расчета. В качестве примера приведем один из возможных алгоритмов работы процедуры МОДИФИКАЦИЯ* 1. Q = RES \ISW; j = 1; PI = 0. 2. Если L ? LO (j), то на 8. 3. pi = PI + l; i = LL (j); W = Q; n = 0. 4. Если OUT (k) П W = 0, то на 6. 5. n = n + 1; LW(n) = LO(i, j); W - (W \ OUT(k)) U U (IN (k)\ISW). 6. Если (i > 1) П (W Ф 0), то i = i — 1, на 4. 7. Формирование столбца PI массива LOl; LL1 (PI) = n. 8. Если j < P, то j — j + 1, на 2; иначе конец. В пп. 4 и 5 значение к выбирается из условия LO (i, j) = = LI (к). В п. 7 формирование значения столбца Р1 массива L01 производится засылкой в него значений массива LW в обратном порядке, т. е. L01 A, Р1) - LW (п), ..., LOl (n, PI) = LW A). Кроме ранее введенных обозначений в описании алгоритма работы процедуры МОДИФИКАЦИЯ использовались следующие переменные: L — метка неприменимого абзаца (формальный параметр процедуры); LO (j) — множество меток абзацев, содержащихся в j-м столбце массива LO; LW — рабочий массив меток абзацев; Q, W — рабочие массивы идентификаторов стандартных величин. Процедура ВЫБОР позволяет отобрать из множества путей расчета, содержащихся в массиве LO, один наиболее приемлемый путь. Критерий отбора должен отражать специфику предметной области ППП. В качестве возможных критериев можно указать длину пути расчета или приведенную трудоемкость выполнения пути. Рассмотренный нами метод построения ППП сложной структуры обеспечивает динамическое планирование [19] вычислительного процесса при непроцедурном стиле кодирования управляющей части пакета. Этот метод может применяться при разработке неоднозначных динамических пакетов программ (см. п. 13.4.2). Алгоритмы для построения управляющих частей других видов ППП (статических, однозначных) получаются из приведенного алгоритма путем соответствующего упрощения. На- 498
Рис. 13.26. Сферы применения процедур: + — ПЛАН; / — МОДИФИКАЦИЯ; \ ~ ВЫБОР пример, в случае статического неоднозначного пакета в рассмотренном нами алгоритме необходимо удалить п. 3 и, кроме того, все операторы, содержащие идентификатор ISW. Только неоднозначные динамические пакеты используют все множество предлагаемых программисту Динамические ппп + + + + + + + + + + + + + + + + + -h + + + + + + + //УлЛ/+/+' <+• 7ЩАА-У* Статические ППП -h + -h + -h+ + ++++++ ++++++ . ++++++ . ++++++ процедур: ПЛАН, ВЫБОР, МОДИФИКАЦИЯ. При разработке однозначных ППП достаточно использовать только лишь процедуру ПЛАН. Это объясняется тем обстоятельством, что в однозначных пакетах программ для любой пары множеств IS и RES существует не более одного минимального неэквивалентного пути расчета (рис. 13.26). Пример 13.8 [8]. Воспользуемся графом предметной области однозначного статического пакета прикладных программ КОНТУР (см. рис. 13.9) и построим на базе ПЛ/1 «каркас» этого ППП. Ввиду однозначности пакета LL объявляется переменной без индексов, a LO как одномерный массив. Массивы А и Е содержат фактические значения параметров IS и RES процедуры ПЛАН. Первый элемент массива Н при построении резервировался для сообщения об успешном завершении работы пакета. Остальные элементы этого массива использованы для указания режима вывода на печать исходных и вычисленных стандартных величин. Их обработка относится к заключительным действиям ППП. KONTUR : PROCEDURE (А, Е, Н); DCL (А (*), Е (*), Н (*)) CHAR (*); DCL (NINITD), P, LL, I) REAL FIXED BINARY; DCL (LID) INIT(T1, T2, ТЗ, T4), LOD)) LABEL; DCL IND) CHAR(9) 1М1Т(ТРАФ\ 'КОНТУРЫ, 'ПАРЫ, ГРАФ1, N-КИ'); DCL OUTD) CHARG) INIT ('КОНТУРЫ, 'ПАРЫ, 'N-КИ', 'ФАКТОРЫ); ОПИСАНИЕ ДРУГИХ ТРЕБУЕМЫХ ПЕРЕМЕННЫХ* CALL PLAN'(A, E,' N/u/lN, 'OUT /LL,* LO* P); IF P=0 THEN DO; H(l) ='ПЛАНИРОВАНИЕ НЕВОЗМОЖНО'; RETURN; END; DO I = 1 TO LL; GOTO LO(I); Tl: /*ГРАФ -* КОНТУРЫ */ T2: ТЕЛО АБЗАЦА С МЕТКОЙ GOTO TEND; /¦КОНТУРЫ -* ПАРЫ */ ТЕЛО АБЗАЦА С МЕТКОЙ Т1 Т2 GOTO TEND; ТЗ: /*ПАРЫ -+. N-КИ*/ 499
ТЕЛО АБЗАЦА С МЕТКОЙ ТЗ GOTO TEND; Т4: /*ГРАФ, N-КИ^ ФАКТОРЫ*/ ТЕЛО'АБЗАЦА'С МЕТКОЙ Т4 GOTO TEND; TEND:END; ЗАКЛЮЧИТЕЛЬНЫЕ ДЕЙСТВИЯ ППП END KONTUR; 13.5.4. Реализация и использование СПС/СИ в операционной среде БСМЦ СОД/СИМ Монитор и пакеты программ СПС/СИ представляют собой подпрограммы ЯУПД. Монитор СПС/СИ использует подпрограмму LINK для динамического связывания с вызываемыми пакетами программ. Реализация монитора СПС/СИ как макрокоманды нецелесообразна, поскольку монитор осуществляет динамическое планирование вычислительного процесса. ИСС СПС/СИ оформляется как совокупность подпрограмм ЯУПД. Макропроцессор БСМЦ СОД/СИМ используется при составлении типовых предписаний, играющих ту же роль, что и процедуры ЯУЗ ОС ЕС ЭВМ. Типовые предписания оформляются как макрокоманды, макрорасширения которых включают задания на ЯУПД и ЯУЗ ОС. Кроме обращения к монитору СПС/СИ типовые предписания позволяют определить конфигурацию интерактивной среды, выбрать необходимые потоки вывода и режимы комментирования. При разработке ППП СПС/СИ выполняются следующие действия: 1. Строится модель предметной области пакета (М), Определяется множество стандартных величин S, множество операторов Т и множество понятий Р предметной области. Предполагается, что для всех понятий из множества Р операции доступа реализованы. В противном случае они разрабатываются. 2. По виду модели М определяется тип ППП (простой или сложной структуры, динамический, статический, однозначный, неоднозначный). 3. Проводится алгоритмизация операторов предметной области модели М% создаются программные компоненты, реализующие операции над понятиями. При алгоритмизации выявляется множество подпрограмм, разработанных ранее в рамках систем программирования ЯУПД, ФОРТРАН-IV, ПЛ/1, и множество уже реализованных ППП СПС/СИ, пригодных для выполнения операторов (или отдельных компонент операторов) из множества Г. При необходимости осуществляется создание программных компонент на ЯУПД, ФОРТРАН-IV и ПЛ/1. 4. Определяются и автономно отлаживаются условия корректности применения каждого оператора. Эти условия в готовом виде представляют собой последовательности операторов ЯУПД или подпрограммы на ЯУПД, ФОРТРАН-IV, ПЛ/1. 5. Кодируются и автономно отлаживаются операторы t ? 7\ Кодирование проводится с помощью операторов ЯУПД. При реализации операторов исполь- 500
зуется множество подпрограмм и ППП СПС/СИ, выявленных на шаге 3. Для динамического связывания идентификаторов данных с объектами интерактивной среды используется подпрограмма LINK. Если некоторую реализованную программную компоненту намечается применять многократно в составе одного или нескольких ППП СПС/СИ, то ее целесообразно оформить как подпрограмму ЯУПД. Отладка операторов t ? Т выполняется с использованием условия корректности их применения. 6. ППП СПС/СИ простой структуры включают только один оператор t (| Т | = 1) и, возможно, условия его применимости. Такие пакеты оформляются как подпрограммы ЯУПД с формальными параметрами А, Е к Н. При построении ППП СПС/СИ сложной структуры необходимо действовать следующим образом: на базе блоков и условий применимости создается модель абзацев ППП; для неоднозначных пакетов разрабатывается, кодируется и отлаживается процедура ВЫБОР; уточняется содержание формальных параметров Л, ? и Я ППП; на основе непроцедурного метода планирования вычислительного процесса на ЯУПД программируется головная часть ППП СПС/СИ сложной структуры. Головная часть оформляется как подпрограмма ЯУПД с формальными параметрами Л, Е и Н. 7. Производится комплексная отладка ППП СПС/СИ сложной структуры на уровне обращения к ППП. Отладка ППП СПС/СИ простой структуры фактически заканчивается на шаге 5. 8. Созданный ППП включается в состав СПС/СИ. Необходимые при этом действия выполняются прн помощи служебных операторов ЯП СПС/СИ. СПИСОК ПРИНЯТЫХ СОКРАЩЕНИЙ АИС — агрегативная имитационная система АС — автоматизированный склад БА — библиотека агрегатов БД — база данных БЗ — бетонный завод БСМЦ—базовая система языковых и программных средств МЦ ВЦ — вычислительный центр ГАЛ — гибкая автоматизированная линия ГАУ — гибкий автоматизированный участок ГПМ — гибкий производственный модуль ГПС — гибкая производственная система ИЛМ — информационно-логическая модель ИМ — имитационная модель ИС — информационная сеть ИСС — информационно-справочная информация ИШАУС — иерархический шаговый алгоритм управления событиями КДС — квазидетерминированная система КЛА — кусочно-линейный агрегат ЛПР — лицо, принимающее решение МСМ — многоцелевые станочные модули МЦ — моделирующий центр ОИ — оперативная информация 501
ОПО — основное программное обеспечение ОС — операционная система ПО — программное обеспечение ПОСП — процедурно-ориентированные системы программирования ППО — прикладное программное обеспечение ППП — пакет прикладных программ ПР — промышленный робот РДМ — расписание движения магазинокомплектов РШ — робот-штабелер СИ — справочная информация СИО — система инструментального обеспечения СИОП — секция инструментального обеспечения производства СМ — сеть материалов СМ — система моделирования СМО — система массового обслуживания СО — сеть оборудования СОКИ — системы обработки концептуальной информации СОМИ — автоматизированная система обработки экспериментальной информации СОПУ — система оперативного планирования и управления СПБФ — комплекс средств программирования базовых функций ССЗ — сменно-суточное задание ССРД — секция сборки-разборки деталеустановок СТ — станок СУБД — система управления базой данных СХИ — среда хранения информации ХМ — трансманипулятор ТТС — типовые технологические схемы ЭОП — элементарные обрабатываемые поверхности ЯУЗ — язык управления заданиями ЯУПД — язык управления программами и данными
СПИСОК ЛИТЕРАТУРЫ К введению 1. Арбиб М. Алгебраическая теория автоматов, языков и полугрупп. М.: Статистика, 1975. 336 с. 2. Большее А. Н., Смирнов Н. В. Таблицы математической статистики. М.: Наука, 1983. 416 с. 3. Боровков А. А. Асимптотические методы в теории массового обслуживания. М.: Наука, 1980. 384 с. 4. Боровков А. А. Вероятностные процессы в теории массового обслуживания. М.: Наука, 1972. 368 с. 5. Бусленко Н. П. Моделирование сложных систем. М.: Наука, 1978. 400 с. 6. Вопросы разработки имитационных систем/В. В. Калашников, В. И. Лутков, Б. В. Немчинов и др.//Электронная техника. 1980. Сер. 9. Вып. 1 C4). С. 71—87. 7. Гордон Д. Вычислительные аспекты имитационного моделирования// Исследование операций. Т. 1, М.: Мир, 1981. С. 655—679. 8. Емельянов С. В., Калашников В. В. Исследование сложных систем с помощью модели ров ания//Итоги науки. Техн. кибернетика, ВИНИТИ, 1981. С. 158—209. 9. Иглхарт Д. Лм Шедлер Д. С. Регенеративное моделирование сетей массового обслуживания. М.: Радио и связь, 1984. 136 с. 10. Имитационное моделирование производственных систем/А.А. Вавилов, Д. X. Имаев, В. И. Плескунин и др. М.: Машиностроение; Берлин: Фер- лаг Техник, 1983. 416 с. 11. Калашников В. В. Анализ непрерывности агрегативных моделей в процессе имитационного зксперимента//Электронная техника, 1980. Сер. 9. Вып. 4 C7). С. 35—38. 12. Калашников В. В. Качественный анализ поведения сложных систем методом пробных функций. М.: Наука, 1978. 248 с. 13. Калашников В. В. Направленные имитационные эксперименты//Элек- тронная техника. 1985. Сер. 9. Вып. 1 E4). С. 50—53. 14. Калашников В. В. Организация исследования сложных систем на базе агрегативного подхода к моделированию//Изв. АН СССР. Техн. кибернетика. 1982. № 2. С. 92—108. 15. Калашников В. В. Организация моделирования сложных систем. М.: Знание (Сер. Математика, кибернетика), 1982. 64 с. 16. Калман М., Фалб П., Арбиб М. Очерки по математической теории систем. М.: Мир, 1971. 400 с. 17. Кендалл Мм Стюарт А. Статистические выводы и связи. М.: Наука, 1978. 899 с. 18. Кендалл М., Стюарт А. Теория распределений. М.: Наука, 1968. 900 с. 19. Клейнен Дж. Статистические методы в имитационном моделировании. Вып. 1, 2. М.: Статистика, 1978. (Вып. 1. 222 с; Вып. 2. 336 с). 20. Коваленко И. Н. Анализ редких событий при оценке эффективности и надежности систем. М.: Сов. радио, 1980. 208 с. 21. Коваленко И. Н. Аналитико-статистический метод расчета характеристик высоконадежных систем// Кибернетик а, 1976, № 6. С. 82—92. 503
22. Коваленко И. Н. Расчет вероятностных характеристик систем. Киев: Техника, 1982. 96 с. 23. Колмогоров А. Н. Комбинаторные основания теории информации// Успехи математических наук. 1983. Т. 38. Вып. 4 B32). С. 27—36. 24. Крамер Г. Математические методы статистики. М.: Мир, 1975. 648 с. 25. Крэйн М. и Лемуан О. Введение в регенеративный метод анализа моделей. М.: Наука, 1982. 104 с. 26. Кривуца В. Г. Пакет прикладных программ АМОС агрегатного моделирования сложных систем. Т. 1, 2. Киев: 1981. Деп. в РФАП, № 5765, 27. Логика, автоматы, алгоритмы/М. А. Айзерман, Л. А. Гусев, Л. И. Ро- зоноэр и др. М.: Физматгиз, 1983. 556 с. 28. Методологические вопросы построения имитационных систем/С. В. Емельянов, В. В. Калашников, В. И. Лутков и др. Обзор. М.: МЦНТИ, 1978. 87 с. 29. Моисеев Н. Н. Имитационные модели//Наука и человечество. М.: Знание, 1973. С. 259—269. 30. Очереди и точечные процессы/П. Франкен, Д. Кениг, У. Арндт и др. Киев: Наукова думка, 1984. 284 с. 31. Полляк Ю. Г. Вероятностное моделирование на ЭВМ. М-: Сов. радио. 1971. 399 с. 32. Полляк Ю. Г. Общие вопросы моделирования РЛС//Моделирование в радиолокации. М.: Сов. радио, 1979. С. 25—80. 33. Полляк Ю. Г. Основы теории моделирования сложных систем управле- ния//Тр. радиотехнического института. 1977. № 29. С. 3—13. 34. Самарский А. А. Современная прикладная математика и вычислительный эксперимент//Коммунист. 1983. № 8. С. 31—42. 35. Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1982. 120 с. 36. Феллер В. Введение в теорию вероятностей и ее применения. В 2-х томах. М.: Мир, 1984 (Т. 1. 528 с; Т. 2. 752 с). 37. Штойян Д. Качественные свойства и оценки стохастических моделей. М.: Мир, 1979. 280 с. 38. Kalashnikov V. V. Directed Simulation Experiments//Sirnulation in Research and Development, (Ed. A. Javor), Elsevier Science Publishers B. V. (North-Hoi land), 1985. P. 79—84. 39. Law A. M. Statistical Analysis of Simulation Output Data//Operation Research. 1983. V. 31, N 6. P. 983—1029. К главе 1 1. Аппель П. Теоретическая механика. Т. 1, 2. М.: Физматгиз, 1960 (Т. 1. 516 с; Т. 2. 498 с). 2. Буслеико Н. П., Калашников В. В., Коваленко И. Н. Лекции по теории сложных систем. М.: Сов. радио, 1973. 440 с. 3. Гуд Г., Макол Р. Э. Системотехника. М.: Сов. радио, 1962. 384 с. 4. Калашников В. В., Соловьев М. М., Средникова Л. П. Два примера использования агрегативной модели//Электронная техника. 1980. Сер. 9. № 2 C5). С. 63—80. 5. Немчинов Б. В., Шнайдман В. М. Агрегативная модель региональной водохозяйственной системы//Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1983. С. 113—124. 6. Применение методов математического моделирования для оценки эф- ективности организации бетонных работ на строительстве Курпсайской ГЭС/ . И. Клебанов, В. П. Шкарин, В. С. Шангин и др.//Энергетическое строительство. 1982. № 10. С. 58—63. 7. Разработка структур и алгоритмов систем управления ГПС на основе методов имитационного моделирования: Метод, рекомендации 299044- 13-М-86/ Под ред. акад. Н. С. Соломенко и канд. техн. наук В. М. Букалова. Л.: ЦНИИ сРумб», 1986. 148 с. 8. Система моделей для проектирования технологических структур и ал- горитмов управления ГПС корпусных деталей/Е. Ф. Аврамчук, А. А. Плеха- 504
нов, А, Н. Плоткин и др.//Тез. докл. X Всесоюзн. совещания tПроблемы упра- вления-86». 29 сеит.—3 окт. 1986 г. Алма-Ата, 1986. С. 188—189. 9. Система моделей для проектирования технологических структур и алгоритмов управления ГПС корпусных деталей/Я. Г. Гольдин, Г. М. Гильштейи, А. Е. Исаев и др.//Тез. докл. X Всесоюзн. научн.-техн. конф. «Проблемы создания и внедрения гибких производственных и робототехнических комплексов на предприятиях машиностроения», 9—11 окт. 1986 г. Одесса, 1986. С. 37—39. 10. Управление ГПС: Модели и алгоритмы/Под общ. ред. С. В. Емельянова. М.: Машиностроение; Берлин: Техник, 1987. 368 с 11. Яровицкий Н. В. Вероятностно-автоматное моделирование дискретных систем//Кибернетика. 1966. № 5. С. 35—43. 12. Teichroev D., Hershey E. A. PSL/PSA: A computer-aided technique for structural documentation and analysis of information processing systems//IEEE Transactions on Software Engineering. 1977. v. SE-3. N 1, January. P. 41—48. К главе 2 1. Бусленко Н. П. Моделирование сложных систем. М.: Наука, 1978. 400 с. 2. Бусленко Н. П., Калашников В. В., Коваленко И. Н. Лекции по теории сложных систем. М.: Сов. радио, 1973. 440 с. 3. Бусленко Н. П., Коваленко И. Н. О математическом описании элементов сложных систем//Докл. АН СССР. Т. 187. 1969. № 6. С. 1222—1224. 4. Гихман И. Им Скороход А. В. Теория случайных процессов. Т. 2, М.: Наука, 1973. 640 с. 5. Иглхарт Д. Л., Шедлер Д. С. Регенеративное моделирование сетей массового обслуживания. М.: Радио и связь, 1984. 136 с. 6. Коваленко И. Н. О некоторых классах сложных систем//Изв. АН СССР. Техническая кибернетика. 1964, № 6. С. 3—9; 1965, № 1. С. 14—20; № 3. С. 3—10. 7. Коваленко И. Нм Кузнецов Н. Ю., Шуренков В. М. Случайные процессы: Справочник. Киев: Наукова думка, 1983. 366 с. 8. Кокс Д., Смит В. Теория восстановления. М.: Сов. радио, 1967. 300 с. 9. Котов В. Е. Сети Петри. М.: Наука, 1984. 160 с. 10. Крэйн Мм Лемуан О. Введение в регенеративный метод анализа моделей. М.: Наука, 1982. 104 с. 11. Питерсон Дж. Теория сетей Петри и моделирование систем. М.: Мир, 1984. 264 с. 12. Франк М. Обеспечение системы машинного моделирования для тех- иологов//Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1982. С. 76—82. 13. Сох D. R. The analysis of non-markovian stohastic processes by the inclusion of supplementary variables/VProc. Cambridge Phil. Soc, 1955, v. 50. P. 433—441. К главе З 1. Бакаев А. А., Запатрина И. В. Вопросы моделирования систем с использованием теории сетей Петр и/И К УССР им. В. М. Глушкова. Киев, 1982. Пре- принт-82-60. С. 46. 2. Герхардт Х.-Д. Комби-сети — обобщение сетей Петри для развития и представления комбинированных математических моделей/Теория сложных систем и методы их моделирования//Тр. семинара. М.: ВНИИСИ АН СССР, 1983. С. 49—57. 3. Котов В. Е. Алгебра регулярных сетей//Кибернетика. 1980. № 5. С. 10—18. 4. Котов В. Е. Сети Петри. М.: Наука, 1984. 160 с. 5. Моделирование материальных потоков в гибких производственных системах: Метод, указания 299044-05-М-85/Л.: ЦНИИ «Румб», 1985. 76 с. 6. Оре О. Теория графов. М.: Наука, 1980. 336 с. 7. Питерсон Дж. Теория сетей Петри и моделирование систем. М.: Мир, 1984. 264 с. 8. Пранявичюс Г. И. Модели и методы исследования вычислительных систем. Вильнюс: Москлас, 1982. 228 с. 505
9. Розенблюм Л. Я. Сети Петри//Изв. АН СССР. Техн. кибернетика. 1983. № 5. С. 12—40. 10. СИМ КОМ — система моделирования для комбинированных моделей/ Х.-Д. Герхардт, И. Фишер, М. Фосс, Г. Шварце/Теория сложных систем и методы их моделирования//Тр. семинара. М.: ВНИИСИ АН СССР, 1983. С. 42—49. 11. Слепцов А. И., Юрасов А. А. Автоматизация проектирования управляющих систем гибких автоматизированных производств/Под ред. Б. Н. Малиновского. Киев: Техника, 1986. НО с. 12. Управление ГПС: Модели и алгоритмы/Под общ. ред. С. В. Емельянова. М.: Машиностроение; Берлин: Техник. 1987. 368 с. 13. Ху Т. Целочисленное программирование и потоки в сетях/Пер. с англ. М.: Мир, 1974. 520 с. 14. Шраибер Т. Дж. Моделирование на GPSS. М.: Машиностроение, 1980. 590 с. 15. Behr I.-P., Isernhagen R., Pernards P., Stewen L. Modellbeschreibung mit Auswertungsnetzen//Angewandte Informatik, 1975, N 9. S. 375—382. 16. Behr I.-P., Isernhagen R., Pernards P., Stewen L. Erfahrungen mit Aus- wertungsnetzen: Implementierung, Alternativen//Angewandte Informatik, 1975, N 10. S. 427—432. 17. Behr I.-P. u. a. FORCASD-ein E-Netz orientiertes Simulationspaket// Informatik Fachberichte. 56. Springer Verlag, 1982. S. 116—124. 18. Coolahan J. E. Timing Requirements for Time-Driven System Using Augmented Petri Nets//IEEE Trans, on SE. 1983. Vol. 9. N 5. P. 603—616. 19. Fischer J. Modellierung und Simulation paralleler diskreter, kontinuier- licher und kombinierter Prozesse in SIMULA//ZfR—Informationen. AdW der DDR. Zentrum fur Rechentechnik. Berlin—Adlershof. 1982. S. 1—L.20. 20. Fuss M. E. AFMG—ein asynchroner Fluss—Modell—Generator//Gesell- schaft fur Mathematik und Datenverarbeitung m. b. H. Bonn, 1975. N 100. 21. Gerhardt H.-D. Beitrage zur kombinierten Simulation. Zur Methodologie der Modellierung und Simulation unter besonderer Berucksichtigung der Darstel- lung mathematischer Modelle als KOMBI-Netze//ZfR-Informationen. AdW der DDR. Zentrum fur Rechentechnik. Berlin—Adlerschof. November. 1981. 221 s. 22. Gerhardt H.-D. Kombi-Netze und mathematische Modellbildung//msr, 1981. 24 A1). S. 606—610. 23. Jensen K. Coloured Petri Nets and the Invariant Method//Theor. Comput. Sci. 1981. Vol. 14. N 3. P. 317—336. 24. Noe J. Applications of Net Models: Advanced Course on General Net Theory of Process and Systems. Hamburg. Oktober, 1979//Lecture Notes on Comput. Sci. Berlin: Springer-Verlag, 1980. P. 353—361. 25. Noe J., Nutt G. I. Macro E-Nets for Representation of Parallel Systems// IEEE Trans, on Comput. C—22 A973). N 8. P. 718—727. 26. Nutt G. I. The Evaluation Nets for Computer System Performance Ana- lysis//Fall Journ. Comput. Conf. 1972. AFIPS Conf. Proc. 41 A972). P. 279—286. 27. Sifakis J. Use of Petri Nets for Performance Evaluation Measuring, Modelling and Evaluation of Computer Systems/Proc. of the Third Workshop on Modelling and Performance Evaluation of Computer Systems. Amsterdam. North- Holland. 1977. P. 75—93. 28. Starke P. H. Petri Netze. Grundlagen. Anwendungen—Theorie. Berlin: VEB Deutschen Verlag der Wissenschaften, 1980. 184 s. 29. Valk R. Self—modifying nets, a natural extension of Petri nets//Lecture Notes in Сотр. Sci. Berlin: Springer-Verlag, 1978. 62. P. 464—476. 30. Valk R. On the computational power of extended Petri nets//Lecture Notes in Сотр. Sci. Berlin: Springer-Verlag, 1978. 64. P. 526—535. К главе 4 1. Геловани В. А., Пионтковский А. А., Юрченко В. В. О задаче управления в глобальной модели WORLD-3. М.: ИПУ АН СССР, 1975. 46 с. 2. Иванилов Ю. П., Лотов А. В. Математические модели в экономике. М.: Наука, 1979. 304 с. 506
3. Имитационное моделирование производственных систем/Под общ. ред. чл.-кор. АН СССР А. А. Вавилова. М.: Машиностроение; Берлин: Техника, 1983. 416 с. 4. Кофман А. Введение в прикладную комбинаторику/Пер. с аигл. М.: Мир, 1975. 480 с. 5. Оре О. Теория графов/Пер. с англ. М.: Наука, 1980. 336 с. 6. Системный анализ и проблемы развития городов/Ю. С Попков, М. В. Посохни, А. Э. Гутнов, Б. Л. Шмульян. М.: Наука, 1983. 512 с. 7. Форрестер Дж. Основы кибернетики предприятия/Пер. с англ. М.: Прогресс, 1971. 340 с. 8. Форрестер Дж. Динамика развития города/Пер. с англ. М.: Прогресс, 1974. 287 с. 9. Форрестер Дж. Мировая динамика/Пер. с англ. М.: Наука, 1978. 168 с. 10. Burns J. К., Ulgen О. М., Beihts H. M. An algorithm for converting signed digraphs to Forrester schematics. — IEEE Trans. Syst., Man., Cybern., vol. 9, no. 3, 1979. P. 115—124. 11. Coodman M. R.: Study Notes in System Dynamics. Wright-Allen Press, Inc. Cambridge, Massachusetts, 1974. P. 390. К главе 5 1. Аврамчук Е. Фм Фомин Б. Ф. Системное моделирование как машинный метод исследования сложных систем управления//Изв. ЛЭТИ. Научн. тр. Л.: ЛЭТИ им. В. И. Ульянова (Ленина). 1981. Вып. 287. С. 12—18. 2. Арбиб М., Мейнс Э. Дж. Основания теории систем: разложимые системы/ Математические методы в теории систем. М.: Мир, 1979. С. 7—48. 3. Белозеров В. Е., Можаев Г. В. О единственности решения задач декомпозиции и агрегирования линейных систем автоматического управления. Теория сложных систем и методы их моделирования//Тр. семинара. М.: ВНИИСИ АН СССР, 1982. С. 4—13. 4. Вавилов А. А. Структурный и параметрический синтез сложных систем. Л.: ЛЭТИ им. В. И. Ульянова (Ленина), 1979. 96 с. 5. Вавилов А. А., Имаев Д. X. Машинные методы расчета систем управления. Л.: Ленингр. гос. ун-т им. А. А. Жданова, 1981. 232 с. 6. Вавилов А. А., Имаев Д. X. Эволюционный синтез сложных систем. Л.: ЛЭТИ им. В. И. Ульянова (Ленина), 1983. 80 с. 7. Вавилов А. А., Имаев Д. X., Фомин Б. Ф. Системное моделирование и эволюционный синтез сложных систем управления//Тез. докл. VIII Всесоюзн. совещ. по пробл. управления, аллин, 1980. С. 145—147. 8. Вавилов А. А., Фомин Б. Ф., Аврамчук Е. Ф. Системное моделирование. Теория сложных систем и методы их модели ров ания//Тр. семинара. М.: ВНИИСИ АН СССР, 1982. С. 41—50. 9. Вавилов А. А., Фомин Б. Ф., Аврамчук Е. Ф. Системное моделиро. вание: проблемы теории и технологии//Тез, докл. I Всесоюзн. научн.-техн. коиф- Синтез и проектирование многоуровневых систем управления. Барнаул, 1982. Ч. 1. С. 9—11. 10. Воронов А. А. Введение в динамику сложных управляемых систем. М.: Наука, 1985. 352 с. 11. Гантмахер Ф. Р. Теория матриц. М.: Наука, 1967. 570 с. 12. Гилл А. Линейные последовательиостные машины. М.: Наука, 1974. 288 с. 13. Емельянов С. В. Бинарные системы автоматического управления. М.: Международн. НИИ проблем управления, 1984. 314 с. 14. Заде Л., Дезоер Ч. Теория линейных систем. Метод пространства состояний. М.: Наука, 1970. 704 с. 15. Имитационное моделирование производственных систем/Под ред. А. А. Вавилова. М.: Машиностроение; Берлин: Ферлаг Техник, 1983. 416 с. 16. Калман Р., Фалб П., Арбиб М. Очерки по математической теории систем. М.: Мир, 1971. 400 с. 507
17. Клир Дж. Наука о системах: новое измерение науки. Системные ис- следования//Методологические проблемы. Ежегодник, 1983, М.: Наука, 1983. С. 61—84. 18. Кодама С. Блок-графы и уравнения состояния//СИСУТЭМУ ТО СЕЙГЁ. 1972. 18, № 4. С. 195—202. 19. Кон П. Универсальная алгебра/Пер. с англ. М.: Мир, 1968. 352 с. 20. Кофман А. Введение в прикладную комбинаторику/Пер. с франц. М.: Наука, 1975. 480 с. 21. Кухтенко А. И. Что может дать науке управление «абстрактная теория систем»?//Автоматика. 1974. № 4. С. 3—14. 22. Ленг С. Алгебра/Пер. с англ. М.: Мир, 1968. 564 с. 23. Матросов В. М., Анапольский Л. Ю., Васильев С. Н. Метод сравнения в математической теории систем. Новосибирск: Наука, 1980. 481 с. 24. Месарович М., Такахара Я. Общая теория систем: математические основы/Пер. с англ. М.: Мир, 1978. 341 с. 25. Осетинский Н. И. Обзор некоторых результатов по современной теории систем//Математические методы в теории систем. М.: Мир, 1979. С. 271—327. 26. Первозванский А. А., Гайцгорн В. Г. Декомпозиция, агрегирование и приближенная оптимизация. М.: Наука, 1979. 344 с. 27. Плоткин А. Нм Фомин Б. Ф. О рекуррентных алгоритмах получения передаточных матриц и определителей комплексов системных графов//Изв. ЛЭТИ им. В. И. Ульянова (Ленина). 1982. Вып. 312. С. 113—121. 28. Постников М. М. Лекции по геометрии. Семестр II. Линейная алгебра. М.: Наука, 1986. 400 с. 29. Технология системного моделирования/Под ред. А. А. Вавилова. Л.: ЛЭТИ им. В. И. Ульянова (Ленина), 1982. 64 с. 30. Цаленко М. Ш., Шульгейфер Е. Г. Основы теории категорий. М.: Наука, 1974. 256 с. 31. Ikeda M., Kodama S. Large-Scale Dynamical Systems: State Equations, Lipschitz Conditions and Linearisation. IEEE Trans, on Circut Theory. Vol. СТ.— 20, N 3, May 1973. P. 193—202. 32. Simulation and Model-Based Methodologies: An Integrative View/Ed. by T. I. Oren, B. P. Zeigler, M. S. Elzas: NATO Series (F), Vol. 10. Sprigner- Verlag Berlin Heidelberg New-York, 1984. 651 p. К главе 6 1. Аврамчук Е. Ф., Ляшенко Н. Н., Фомин Б. Ф. Джейфы: структурная управляемость потоковых систем//Теория сложных систем и методы их моделирования. Тр. семинара. М.: ВНИИСИ, 1985. С. 4—31. 2. Аврамчук Е. Ф., Ляшенко Н. Н., Фомин Б. Ф. Структурная управляемость систем с параметрическими связями//Теория сложных систем и методы их моделирования. Тр. семинара. М.: ВНИИСИ, 1984. С. 3—18. 3. Басакер Р., Саати Т. Конечные графы и сети/Пер. с англ. М.: Наука, 1974. 336 с. 4. Буслеико Н. П. Моделирование сложных систем. М.: Наука, 1978. 384 с. 5. Вирт Н. Систематическое программирование. М.: Мир, 1977. 184 с. 6. Гильманов Т. Г. Математическое моделирование биогеохимических циклов в травяных экосистемах. М.: МГУ, 1978. 168 с. 7. Глушков В. Мм Цейтлин Т. Е., Ющенко Е. Л. Алгебра, Языки. Программирование. Киев: Наукова думка, 1978. 320 с. 8. Ершов А. П. Введение в теоретическое программирование. М.: Наука, 1977. 288 с. 9. Зубер И. Е., Колкер Ю. И., Полуэктов Р. А. Управление численностью и возрастным составом популяций//Проблемы кибернетики. Вып. 25. М.: Наука, 1972. С. 129—138. 10. Имитационное моделирование производственных систем/Под ред. А. А. Вавилова. М.: Машиностроение; Берлин: Ферлаг Техник, 1983. 416 с. 11. Калман Р., Фалб П., Арбиб М. Очерки по математической теории си- стем/Пер. с англ. М.: Мир, 1971. 400 с. 508
12. Касти Дж. Большие системы. Связность, сложность и катастрофы/Пер. с англ. М.: Мир, 1982. 216 с. 13. Кинг Дж. Проверяющий компилятор/Под ред. Р. Растина//Средства отладки больших систем. М.: Статистика, 1977. С. 23—39. 14. Кофман А. Введение в прикладную комбинаторику/Пер. с франц. М.: Наука, 1975. 480 с. 15. Криницкий Н. А. Равносильные преобразования и программирование. М.: Сов. радио, 1970. 304 с. 16. Лэнг С. Алгебра/Пер. с англ. М.: Мир, 1968. 564 с. 17. Ляпунов А. А. Проблемы теоретической и прикладной кибернетики. М.: Наука, 1980. С. 118—145. 18. Минк X. Перманенты/Пер. с англ. М.: Мир, 1982. 213 с. 19. Немчинов Б. В. Структурные преобразования агрегативных систем и их применение для конструирования моделирующих алгоритмов//Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1982. С, 65—75. 20. Немчинов Б. В., Петров С. Т., Симонов В. М. К проблеме конструирования эффективного алгоритмического обеспечения моделирующих систем// Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1984. С. 94—119. 21. Осетинский Н. И. Обзор некоторых результатов по современной теории систем//Математические методы в теории систем. М.: Мир, 1979. С. 271—327. 22. Полуэктов Р. А., Пых Ю. А., Швытов И. А. Динамические модели экологических систем. Л.: Гидрометиздат, 1980. 228 с. 23. Уонэм М. Линейные многомерные системы управления. Геометрический подход/Пер. с англ. М.: Наука, 1980. 376 с. 24. Форрестер Дж. Динамика развития города/Пер. с англ. М.: Прогресс, 1974. 287 с. 25. Форрестер Дж. Мировая динамика/Пер. с англ. М.: Наука, 1976. 168 с. 26. Форрестер Дж. Основы кибернетики предприятия/Пер. с англ. М.: Прогресс, 1971. 340 с. 27. Bohm С, Jacopini G. Flow diagrams, Turning Mashines and Languages with Only Two Formation rules//Communication of the ACM. 1966. V. 9. May. P. 366—371. 28. Coyle R. G. On the scope and purpose of industrial dynamics//Int. J. Syst. Sci., 1973. V. 4. P. 397—406. 29. Floud R. W. Assigning Meanings to Programs//Mathematical Aspects of Computer Science/Ed. Y. T. Schwartz, R. I. Providence. American Mathematical Society, 1967. P. 19—32. 30. Glover K., Silverman L. M. Characterisation of Structural control I abi- Hty//IEEE Trans. Automat. Contr. V. AC—21, August 1976. P. 534—537. 31. Lin С. Т. Structural controllability//IEEE Trans. Automat. Contr. V. AC—19, N 3, June 1974. P. 201—208. 32. Mayeda H. On structural controllability theorem//IEEE Trans. Automat. Contr. V. AC—26, N 3, June 1981. P. 795—798. 33. Mayeda H., Yamada T. Strong structural controllability//SIAM J. Contr. V. 17, N 1, 1979. P. 123—138. 34. Shields R. W., Pearson J. B. Structural controllability of multi input linear systems//IEEE Trans. Automat. Contr. V. AC—21, N 2, April 1976. P. 203—212. 35. Simulation and Model-Based Methodologyes. An Integrative View/Ed. T. I. Oren, B. P. Zeigier, M. S. Elzas: NATO Series (F). N. Y.: Springer, 1984. 651 p. К главе 7 1. Биллиигсли П. Сходимость вероятностных мер. М.: Наука, 1977. 352 с. 2. Боровков А. А. Асимптотические методы в теории массового обслуживания. М.: Наука, 1980. 384 с. 3. Золотарев В. М. Метрические расстояния в пространствах случайных величин и их распределений//Математический сборник. Т. 101 A43). 1976. № 3. С. 416—454. 509
4. Золотарев В. М. Современная теория суммирования независимых случайных величин. М.: Наука, 1986. 416 с, 5. Иглхарт Д. Л., Шедлер Д. С. Регенеративное моделирование сетей массового обслуживания. М.: Радио и связь, 1984. 136 с. 6. Калашников В. В. Анализ непрерывности агрегативных моделей в процессе моделирования//Электронная техника. Сер. 9. 1980. № 4 C7). С. 35—38. 7. Калашников В. В. Качественный анализ поведения сложных систем методом пробных функций. М.: Наука, 1978. 248 с. 8. Калашников В. В. Оценка длительности переходного режима для стохастических сложных систем//Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1980. С. 63—72. 9. Калашников В. В. Оценки равномерной по времени непрерывности для стохастических моделей обслуживания. М,: ВНИИСИ, 1986. 54 с. 10. Калашников В. В. Равномерная оценка скорости сходимости в теореме восстановления для дискретного времени//Теория вероятностей и ее применения. Т. 22, 1977. № 2. С 399—403. 11. Калашников В. В., Манусевич В. С, Малофеев Б. Г. Комплекс программ для оценки длительности переходных режимов моделей стохастических си- стем//Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1984. С. 68—76. 12. Клейнен Дж. Статистические методы в имитационном моделировании, М.: Статистика, 1978 (Вып. 1, 222 с; Вып. 2, 336 с). 13. Коваленко И. Н. Анализ редких событий при оценке эффективности и надежности систем. М.: Сов. радио, 1980. 208 с. 14. Коваленко И. Н. Исследования по анализу надежности сложных систем. Киев: Наукова думка, 1975. 212 с. 15. Коваленко И. Н., Кузнецов Н. Ю. Построение вложенного процесса восстановления для существенно многомерных процессов теории массового обслуживания и его применение к получению предельных теорем. Киев, 1980. 60 с. (Препринт АН УССР. Ин-т кибернетики, № 80—12). 16. Коваленко И. Н., Кузнецов Н. Ю., Шуренков В. М. Случайные процессы. Киев. Наукова думка, 1983. 366 с. 17. Кокс Д., Смит В. Теория восстановления. М.: Сов. радио, 1967. 300 с. 18. Кривуца В. Г. Пакет прикладных программ АМОС агрегатного моделирования сложных систем. Т. 1, 2. Киев (Деп. в РФАП. Дек., 1981, № 5765). 50 с, 52 с. 19. Крэйн М., Лемуан О. Введение в регенеративный метод анализа моделей. М.: Наука, 1982. 104 с. 20. Поляк Д. Г. Оценка точности статистического моделирования систем массового обслуживания//Изв. АН СССР. Техн. кибернетика. 1970. № 1. С. 80—88. 21. Прохоров Ю. В. Сходимость случайных процессов и предельные теоремы теории вероятностей//Теория вероятностей и ее применения. Т. 1, 1956, № 2. С. 177—238. 22. Рубальский Г. Б. Управление запасами при случайном спросе. М.: Сов. радио. 1977. 160 с. 23. Сильвестров Д. С. Метод одного вероятностного пространства в эрго- дических теоремах для регенерирующих процессов//Ма!Ь. Operationsforschung und Statistik, Ser. Optimization. V. 14. 1983, N 2; V. 15, 1984, NN 1, 2. 24. Феллер В. Введение в теорию вероятностей и ее применения. В 2-х томах. М.: Мир, 1984 (Т. 1, 528 с; Т. 2, 752 с). 25. Франкен П., Штреллер А. Стационарные обобщенные регенерирующие процессы//Теория вероятностей и ее применения. Т. 24. 1979, № 1. С. 78—90. 26. Kalashnikov V. V. Estimations of convergence rate and stability for regenerative and renovative processes//Colloquia Math. Soc. J. Bolyai, 24. Point Processes and Queueing problems, Amsterdam: North-Holland, 1981. P. 163—180, 27. Kalashnikov V. V. Directed simulation experimants//Simulation in Research and Development, Elsevier Science Pubis. B. V. (North-Holland). 1985. P. 79—84. 28. Kalashnikov V. V., Rachev S. T. Characterization problems in queueing and their stability//Advances in Applied probability. V. 17, 1985, N 3. P. 868—886, 510
29. Lindvall T. A probabilistic proof of Blackwelf s renewal theorem//The annals of probability. V. 5, 1977, N 3. P. 482—485. 30. Lindvall T. On Coupling of discrete renewal processes//Z. Wahrschein- lichkeitstheorie und verw. Gebiete, B. 48. 1979, H. 1, S. 57—70. 31. Lindvall T. On coupling of continuous time renewal processes//Journal of applied Probability. V. 19, 1982, N 1. P. 82—89. 32. Ney P. A refinement of the coupling method in renewal theory//Stocha- stic processes and their applications. V. 11, 1981, N 1. P. 11—26. 33. Nummelin E. A splitting technique for Harris recurrent Markov chains// Z. Wahrscheinlichkeitstheoric und verw. Gebiete. V. 43, 1978. P. 309—318. 34. Nummelin E. General irreducible Markov chains and non-negative operators. Cambridge University Press, 1984. 35. Thorisson H. The coupling of regenerative processes//Advances in Applied Probability. V. 15, 1983, N. 3. P. 531—561. К главе 8 1. Айвазян С. А,, Енюков И. С, Мешалкин Л. Д. Прикладная статистика. Основы моделирования и первичная обработка данных. Справочное издание. М.: Финансы и статистика, 1983. 471 с. 2. Афифи Ам Эйзен С. Статистический анализ. Подход с использованием ЭВМ. М.: Мир, 1982. 488 с. 3. Боровков А. А. К задаче о двух выборках//Изв. АН СССР. Математика, 1962. Т. 26. С. 605—624. 4. Боровков А. А. Математическая статистика. М.: Наука, 1984. 472 с. 5. Браунли К. А. Статистическая теория и методология в науке. М.: Наука, 1977. 407 с. 6. Бродский В. 3. Введение в факторное планирование эксперимента. М.: Наука, 1976. 223 с. 7. Важенин В. И. Методы моделирования сложных систем на ЭВМ//Систе- мотехника и математическое моделирование. Тр. РАИАН СССР, 1973. Т. 12. С. 5—244. 8. Ваи-дер-Варден Б. Л. Математическая статистика. М.: ИЛ, 1960. 283 с. 9. Голенко Д. И. Статистические методы оптимизации для имитационных моделей производственных объектов/Шроблемы случайного поиска. Вып. 4. Рига: Зинатне, 1975. С. 156—183. 10. Гренандер У. Случайные процессы и статистические выводы. М.: ИЛ, 1961. 167 с. 11. Гэйвер Д. Имитационное моделирование. Исследование операций/Под ред. Дж. Моузер, С. Элмаграби. Т. 1. М.: Мир, 1981. С. 630—654. 12. Демиденко Е. 3. Линейная и нелинейная регрессия. М.: Финансы и статистика, 1981. 302 с. 13. Емельянов С. В., Калашников В. В. Исследование сложных систем с помощью моделирования//Итоги науки. Техн. кибернетика. ВИНИТИ, 1981. С. 158—209. 14. Емельянов С. В., Калашников В. В., Лутков В. И. Методологические вопросы построения имитационных систем. М.: МЦНТИ, 1978. 88 с. 15. Ермольев Ю. М. Методы стохастического программирования. М.: Наука, 1976. 239 с. 16. Ивченко Г. И., Медведев Ю. И. Математическая статистика. М.: Высшая школа, 1984. 248 с. 17. Калашников В. В. Анализ непрерывности агрегативных моделей в процессе имитационного эксперимента//Электронная техника. Сер. 9. 1980. Вып. 4 C7). С. 35—38. 18. Калашников В. В. Оценка длительности переходного режима для стохастических сложных систем//Теория сложных систем и методы их моделирования. Тр. семинара. М.: ВНИИСИ, 1980. С. 63—71. 19. Калашников В. В. Организация моделирования сложных систем. М.: Знание, 1982. 64 с. 511
20. Калашников В. Вм Лутков В. Им Ривес Н. Я. Организация направленных экспериментов на основе агрегатипной имитационной системы//Теория сложных систем и методы их моделирования. Тр. семинара. М.: ВНИИСИ, 1982. С. 50—64. 21. Калашников В. В., Манусевич B.C., Малофеев Б. Г. Комплекс программ для оценки длительности переходных режимов моделей стохастических систем// Теория сложных систем и методы их моделирования. Тр. семинара. М.: ВНИИСИ, 1984. С. 68—75. 22. Кендалл М., Стюарт А. Статистические выводы и связи. М.: Наука, 1973. 899 с. 23. Клейнен Дж. Статистические методы в имитационном моделировании. Вып. 1, 2. М.: Статистика, 1978. 221 с; 335 с. 24. Коваленко И. Н. Анализ редких событий при оценке эффективности и надежности систем. М.: Сов. радио, 1980. 208 с. 25. Коваленко И. Н. Аналитико-статистический метод расчета характеристик высоконадежных систем//Кибернетика. 1976. № 6. С. 82—92. 26. Коваленко И. Н. Исследование по анализу надежности сложных систем. Киев: Наукова думка, 1975. 181 с. 27. Котюк А. Ф., Цветков Э. И. Спектральный и корреляционный анализ нестационарных случайных процессов. М.: Изд-во стандартов, 1970. 100 с. 28. Крамер Г. Математические методы статистики. М.: Мир, 1975. 648 с. 29. Крэйн М., Лемуан О. Введение в регенеративный метод анализа моделей. М.: Наука, 1982. 104 с. 30. Липцер П. Ш., Ширяев А. Н. Статистика случайных процессов. М.: Наука, 1974. 696 с. 31. Леман Э. Проверка статистических гипотез. М.: Наука, 1964. 32. Математическая теория планирования эксперимента/Под ред. С. М. Ермакова. М.: Наука, 1983. 392 с. 33. Мартынов Г. В. Критерии омега-квадрат. М.: Наука, 1978. 79 с. 34. Не и лор Т. Машинные имитационные эксперименты с моделями экономических систем. М.: Мир, 1975. 500 с. 35. Полляк Ю. Г. Вероятностное моделирование на ЭВМ. М.: Наука, 1971. 399 с. 36. Полляк Ю. Г. Общие принципы и эвристические приемы построения моделей для исследования проектируемых систем//Вопросы кибернетики и вычислительной математики. Вып. 28. Ташкент: ФАН, 1969. С. 3—12. 37. Полляк Ю. Г. Оценка малых вероятностей при статистическом моделировании систем//Изв. АН СССР. Техн. кибернетика. 1973. № 2. С. 197—203. 38. Полляк Ю. Г. О чувствительности результатов вероятностного моделирования к изменению параметров модели//Изв. АН СССР. Техн. кибернетика, 1972. С. 35—40. 39. Поляк Д. Г. Оценка точности статистического моделирования систем массового обслуживания//Изв. АН СССР. Техн. кибернетика. 1970. № 1. С. 80—88. 40. Ривес Н. Я. Оценка точности статистического моделирования систем, описываемых регенерирующими случайными процессами. Теория сложных систем и методы их моделирования//Тр. семинара. М.: ВНИИСИ, 1979. С. 46—51. 41. Себер Дж. Линейный регрессионный анализ. М.: Мир, 1980. 456 с. 42. Смирнов Н. В. Вероятности больших значений непараметрических односторонних критериев согласия//Тр. Матем. ин-та АН СССР, 1961. Т. 64. С. 185-210. 43. Холлендер М., Вулф Д. А. Методы непараметрической статистики. М.: Финансы и статистика, 1983. 518 с. 44. Шеннон Р. Имитационное моделирование систем — искусство и наука. М.: Мир, 1978. 418 с. 45. Шеффе Г. Дисперсионный анализ. М.: Наука, 1980. 512 с. 46. Crane M. A. Simulating Stable Stochastic Systems: III. Regenerative Processes and Discrete-Event Simulations//Operations Res. 1975. V. 23. P. 33—45. 47. Duket S. D., Pritsker A. Examination of Simulation Output Using Spectral Methods//Math. Comput. Simulation. 1978. V. 20. P. 53—60. 512
48. Federer W. Т. Some recent results in experimental design with bibliography II, III//Int. Statist. Rew. 1981. V. 49. P. 95—109, 185—197. 49. Fishman G. S. Estimating sample size in computing simulation experi- ments//Management Sci. 1971. V. 18. P. 21—38. 50. Gray P., Rezek R.r Young D. A decision-tree framework for estimating the cost of simulation//Simulation. 1976. V. 26. P. 43—48. 51. Heidelberger P., Welch P, D. A Spectral Method for Confidence Interval Generation and Run Lenth Control in Simulation//Comunications ACM. 1981. V. 24. P. 233—245. 52. Iglehart D. L. Simulating Stable Stochastic Systems. Comparison of Ratio Estimators//Naval Res. Logist. Quart. 1975. V. 22. P. 554—565. 53. Law A. M. Confidence interval in discrete-event simulation: A comparison of replication and batch means//Naval Res. Logist. Quart. 1977. V. 24. P. 667—678. 54. Law A. M. Statistical analysis of the output data from terminating si- mulations//Naval Res. Logist. Quart. 1980. V. 27. P. 131—143. 55. Law A. M. Statistical Analysis of Simulation Output Data//Operation Res. 1983. V. 31. P. 983—1029. 56. Schnber T. J., Andrews R. W. A Conceptual Framework for Simulations Output//Comunications ACM. 1981. V. 24. P. 218—232. 57. Wilson J. R., Pritsker A. Evaluation of Startup Policies in Simulation Experiments//Simulation. 1981. V. 31. P. 79—89. 58. Zeigler B. P., Elzas M. S., Klir D. J. Methodology in system modelling and simulation. North-Holland: Elsevier Science Publishers B. V. 1979. 384 p. К главе 9 1. Программные средства моделирования непрерывно-дискретных систем/ Глушков В. М., Гусев В. В., Марьянович Т. П. и др. Киев: Наукова думка, 1975. 152 с. 2. Трахтенброт Б. А., Бардзинь Я. Н. Конечные автоматы. М.: Наука, 1970. 168 с. 3. Benko M., Javor A., Keresztes P. LSI System Simulation: an Interdisciplinary Approach//Sbornik Radova JUREMA IP 77. April 19—22. Gl. 4. Breuer M. A. A Note on Tree Value Logic Simulation//IEEE Trans, on Computers. 1972. V. C-21. N 4. April. P. 399—402. 5. Chu Y. Digital Simulation of Continuous System. New York: McGraw- Hill Book Company, 1972. 6. Dijkstra E. W. Hierarchical Ordering of Sequential Processes//Springer Verlag. Acta Informatica. 1971. N 1. P. 115—138. 7. Feuvrier Ch. V. La Simulation de Systemes. Paris: Dunod, 1971. 8. Franta W. RM Maly K. An Efficient Data Structure for the Simulation Event Set//Comm. of the ACM August 1977. V. 20. N 8. P. 596—602. 9. Franta W. R., Maly K- An Event Scanning Algorithm of Nearly Constant Complexity//Simulation of System (ed. L. Dekker). North-Holland Publishing Company. 1976. P. 439—444. 10. Golden D. G., Schoeffler J. D. GSL — a combined continuous and discrete simulation language//Simulation. 1973. Jan. V. 20. N 1. P. 1—8. 11. Golden D. G., Schoeffler J. D. Problems in the implementation of a combined continuous-discrete simulation language//Simulation. 1973. February. V. 20. N. 2. P. 49—52. 12. Gordon G. System Simulation. Prentice Hall Inc. Englewood Cliffs, New Jersey, 1969. 13. Goshal A. Some Aspects of Queueing and Storage Systems. Berlin, Heidelberg, New York: Springer-Verlag, 1970. 14. Javor A. An adaptive Time Advancement Algorithm for Discrete Simu- lation//Information Processing Letters. June 1977. V. 6. N 3. P. 83—86. 15. Javor A. An Approach to the Modelling of Uncertainties in the Simulation of Quasi deterministic Discrete Event Systems//Problems of Control and Information Theory. 1975. V. 4/3/. P. 219—229. 513
16. Javor A. Diszkert rendszerek szimulaciojanak nehany kerdese. Szamito- gepes Rendszerszimulacio Szimpozium//Magyar Tudomanyos Akademia Muszaki Tudomanyok Osztalya. Budapest 1975. S. 155—165. 17. Javor A. Dual Nature of Event in Discrete Simulation//Mathematics and Computers in Simulation. 1983. V. XXV. North-Holland, Amsterdam, P. 66—69. 18. Javor A. Ereignis-Behandlung mit dem Delft Algoritmus Simulations- technik 2//Symposium Simulationstechnik. Sept. 1984. Wien. Springer-Verlag. S. 349—353. 19. Javor A. Modelling of Conflict Situations in Discrete Systems//First European Simulation Congress ESC83 Aachen. Sept. 1983. Proceedings Springer-Verlag. P. 118—122. 20. Javor A. On the Simulation of Time in the Case of Quasi-synchronous Discrete Event Distributions//KFKI Report KFKI-74-9, 1974, February. 21. Javor A. Proposals on the Structure of Simulation Systems//Discrete Simulation and Related Fields. 1982. North-Holland, Amsterdam. P. 9—18. 22. Javor A. A Representation of Fuzzyness in Discrete Simulation of Control and Information Theory//1978. V. 7/2. P. 111—114. 23. Javor A., Benko M. On the Problems of Timing and Hazards in the Simulation of Digital Networks//Proc. of the «1974. European Conf. on Circuit Theory and Design». 1974. P. 23—26; July, 1974. London/Conf. Publ. Number 116/ P. 257—262. 24. Javor A., Benko M. A User Oriented System for the Simulation of Digital Logic//CAD Seminar, Budapest, N. 3—5, 1976. 25. Javor A., Benko T-ne. Diszkret rendszerek szimulacioja. Muszaki Konyv- kiado, Budapest, 1979. 26. Javor A., Csakany A. Some Achievements in the Investigation of Data Transmission Networks Using a Flexible Simulation System//Rassegna Interna- zionale Electronica e Nucleare Congresso Scientifico Internazionale per L'Elett- ronica D-5. 1971. Roma Marzo. XVIII. P. 331—337. 27. Javor A., Keresztes P., Benko M. A Solution for MOS-LSI Gate Level Simulation//Simulation of Systems IMACS Congress. 1979. Sorrento, September 24—28. North-Holland, Amsterdam. P. 365—374. 28. Javor A., Revesz A., Tobias P. A Closed-Loop Feedback Controlled Simulation System//Discrete Simulation and Related Fields. 1982. North-Holland, Amsterdam. P. 87—96. 29. Javor A., Revesz A., Tobias P. Simulation System with a Single Core and Several Outer Layers//Discrete Simulation and Related Fields. 1982. North- Holland, Amsterdam. P. 65—86. 30. Javor A., Szabo В. К. Switch-Level Extension of a Logic Simulator// Simulation in Research and Development, IMACS European Simulation Meeting. 1984 August 27—30. Eger, Hungary. P. 105—116. 31. Laski. Two Proposal Towards Discrete Modelling. Proc. of the IFIP Working Conference on Simulation Programming Languagess//North-Holland Publishing Company, Amsterdam. 1968. P. 175—197. 32. Meier R. C.f Newell W. Т., Pazer H. L. Simulation in Business and Economics. Prentice-Hall Inc., 1969. 33. Mize J. H., Cox J. G. Essentials of Simulation. Prentice Hall, Inc., Engle- wood Cliffs, New Jersey, 1968. 34. Solid Logic deeign automation IBM J.//Case P. W., Graff H. M., Griffith L. E., et al. Apr. 1964. P. 127—140. 35. Ulrich E. G. Exclusive Simulation of Activity in Digital Networks//Comm. of the ACM. February 1969. V. 12, N 2. P. 102—110. 36. Vaucher J. G., Duval P. A Comparison of Simulation Event List Algo- rithms//Comm. of the ACM. April 1975. V. 18. N 4. P. 223—230. 37. Wyman F. P. Improved event — scanning mechanisms for discrete event simulation//Comm. of the ACM. 1975. V. 18. N 6. P. 350—353. 38. Zadeh L. A. Fuzzy sets//Inf. Contr. 1965. N 8. 338 p. 514
К главе 10 1. Азаров С. С, Шемшур А. В. Моделирование непрерывно-дискретных систем с использованием пакета ГАСП-IV/HK АН УССР. Киев, 1979. 36 с. 2. Андрианов А. Нм Бычков С. П., Хорошилов А. И. Программирование на языке СИМУЛА-67. М.: Наука, 1985. 370 с. 3. Голованов О. В., Дуванов С. Г., Смирнов В. Н. Моделирование сложных дискретных систем на ЭВМ третьего поколения. М.: Энергия, 1978, 160 с. 4. Гусев В. В., Марьянович Т. П., Сахнюк М. А. Система программирования НЕДИС. Киев: ИК АН УССР, 1975. Ч. I. 205 с. Ч. II. 189 с. 5. Достойнова Т. Е. Язык «Динамо». М.: ВНИИСИ АН СССР, 1982. Ч. II. 64 с. 6. Имитационное моделирование средствами системы НЕДИС и ГАСП-IV/ Т. П. Марьянович, С. С. Азаров, В. В. Гусев и др.//Кибернетика. 1980. № 3. С. 35—51. 7. Каталог программных средств/Государственный фонд алгоритмов и программ. М., 1984. Вып. 1. 64 с. 8. Киндлер Е. Языки моделирования/Пер. с чешек. М.: Энергоатомиздат, 1985. 288 с. 9. Маркевичюс Р. Об использовании абстрактных типов данных для манипулирования графами//Программирование ЭВМ. Вильнюс: ИМК АН Лит. ССР, 1979. Вып. 1. С. 9—25. 10. Нейлор Т. Машинные имитационные эксперименты с моделями экономических систем/Пер. с англ. М.: Мир, 1975. 502 с. 11. Программные средства моделирования непрерывно-дискретных систем/ В. М. Глушков, В. В. Гусев, Т. П. Марьянович, М. А. Сахнюк. Киев: Наукова думка, 1975. 167 с. 12. Сенченко Н. И., Якушев Ю. Н. Программное обеспечение аналого- цифровых вычислительных систем. М.: Машиностроение, 1985. 184 с. 13. Универсальная система моделирования для дискретной и непрерывной имитации. Описание системы/А. Г. Мамиконов, А. Д. Цвиркун, В. К- Акин- фиев, В. А. Филиппов. М.: ИПУ АН СССР, 1980. 48 с. 14. Шеннон Р. Имитационное моделирование систем — искусство и наука. М.: Мир, 1978. 428 с. 15. Шрайбер Т. Дж. Моделирование на GPSS. М.: Машиностроение, 1980. 592 с. 16. Цвиркун А. Д., Акинфиев В. К., Филиппов В. А. Имитационное моделирование в задачах синтеза структуры сложных систем (оптимизационно-имитационный подход). М.: Наука, 1985. 176 с. 17. Benhani R. D. et al. SIMPL-1 — a simple approach to simulation. Simulation, 13, 1969. P. 147. 18. Brennan R. DM Silberberg M. Y. Two continuous system modeling programs. IBM Syst. Journ., 1967, 6. P. 242. 19. Brennan R. D., Silberberg M. Y. The system/360 continuous modeling program//Simulation. 1968, 11. P. 301. 20. Gordon G. System Simulation. Englewood Cliffs, Prentice-Hall, 1969. 21. Gordon G. Systemsimulation. Munchen-Wien, Oldenbourg, 1972. 22. Pritsker A. A. B. The GASP-IV simulation language. N.-York, Sydney, Toronto: Wiley, 1974. 23. Pritsker A. A. BM Young R. F. Simulation with GASP—PL/1, N.-York, London, Sydney, Toronto: Wiley, 1976. 24. Richardson G. P., Pygh A. L. Introduction to system dynamics modeling with Dynamo. MIT Press, Cambridge, 1981. 25. Schone A. Simulation technischer Systeme. Munchen, Hanser, 1976. 3 sv. К главе 11 1. Бежикина И. Н., Галицкая Б. И., Марек И. А. Диалоговая система АЛИСА в агрегативной имитационной системе//Электронная техника» 1985. Сер. 9. Вып. 1 E4). С. 53—56, 515
2. Дал Эм Дейкстра У., Хоор К. Структурное программирование. М.: Мир, 1980. 248 с. 3. Йенсеи К., Вирт Н. ПАСКАЛЬ. М.: Финансы и статистика, 1982. 151 с. 4. Калашников В. В., Лутков В. И., Ривес Н. Я. Организация направленных экспериментов на основе агрегативной имитационной системы/меория сложных систем и методы их моделирования. ВНИИ СИ, 1982. С. 50—64. 5. Катцан Г. Язык ФОРТРАН 77. М.: Мир, 1982. 208 с. 6. Немчинов Б. В. Структурные преобразования агрегативных систем и их применение для конструирования моделирующих алгоритмов//Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1982. С. 65—75. 7. Немчинов Б. В., Петров С. Т., Симонов В. М. К проблеме конструирования эффективного алгоритмического обеспечения моделируемых систем// Теория сложных систем и методы их моделирования. М.: ВНИИСИ, 1984. С. 94—119. 8. Новая версия агрегативной имитационной системы/Бежикина И. Н. и др.//Сб. трудов МНИИПУ. Проблемы моделирования сложных систем, 1984. С. 5—14. 9. Фомин Ю. Г. Библиотека агрегатов//Электронная техника, 1986. Сер. 9. Вып. 4F1). С. 55—58. 10. Хьюз Дж., Мичтом Дж. Структурный подход к программированию. М.: Мир, 1982. 278 с. К главе 12 1. Ахо А. В., Ульмаи Дж. Д. Теория синтаксического анализа, перевода и компиляции. М.: Мир, 1978. Т. 1, 2. (Т. 1 612 с; Т. 2 482 с). 2. Котов В. Е. Введение в теорию схем программ. Новосибирск: Наука, 1978. 257 с. 3. Криницкий Н. А. Равносильные преобразования алгоритмов и программирование. М.: Сов. радио, 1970. 304 с. 4. Ляпунов А. А. О логических схемах программ/Шроблемы теоретической и прикладной кибернетики. М.: Наука, 1980. С. 118—145. 5. Немчинов Б. В. Структурные преобразования агрегативных систем и их применение для конструирования моделирующих алгоритмов//Теория сложных систем и методы их моделирования. 1982. М.: ВНИИСИ. С. 65—76. 6. Хьюз Дж., Мичтом Дж. Структурный подход к программированию. М.: Мир, 1980. 280 с. 7. Языки программирования/Под ред. Ф. Гейса. М.: Мир, 1973. 408 с. 8. Behr J. P., u. a. Modellbeschreibung mit Auswertungsnetzen//Ange- wandte Informatik. 1975. H. 9. S. 375—382. 9. Bergholz G. Verhaltensmodelle von Prozessrechnern. Berlin: Akademie Verlagr 1980. 249 s. w) Brandenburg V., u. a. CAPSIM—Computer am Arbeitsplatzsimulation, Ein Wlfsmittel zur Gestaltung wirtschaftlicher CAP—Systerne//Informatik-Fach- berichte 56, Proceedings 1. Symposium, Simulationstechnik Erlangen, 1982. Sprin- ger-Verlag. S. 46—55. 11. Chlamtac I., Raj Jain. A methotology for building a simulation model for efficient design and performance analysis of local area networks//Simulation. V. 44. N 2, 1984. P. 57—66. 12. Craig J. I. C. The design of a multi-microprocessor based simulation computer//Proc. of 15-th Ann. Simul. Symp. Tampa, N. Y. 1982. P. 45—53. 13. Dangelmeier, u. a. Richtung wei endes Simulations—system fur Mate- rialfluss und Lagerprozesse//Fordern und Heben. Mainz. 1982. 32/3. S. 191—196. 14. Frank M., Lorenz P. Simulation disketer Prozesse. Leipzig: Fachbuch- Verlag, 1979. S. 65—120. 15. Frank M. Ein Automatentheoretisches Modellkonzept fur ein fachge- bietsbezogenes Simulationssystem zur Untersuchung diskreter technologischer Prozesse. Diss. B/Tech. Hochschule Ilmenau, 1979. 174 s. 16. Fuchs—Kitowskl Км u* a. Informatik und Automatiskrerung. Bd. 1. Berlin: Akademie Verlag, 1976. 429 s. Б16
17. Fuss H. E. AFMG-ein asynchroner Fluss-Modell-Generator//Gesellschaft fur Mathematik und Datenverarbeitung m. b. H. Bonn. 1975. N 100. S. 127. 18. Generatorsystem zur Simulation von Reihenfolgeproblem (SIRE).// Forschungs-beruht DV 79—03, Universitat Koln, 1979, 58 s. 19. Gennoth B. Warteschlangensysteme-Modelluntersuchungen des Simulators GPSS—FORTRAN//R. Oldenbourg-Verlag, Munchen, Wien, 1978. S. 9-66. 20. Grosschallau W., Heinzel R. Interaktive Simulation und Animation von Transportsystemen mil Graphik—Computer//Angewande Informatik. 1982. N 24. H. 7. S. 365—374. 21. Kalashnikov V. V., Petrov S. T. Problem Orientation of Simulation Sy- stems//Syst. Anal. Model. Simul. V. 2, N2, 1985. P. 99—108. 22. Ludwig W. Modellierung und Simulation von Kreisfordersystemen//Wiss. z. d. HfV. 1982. S. 584—592. 23. Lenz J. E. MAST: A Simulation tool designing computerized metalwork- ing factories//Simulation. La Jolla. Calif. Inc. Stanley Rogers. Febrary 1980. S. 51—58. 24. Medeiros u. a. A Modular Approach to Simulation of Robotic Systems// Tuterial Proceedings of the 1980 Winter Simulation Conference. Orlanda-Florida. John „Wiley & Sons. S. 207—214. 2_55 Pegden C. D., Pritzker A. B. SLAM//Tuterial Proceedings of the 1980 Winter Simulation Conference. Orlanda—Florida. John Wiley & Sons. S. 347—356. 26. Pepper P. (ed.). Program Transformation and Programming Enviroments. NATO—AS1 Series. Vol. F8. Springer Veriag: Berlin, Heidelberg, New York, Tokio, 1984, 378 p. 27. Reinhardt A. SIMFLEX—Ein Softwaresystem zur interaktiven graphi- schen Erstcllung und Steuerung von Modellen flexibler Fertigungssysteme//lnfor- matik Fachberichte 11, Springer Veriag: Berlin, New York, Heidelberg. 1977. S. 218—232. 28. Safarik J., Simoncic R. The Formation of Simulation Programmes for Queueing Networks//Simulation of Systems 83-Abstracts. Praha, Mikrofiche 3/13. 1983. N 205. 29. Schulze W. Wissenschaftliche Forschung und elektronische Rechentechnik. Berlin: Akademie-Verlag, 1975. 137 s. 30. Schmidt B. The Way Ahead in Discrete Simulation...//System Analysis and Simulation. 1980. Akademie Veriag. In: Sidow A. Berlin, 1980. S. 229—233. 31. Schmidt B. Systemanalyse und Modellbildung//In Informatik-Fachbe- richte 56, Proceedings 1, Symposium, Simulationstechnik Erlangen. 1982. Springer-Veriag. S. 106—115. 32. Schmidt В., Weissenburger G. Simulationsverfahren Modellierung dyna- mischer Systeme (MODS)//Rechentechnik-Datenverarbeitung. 1975. N 12. H. 7. S. 40—43. 33. Stahn H. Ein Beitrag zur Analyse und Sinthese automatisierter Systeme diskreter technologischer Prozesse. — Diss. B/TU Dresden, 1979. 138 s. 34. TOMAS—Anwenderdokumentation. Teil II: Anwendungsbeschreibung- Function der modellierenden Elemente und der Ergebnisauswertung/IHS Dresden, 1984. 35 s. 35. Zloof M. M. Query-by-Example: A data base language//IBM System Journal. 1977. V. 4. N 16. P. 321—343. К главе 13 1. Абрамов Н. Н. Водоснабжение. М.: Стройиздат, 1982. 440 с. 2. Абстрактные типы и множественность их представлений при испол- нении/М. Бактар, А. Кувер, Д. Эрман, М. Рэналь//Теория и практика программного обеспечения ЭВМ. Новосибирск: ВЦ СО АН СССР, 1981. С. 109—125. 3. Автоматизация реакторных расчетов/М. Н. Зизин, В. А. Загацкий, Т. А. Темноева, Л. Н. Ярославцева. М.: Атомиэдат, 1974. 104 с. 4. Анализ и обработка данных в диалоговых системах имитации/Под.ред. чл.-кор. АН СССР А. А. Вавилова. Л.: ЛЭТИ им. В. И. Ульянова (Ленина), 1979. 76 с. 517
5. Атре Ш. Структурный подход к организации баз данных/Пер. с англ.; Под ред. В. И. Будзко. М.: Финансы и статистика, 1983. 317 с. 6. Базовая система языковых и программных средств моделирующего центра. Л.: ЦНИИ «Румб», 1986. 184 с. (Программно-математическое обеспечение ЭВМ. Вып. 42). 7. Бачурин А. С, Николаев М. И. О построении программного обеспечения системного моделирования в модульной системе прикладных программ СОД/СИМ//Изв. ЛЭТИ. Науч. тр. Л.: ЛЭТИ им. В. И. Ульянова (Ленина). 1981. Вып. 287: Проектирование сложных систем автоматического управления. С. 18—24. 8. Бачурин А. С, Фомин Б. Ф. Языковые и программные средства обработки данных структурных исследований в системном моделировании: Теория сложных систем и методы их моделирования//Тр. семинара. М.: ВНИИСИ АН СССР, 1985. С. 71-88. 9. Брябрин В. М. Ф-язык — формализм для представления знаний в интеллектуальной диалоговой системе/Прикладная информатика. М.: Статистика, 1981. Вып. 1. С. 73—103. 10. Бусленко Н. П. Моделирование сложных систем. М.: Наука, 1978. 400 с. И. Бухштаб Ю. А. Система ВОПРОС—ОТВЕТ (краткое описание и входной язык). М.: ИПМ АН СССР, 1975. Препринт № 104. 26 с. 12. Бухштаб Ю. А., Камынин С. С. Система ВОПРОС—ОТВЕТ—2 и ее возможности. М.: ИПМ АН СССР, 1978. Препринт № 50. 20 с. 13. Вавилов А. А., Фомин Б. Ф., Аврамчук Е. Ф. Системное моделирование/Теория сложных систем и методы их моделирования//Тр. семинара. М.: ВНИИСИ АН СССР, 1982. С. 41—50. 14. Вавилов А. А., Фомин Б. Ф., Бачурин А. С. Прикладное программное обеспечение структурных исследований в системном моделировании/Теория сложных систем и методы их моделирования//Тр. семинара. М.: ВНИИСИ АН СССР, 1984. С. 48—68. 15. Вавилов А. Ам Фомин Б. Ф., Отвагин П. Е. Базовая система языковых и программных средств моделирующего центра/Теория сложных систем и методы их моделирования//Тр. семинара. М.: ВНИИСИ АН СССР, 1983. С. 65—78. 16. Вагнер Г. Исследование операций. М.: Мир, 1972. Т. 1, 336 с. 17. Вопросы разработки имитационных систем/В. В. Калашников, В. И. Лутков, Б. В. Немчинов, Н. Я- Ривес//Экономика и системы управления, 1980. Вып. 1 C4). С. 71—87. 18. Гилман Л., Роуз А. Курс АПЛ: диалоговый подход. М.: Мир, 1970. 526 с. 19. Горлин А. И. О некоторых методах планирования вычислительного процесса//Программирование, 1975. № 6. С. 49—55. 20. Григас Г., Купчюнас Г. Абстрактные типы данных: Программирование ЭВМ. Вильнюс: ИМК АН ЛитССР, 1980. Вып. 3. С. 9—47. 21. ДИЛОС — диалоговая система для взаимодействия с ЭВМ на естественном языке/В. Г. Абрамов, В. М. Брябрин, М. Г. Пховелишвили и Др. М.: ВЦ АН СССР, 1979. 80 с. 22. Емельянов С. В., Калашников В. В. Исследование сложных систем с помощью моделирования//Итоги науки. Сер. Техн. кибернетика. М.: ВИНИТИ, 1981. Т. 14. С. 158—210. 23. Ершов А. П., Ильин В. П. Пакеты прикладных программ. Технология решения прикладных задач. Новосибирск ВЦ СО АН СССР. 1978. Препринт № 121. 22 с. 24. Загацкий Б. А. Прикладная программа для ЕС ЭВМ/Системное программирование. Новосибирск, 1973. Ч. 2. С. 161—177. 25. Золотарев С. В., Пашинцев В. Д., Соколов В. Н. О реализации интерпретирующей системы АПЛ/ЕС—ОС//УСиМ. 1986. № 5. С. 50—51. 26. Кахро М. И., Калья А. П., Тыугу Э. X. Инструментальная система программирования ЕС ЭВМ (ПРИЗ). М.: Финансы и статистика, 1981. 158 с. 27. Кикачейшвилн Г. Е. Расчет оптимальных параметров систем подачя и распределения воды. Тбилиси: Сабчота Сакартвело, 1980. 200 с. 518
28. Клыков Ю. И., Горькое Л. Н. Банки данных для принятия решений. М.: Сов. радио, 1980. 208 с. 29. Комплекс программных средств для структурных исследований сложных систем и решение задач на графах в СОД/СИМ/А. С. Бачурин, М. И. Николаев, П. Е. Отвагин, Б. Ф. Фомин//Тез. докл. 2-го Всесоюзн. совещ. «Методы и программы решения оптимизационных задач на графах и сетях». Новосибирск, 1982. Т. 1. С. 19—21. 30. Кофман А. Введение в прикладную комбинаторику/Пер. с франц. М.: Наука, 1975. 480 с. 31. Кристофидес Н. Теория графов. Алгоритмический подход. М.: Мир, 1978. 432 с. 32. Кузин Л. Т. Основы кибернетики. М.: Энергия, 1979. Т. 2. 584 с. 33. Левин Д. Я. Программирование в системе СЕТЛ. Новосибирск ВЦ СО АН СССР, 1978. Препринт № 138. 28 с, 34. Логическое и физическое проектирование баз данных на основе СУБД с инвертированными файлами/Метод рекомендации 299032-09-М-85. Л.: ЦНИИ «Румб», 1985. 80 с. 35. Математическое обеспечение ЕС ЭВМ. Минск. Ин-т матем. АН БССР, 1974. Вып. 5. 286 с. 36. Моисеев Н. Н. Математические задачи системного анализа. М.: Наука, 1981. 488 с. 37. Пратт Т. Языки программирования. Разработка и реализация. М.: Мир, 1979. 574 с. 38. Прикладные задачи теории графов. М.: Моск. энергетич. ин-т, 1981. Вып. 556. 76 с. 39. Разработка структур и алгоритмов систем управления ГПС на основе методов имитационного моделирования. Метод рекомендации 299044- 13-М-86/ Под ред. Н. С. Соломенко и В. М. Букалова. Л.: ЦНИИ «Румб», 1986. 148 с. 40. Решение вычислительных задач в процедуральной дедуктивной системе/ Е. Ф. Аврамчук, А. С. Бачурин, П. Е. Отвагин и др./Автоматизация экспериментальных исследований и проектирования систем управления. Л.: ЛГУ им. А. А. Жданова, 1980. Вып. 5. С. 48—60. 41. Самарский А. А. Современная прикладная математика и вычислительный эксперимент//Коммунист. 1983. № 18. С. 31—42. 42. Семик В. П., Остапенко Г. П. ДИАМС — диалоговая система программирования и решения информационных задач на СМ ЭВМ. Прикладная информатика. М.: Финансы и статистика, 1982. Вып. 1. С. 5—29. 43. Система моделей для проектирования технологических структур и алгоритмов управления ГПС/Я. Г. Гольдин, Г. М. Гилыптейн, А. Н. Плоткин и др.//Тез. докл. Всесоюзн. научно-техн. конф. Проблемы создания и внедрения гибких производств и робототехнических комплексов на предприятиях машиностроительной промышленности. Окт. 1986. Одесса. С. 37—39. 44. Система моделей для проектирования технологических структур и алгоритмов управления ГПС корпусных деталей/Е. Ф. Аврамчук, А. А. Плеханов, А. Н. Плоткин и др.//Тез. докл. X Всесоюзн. совещ. по проблемам управления. Сент.—окт. 1986 г. Алма-Ата, 1986. С. 188—189. 45. Система накопления, хранения и обработки информации. Л.: ЦНИИ «Румб», 158 с. (Программно-математическое обеспечение ЭВМ. Вып. 44.) 46. Системы управления базами данных для ЕС ЭВМ: Справочник/Под общ. ред. В. М. Савинкова. М.: Финансы и статистика, 1984. 224 с. 47. Структура новой версии агрегативной имитационной системы/И. Н. Бе- жикина, Б. И. Галицкая, В. В. Калашников и др./Теоретические и прикладные вопросы моделирования/Международный НИИ проблем управления. М., 1984. С. 5—15. 48. Тамм Б. Г., Тыугу Э. X. Пакеты программ/Изв. АН СССР. Техн. кибернетика. 1977. № 5. С. 111 — 124. 49. Технология системного моделирования/Под ред. А. А. Вавилова. Л.: ЛЭТИ им. В. И. Ульянова (Ленина), 1982. 64 с. 50. Тыугу Э. X. Решение задач на вычислительных моделях//ЖВМиМФ, 1970. Т. 10. № 3. С. 716—733. 519
51. Управление ГПС. Модели и алгоритмы/Под ред. С. В. Емельянова. М.: Машиностроение; Берлин: Техник, 1987. 368 с. 52. Шоу А. Логическое проектирование операционных систем. М.: Мир, 1981. 360 с. 53. Llskov В. An Introduction to CLU. — In: New Directions in Algoritmic Languages, 1975. Rocguencort: IRIA, 1976. P. 139—156. ПРОИЗВОДСТВЕННОЕ ИЗДАНИЕ Аврамчук Евгений Федорович, Вавилов Александр Александрович, Емельянов Станислав Васильевич и др. ТЕХНОЛОГИЯ СИСТЕМНОГО МОДЕЛИРОВАНИЯ Редактор Т. В. Абизова Переплет художника А. В. Разумова Художественный редактор |А. И. Pol Технический редактор Л. П. Гордеева Корректоры: Т. В. Багдасарян, Л, А. Ягупьева ИБ № 5159 Сдано в набор 14.03.88. Подписано в печать 21.06.88. T-I1244. Формат бОХЭО'/и. Бумага офсетная № 1. Гарнитура литературная. Печать офсетная. Усл. печ. л. 32,6. Усл. кр.-отт. 32,5. Уч.-изд. л. 38,04. Тираж 10 000 экг. Заказ 412. Цеиа 2 р. 40 к. Ордена Трудового Красного Знамени издательство «Машиностроение» 107076, Москва, Стромынский пер., 4 Ленинградская типография № б ордена Трудового Красного Знамен ; Ленинградского объединения «Техническая книга» им. Евгении Соколовой Союзполиграфпрома при Государственном комитете СССР . по делам издательств, полиграфии и книжной торговли. 193144, г. Ленинград, ул. Моисеенко, 10