Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CАиПР ГЛАВА_2.doc
Скачиваний:
34
Добавлен:
03.05.2015
Размер:
520.19 Кб
Скачать

Глава 2

Метод системной динамики

Эффективный метод анализа динамики сложных систем был предложен в Массачусетском технологическом институте профессором Дж.Форрестером [139, 164]. Первоначально метод был известен как “индустриальная динамика” и применялся исключительно для изучения проблем управления в производстве. Спустя некоторое время это название перестало соответствовать содержанию, так как применение метода оказалось гораздо шире. Он оказался эффективен и для решения других проблем, например, связанных с городской динамикой, управлением ресурсами, распространением болезней и так далее. В связи с тем, что данный метод может применяться для моделирования и изучения практически любых сложных систем, он был назван системной динамикой [140, 141].

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

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

*Примечание авт. Чтобы избежать терминологической путаницы, далее термин «динамическая модель» будем понимать в смысле «имитационная модель» (от латинского imitatio – копирование, подражание), элементы которой имеют математическое описание.

2.1. Цели и задачи динамического моделирования

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

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

Динамические модели не способны формировать свое собственное решение в том виде, в каком это имеет место в аналитических моделях, а могут лишь служить в качестве средства для анализа поведения системы в условиях, которые определяются экспериментатором. Следовательно, системная динамика – не теория, а методология решения проблем [148].

Таким образом, можно выделить три основные преимущества, а следовательно, и области применения динамического моделирования:

  • сложные слабо-формализованные ситуации, в которых невозможно применение аналитических методов или они настолько сложны и трудоемки, что динамическое моделирование дает более простой способ решения проблемы;

  • моделирование поведения систем в ситуациях, которые ранее не встречались; в данном случае имитация служит для предварительной проверки новых стратегий управления системой перед проведением эксперимента на реальном объекте;

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

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

С другой стороны, динамическое моделирование имеет существенное ограничение - ограниченную точность моделирования и невозможность ее априорной оценки (косвенную характеристику точности может дать анализ чувствительности модели к изменениям отдельных параметров исследуемых систем). Кроме того, разработка хорошей динамической модели часто обходится дороже создания аналитических моделей и требует больших временных затрат. Тем не менее, динамическое моделирование является одним из наиболее широко используемых методов при решении задач синтеза и анализа сложных систем.

Из сказанного можно сделать вывод, что динамическое моделирование наиболее эффективно использовать при решении следующих задач:

  • исследование сложных систем, с целью выявления причинно-следственных связей;

  • прогнозирование последствий изменения стратегий управления сложной системой;

  • обучение специалистов работе со сложными природно-техническими комплексами.

Метод исследования сложных систем с помощью их динамического моделирования получил название системная динамика. Используя этот метод, Дж.Форрестеру удалось выявить фундаментальные закономерности развития сложных социальных систем. Показать связь таких параметров мировой системы, как численность населения, потребление ресурсов, выработка загрязнений и других. Дж.Форрестером также были сформулированы основные принципы метода системной динамики, которые и позволяют его рассматривать как метод, несмотря на отсутствие строгого теоретического обоснования. И хотя людям с высокой математической подготовкой динамическое моделирование представляется грубым силовым приемом или последним средством, к которому следует прибегать, факт заключается в том, что этот метод является самым распространенным инструментом в руках ученого, занимающегося проблемами исследования и управления сложными системами. В табл. 2.1 представлены результаты проведенного Шенноном и Байлесом [178] обследования научной деятельности группы действительных членов Американского общества исследования операций.

Табл. 2.1 Полезность методов исследования в повседневной научной работе.

Методы

Относительная ценность

Теория вероятностей

Экономический анализ

Имитационное моделирование

Линейное программирование

Управление запасами

Теория массового обслуживания

Теория расписаний

Модели замены

Теория игр

Динамическое программирование

Методы поиска

Нелинейное программирование

0.182

0.150

0.143

0.120

0.097

0.085

0.072

0.042

0.040

0.031

0.020

0.018

Для лиц, занимающихся повседневными исследованиями, более высокую по сравнению с имитационным моделированием оценку полезности имеют, как видно из этой таблицы, только теория вероятностей и экономический анализ. Эти результаты подтверждаются и другими исследованиями. Например, Уэстон [188] обследовал 1000 крупнейших фирм США с точки зрения анализа пригодности определенных методов для внутрифирменного планирования. Результаты этого исследования приведены в табл. 2.2.

Табл. 2.2 Методы, наиболее часто используемые во внутрифирменном планировании

Методы

Частота использования

Процент

Имитационное моделирование

Линейное программирование

Теория расписаний

Теория управления запасами

Нелинейное программирование

Динамическое программирование

Целочисленное программирование

Теория массового обслуживания

Прочие

60

43

28

24

16

8

7

7

12

29

21

14

12

8

4

3

3

6

Широкое применение Системной динамики (имитационного моделирования) как метода решения проблем в различных областях человеческой деятельность становится все более очевидным. Поэтому, несмотря на недостаточное математическое изящество, системная динамика является одним из наиболее широко распространенных методов, используемых при решении проблем исследования и управления.

2.2. Основные принципы системной динамики

Метод системной динамики основывается на четырех принципах, в одинаковой степени влияющих на эффективность применения метода [165, 168].

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

Уровень аккумулирует общее количество исследуемого «продукта», являющееся результатом входящих в него и выходящих из него потоков, значения которых прибавляются или вычитаются из уровня. Системные уровни полностью описывают состояние системы в любой момент времени. Значения уровней представляют собой информацию, необходимую для принятия решений и обоснования управляющих воздействий на систему. Уровни обеспечивают систему инерцией и «памятью» состояний, они создают задержки между притоком и оттоком как причиной и следствием.

Изменение уровней вызывается соответствующими потоками. Поток может иметь фиксированное значение, а может быть управляем как функция от значений уровней. Также поток имеет направление.

На схемах и диаграммах уровни обозначаются прямоугольниками (рис.2.1,а), а потоки – двойными стрелками (труба с заданным направлением, рис.2.1,б), управляемый поток обозначается двойной стрелкой с вентилем (рис.2.1,в), исток и сток за пределами рассматриваемой нами системы обозначаются как «облако» (рис.2.1,г).

а).

б).

в).

г).

Рис. 2.1. Графическое представление элементов моделей системной динамики

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

Рассмотрим известный из школы пример динамической системы про бассейн и две трубы, по одной вода втекает в бассейн, по другой – вытекает (рис.2.2).

X S Y

приток бассейн отток

Рис. 2.2. «Бассейн»

Очевидно, что количество воды в бассейне в каждый момент времени будет определяться как количество воды в предыдущий момент времени плюс приток и минус отток за единицу времени.

t

S(t) =  (X(t) – Y(t)) dt +S(t0), (2.1)

t0

здесь t – текущее время, t0 – начальное время.

Таким образом, вместо физической имитации динамики поведения системы с помощью «водопровода», удобно использовать для этой цели математические описания элементов модели системной динамики (например уравнение 2.1), а для симуляции процессов, протекающих в исследуемой системе, применять численные методы интегрирования данных уравнений. Более подробно этот процесс и особенности применения различных численных методов интегрирования рассмотрен в разделе 2.3.2 настоящей главы.

Понятия уровней и потоков присутствует во многих областях человеческих знаний. Вот некоторые из них: в математике – это интегралы и производные, в физике – устойчивые состояния и переходы, в химии – реагенты, продукты реакции и сами химические реакции, в экономике – уровни (например, благосостояния) и потоки (например, трудовых ресурсов), в бухгалтерском учете – запасы и потоки (финансовые и материальные), в медицине – состояние организма и распространение инфекции и так далее. Этот список можно продолжать еще очень долго, что говорит об очевидности предложенного Дж.Форрестером [165] данного принципа системной динамики.

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

В моделировании динамических систем существует два вида петель обратной связи - положительные и отрицательные, положительные на диаграммах обозначаются буквой R, отрицательные -B. В петле положительной обратной связи цепочка “причина-следствие” замыкается на себя, из-за чего увеличение одного элемента, входящего в петлю, инициирует последовательное изменение других, которые в результате приводят к тому, что первоначально измененный элемент увеличивается еще больше. Обратные связи подробно представлены в разделе 1.2 первой главы. Поэтому здесь ограничимся рассмотрением небольшого примера, иллюстрирующего действие положительных и отрицательных обратных связей в динамической системе (рис.2.3).

Рис. 2.3. Причинно-следственная диаграмма подсистемы Население.

Примером положительной петли является отношение между числом новорожденных “BrithRate” и населением “Population”, петля R1 (рис. 2.3). При постоянной средней рождаемости увеличение численности населения приведет к увеличению числа новорожденных за год. Увеличение новорожденных приведет к увеличению населения в следующем году, и таким образом, к увеличению новорожденных в следующем году.

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

Примером отрицательной петли является отношение между смертными случаями “Deaths”и населением “Population”, петля B1 (рис. 2.3). Увеличение численности населения при постоянной средней смертности приведет к большему числу умерших за год. Большее число умерших приводит к уменьшению численности населения, и, таким образом, к уменьшению числа умерших в следующем году.

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

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

2.3. Система динамического моделирования Powersim

Одним из ярких представителей среди средств моделирования, реализующих методы системной динамики, является система динамического моделирования Powersim [175]. Название Powersim происходит от слов «Powerful» и «Simulation» и означает в переводе с английского имитация мощности. С помощью Powersim можно строить модели, которые имитируют элементы исследуемой системы и их взаимодействие друг с другом. Готовая модель - мини-лаборатория, где можно экспериментировать с различными стратегиями прежде чем применить их в реальном мире. Однако нужно заметить, что разработка хорошей динамической модели часто обходится дороже создания аналитической модели и требует больших временных затрат (3 – 8 лет по мнению Форрестера) [162, 164]. Поэтому разработка различных систем динамического моделирования, Powersim в том числе, позволяет снизить затраты на создание динамических моделей и максимально облегчить работу исследователя с системой.

Powersim содержит многие стандартные средства Windows - приложений, такие как меню и инструментальные линейки, и поддерживает технологии Dynamic Data Exchange (DDE) и Object Linking and Embedding (OLE).

2.3.1. Общая характеристика и возможности системы

Модель состоит из набора связанных компонентов, называемых переменными и реализуемых в виде диаграмм. Создание модели заключается в определении переменных и отношений между ними. Powersim обеспечивает редактирование диаграммы для определения и уточнения создаваемых моделей. Переменные представлены как графические объекты, которые могут быть связаны между собой, используя соединения и потоки. Каждая связь представляет отношения между переменными. Точное определение отношений задается как уравнение в Powersim языке. Powersim позволяет наблюдать на одной диаграмме структуру модели и ее поведение. Динамические объекты могут быть помещены в любой участок диаграммы, чтобы нагляднее показать пользователю поведение модели в процессе симуляции.

При разработке модели средствами данной программной системы используются следующие конструкции (табл. 2.3): уровни (запас), потоки, вспомогательные переменные, константы и связи.

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

Табл. 2.3. Основные элементы системы динамического моделирования Powersim

Уровень: тип переменной, который накапливает изменения. Изменяется под влиянием потока

Вспомогательная переменная: тип переменной, который содержит вычисления основанные на других переменных.

Константа: тип переменной, который содержит установленные значения, которые используются в вычислениях вспомогательных переменных или потоков.

Поток:влияет на уровни

Поток с темпом: влияет на уровни. Поток управляем связанной переменной темпа, обычно вспомогательная переменная величина

Информационная связь: Дает информацию к вспомогательным переменным относительно значения других переменных.

Запаздывающая связь информации: Используется только, когда вспомогательная переменная величина содержит специальные функции задержки.

Связь инициализации: Дает начальную информацию, чтобы выровнять переменные относительно значения других переменных.

Облако: Неопределенный источник или выход для потока к, или из уровня. Обозначает, что мы - в одном из внешних пределов модели.

Уровни

Уровни в модели Powersim представляют аккумуляцию в моделируемой системе, суммирование всех изменений, которые “входят / втекают” и “выходят / вытекают” из уровня с потоками. Они могут представлять физические накопления, такие как запасы или задолженности, а также «неосязаемые» накопления, как опасность, социальная напряженность и т.д.

Уровням необходимо при моделировании задать начальное значение, которое может быть числом или значением другой переменной, постоянной или вспомогательной величины данной модели. Powersim моделирует уровни, добавляя приращения к начальным значениям или вычитая «оттоки» из них. Эти вычисления производятся на каждом временном шаге модели, так, что значение каждого уровня в каждый момент времени определяется его значением в предыдущий временной шаг плюс все «притоки» и минус все «оттоки» в текущий временной шаг.

Потоки

Потоки в модели Powersim представляют транспортировку количественных величин к уровню, от уровня, и между ними.

В модели уровни - это "состояние" системы, потоки - "действие". Потоки - единственные переменные, которые могут изменять уровни. Контроль над величиной потока осуществляется через темп, который может являться переменной любого типа связанной с "клапаном” потока. Наиболее часто используемый темп - это вспомогательная переменная величина.

Powersim обеспечивает и изображение потока и потока с темпом на панели инструментов. Изображение потока с темпом - это поток с вспомогательной переменной присоединенной к нему информационной связью. Вспомогательная переменная расположена близко к потоку что эта связь не видна и создается впечатления, что это один элемент. Темп может отделиться от потока на диаграмме, если есть в том необходимость.

Потоки могут добавляться к уровню, вычитаться из уровня, и вычитаться из одного уровня и добавляться к другому одновременно. Если поток не присоединен к уровням с обоих концов, то на свободном конце изображается символ “облако”. Этот символ обозначает источник для «притоков» и слив для «оттоков». Источник означает, что количественная величина в потоке прибывает откуда-нибудь, что не определено в модели. Слив означает противоположное, то, что количественная величина в потоке идет куда-нибудь, что не определено в модели.

Вспомогательные переменные

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

Информация между вспомогательными переменными может быть «отсрочена», используя инструмент запаздывающей связи, а если между ними используется регулярный инструмент связи, то они изменяются мгновенно. Разработчик модели может сам определять, связать дополнительные переменные с использованием регулярных связей или использовать запаздывающие связи. Вспомогательные переменные формулируются с помощью алгебраических уравнений, не задавая начального значения. Любые другие переменные могут использоваться как входные данные к этим уравнениям. Разработчик на этапе создания модели должен сформулировать каждое уравнение использующее другие вспомогательные переменные, константы, потоки, и/или уровни как входные данные и должен определить определить форму объединения входных данных, используя стандартные математические инструменты, представленные в системе.

Константы

Константы используются для того, чтобы представить элементы моделируемой системы, которые не изменяются на протяжении прогона моделирования. Если модель должна работать в течение 100 единиц времени, и каждый раз единица представляется, например, одной неделей, тогда константы должны быть использованы для моделирования того, что не изменяется в течение 100 недель. Однако имеется возможность пользователям модели изменить константы непосредственно в течение прогона моделирования. Такие константы называются параметрами.

Константы часто используются для того, чтобы моделировать факторы времени и начала отсчета или начальные значения. Например, темпы часто используют факторы времени так, что величина значения добавляемого к уровню темпом может быть фиксирована в течение определенного количества единиц времени.

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

Константа может зависеть только от других переменных в начальной стадии. Это означает, что единственный тип связи, которая может быть направлена в константу - связь инициализации.

Связи

Связи - это инструменты для соединения элементов модели Powersim. Существуют три типа связей:

  • информационные связи;

  • запаздывающие связи;

  • связи инициализации.

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

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

Связи инициализации используются для урегулирования начальных значений уровней. Так как только потоки могут изменить уровни, информационная связь, которая входит в уровень автоматически изменяется в связь, которая представляется на диаграммах пунктиром и реализует связь инициализации.

2.3.2. Сравнительный анализ реализуемых системой методов интегрирования

Для вычисления переменных модели можно использовать встроенные функции Powersim: финансовые, статистические, стандартные математические и другие.

Моделирование описывает изменение переменных в системе через заданное время. Для каждого временного шага моделирования, такие переменные как уровень обновляются, чтобы описать текущее положение или состояние системы. Математически уровни являются интегралами по времени от темпов потока. Powersim обеспечивает следующие методы интегрирования:

  • метод Эйлера;

  • методы Рунге-Кутта второго, третьего, и четвертого порядка - последний с установленным и переменным шагом.

Метод Эйлера

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

Алгоритм Эйлера

Пусть Lt - значение уровня L в момент t, F(Lt, t) - значение потока F уровня L в момент t

Для вычисления интеграла по интервалу от t до t + t выполняются следующие шаги.

Шаг 1: Вычисляем производящий поток при t = T

Flow= F ( LevelT, T)

Шаг 2: Вычисляем значение уровня в момент t = T + t основанный на LevelT и Flow

Level T + t = LevelT + t * Flow

Примечание Важной характеристикой метода Эйлера является предположение, что поток - константа по интервалу t. Другими словами он использует производную информацию только в начале интервала [37].

Уменьшая t, можно сократить количество ошибок полученных методом Эйлера. Когда t стремится к нулю, приближение Эйлера приближается к точному решению. Но при уменьшении t, увеличивается число требуемых вычислений и соответственно количество сопровождающих ошибок. Поэтому, выбор метода интегрирования будет зависеть от выбора между скоростью вычислений и точностью метода интегрирования.

Методы интегрирования Рунге-Кутта

Методы Рунге-Кутта используют более сложную процедуру для вычислений изменения в уровнях по данному временному шагу (t), таким образом обеспечивая более высокую степень точности. Powersim обеспечивает четыре различных типа методов интегрирования Рунге-Кутта от второго до четвертого порядка [37]:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]