Способы исследования сложных систем

Сложность систем и способы «борьбы» с ней

Все мы так или иначе проектируем и реализуем системы. Будь то программные комплексы, инфраструктурные или платформенные решения. И в рамках этой работы мы постоянно сталкиваемся с понятием «сложной системы». В рамках этой заметки я хочу поделиться своим видением на сложность систем и «борьбу» с ней.

Начнем с определения системы. Мне нравится определение данное в книге System Architecture. Strategy and Product Development for Complex Systems. Перевод звучит примерно так:

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

Это очень важное определение. Оно говорит о том, что система должна генерировать «полезность». Если система не дает прироста «полезности», в сравнении с компонентами, ее составляющими, то, вероятно, такая система не очень нужна.

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

И тут для нас, как инженеров, важно иметь механизм, какой-то способ, позволяющий эту сложность измерить. В качестве базы для этого механизма ребята из MIT предлагают использовать широко известное «магическое число семь плюс минус два». На эту тему есть оригинальное исследование, а так же статьи на хабре и презентации TED. В двух словах, идея всех этих исследований состоит в том, что «рабочая память» человека может одновременно удерживать и работать с ограниченным числом различных объектов. Тут очень важно понятие «различных» объектов, поскольку мозг борется со сложностью группируя объекты. Например, связи между объектами одинакового вида или типа можно держать в голове как одну связь. Или, более наглядно — не надо представлять себе систему из кучи перемешанных шариков разных цветов. Достаточно просто сгруппировать их в голове, сказать, что есть, скажем, пять красных шариков, семь желтых и три синих. Это упрощает работу с системой, уменьшая количество объектов с пятнадцати до трех. Поэтому в контексте оценки сложности мы говорим именно о разных объектах, атомарных, которые невозможно сгруппировать.

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

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

Сложная система, это система состоящая из 7+-2 атомарных компонентов и их связей в различных соотношениях.

Классические способы борьбы со сложностью

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

  • Абстракция — способ, который позволяет выделить основную функцию системы или подсистемы и скрыть содержимое
  • Декомпозиция — способ разбиения системы на блоки меньшего размера или составляющие
  • Иерархия — способ разбиения системы на уровни, где уровни имеют определенное место в структуре и располагаются одни над другими
  • Иерархическая декомпозиция — способ, объединяющий иерархию и декомпозицию
Читайте также:  Пилка для пяток способ применения

Все эти средства в конечном итоге призваны упростить отдельные подсистемы нашей системы таким образом, чтобы при работе с каждым отдельным блоком он «влезал в голову» целиком.

О чем это все в конце концов

Что же все эти вещи нам дают? Попросту говоря, идея состоит в том, чтобы, используя различные методы, преобразовать неструктурированный набор компонентов системы, к некоему структурному виду. При этом, памятуя о магической семерке, можно сказать, что каждый блок в декомпозиции не должен содержать больше чем семь плюс/минус два элемента. Иначе, при детальном рассмотрении такого блока, его будет сложно контролировать.

С другой стороны, если мы имеем систему с большим количеством блоков, разбитых на иерархические уровни, то количество таких уровней, желательно, не должно превышать семи (плюс/минус два). В качестве иллюстрации хочу привести слайд из Fundamentals of Systems Engineering. Как видно из слайда, сложность системы растет с ростом количества уровней декомпозиции.

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

Не стройте сложные системы. Стройте системы с необходимым уровнем сложности.

Источник

Способы исследования сложных систем

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

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

Читайте также:  Рост по традиционному способу

Типичные примеры сложных систем

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

Методы исследования сложных систем

Основной метод исследования — математическое моделирование, в том числе имитация процессов функционирования сложной системы на ЭВМ (машинный эксперимент). Для моделирования сложной системы необходимо формализовать процессы ее функционирования, т. е. представить эти процессы в виде последовательности четко определяемых событий, явлений или процедур, и затем построить математическое описание сложной системы. Элементы сложной системы обычно описывают в виде динамических систем (в широком смысле), к которым, кроме классических динамических систем, относят также и другие детерминистические и стохастические объекты — такие как конечные автоматы, вероятностные автоматы, системы массового обслуживания, кусочно-линейные агрегаты и т. п. Взаимодействие элементов сложной системы обычно представляют как обмен сигналами между ними и описывают четырьмя моделями: моделью формирования выходного сигнала элемента с учетом условий его функционирования; сопряжения элементов сложной системы сетью каналов связи, обеспечивающих передачу сигналов между элементами; изменения сигнала в процессе его прохождения через канал; поведения элемента при получении им сигнала. Первая и последняя модели естественным образом включаются в модель процесса функционирования динамической системы. Аналогично модель преобразования сигнала можно получить, если каждый реальный канал передачи сигналов (вместе с селектирующими и преобразующими устройствами) представить в виде соответствующей динамической системы и рассматривать как самостоятельный элемент сложной системы. При формализации сопряжения элементов сложной системы обычно вход (выход) элемента представляют в виде совокупности «элементарных» входов (выходов) — по числу характеристик, описывающих соответствующие сигналы. Предполагается, что характеристики сигналов передаются в сложной системе независимо друг от друга по «элементарным каналам», связывающим входы и выходы соответствующих элементом. Сопряжение элементов сложной системы задается соотношением, по которому данному входу r-го элемента ставится в соответствие тот выход j-го элемента, который связан с ним «элементарным каналом». Если сложная система расчленена на подсистемы, содержащие два элемента и более, то для описания каждой подсистемы необходима соответствующая одноуровневая схема сопряжения; кроме того, нужна схема сопряжения второго уровня для описания связей между подсистемами. Совокупность этих схем сопряжения составляет двухуровневую схему сопряжения сложной системы. Когда подсистемы объединяются в более крупные подсистемы, образуется трехуровневая схема сопряжения и т. д. Многоуровневые схемы сопряжения аналогичного вида применяются и в сложных системах с переменной во времени, управляемой или стохастической структурой связей между элементами. Сложная система с многоуровневой схемой сопряжения, элементы которой являются динамическими системами, можно также рассматривать как динамическую систему; ее характеристики определяются характеристиками элементов и схемой сопряжения. Поэтому на сложной системы можно распространить постановку и методы решения многих задач, относящихся к анализу и синтезу классических динамических систем, конечных и вероятностных автоматов, систем массового обслуживания и т. д.

Читайте также:  Панцеф 100мг 5мл способ приготовления

Способы построения математических моделей сложных систем и методы их исследования — предмет возникшей в 60-х гг. 20 в. новой научной дисциплины — теории сложных систем. Для математического описания элементов сложной системы пользуются методами теории функций, современной алгебры и функционального анализа. Исследование математических моделей сложных систем обычно начинают с оценки функциональных характеристик, являющихся показателями эффективности, надежности, помехозащищенности, качества управления и других важных свойств сложных систем. С формальной точки зрения упомянутые показатели представляются функционалами, заданными на множестве траекторий движения сложной системы. Рассмотрение зависимости функционалов от параметров сложной системы открывает возможности для использования при анализе сложных систем методов теории поля.

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

В 70-х гг. для исследования сложных систем стали широко применять алгебраические методы теории полугрупп, модулей, структур, обычно используемые при решении задач динамики детерминистических систем, декомпозиции автоматов, теории реализации линейных систем и др. В связи с необходимостью моделировать на ЭВМ процессы функционирования объектов большой сложности возникают серьезные проблемы, связанные с ростом трудоемкости вычислений. Для снижения объема работ при подготовке моделей целесообразно использовать универсальные автоматизированные моделирующие алгоритмы, способные настраиваться на любые конкретные объекты из заданного класса. Наличие имитационной модели позволяет применять специальные методы идентификации сложных систем и обработки экспериментальных данных, полученных в результате натурных испытаний систем. Испытываемый объект рассматривается как сложная система с неизвестными параметрами элементов и параметрами сопряжения. Неизвестные параметры оценивают посредством сравнения значений функциональных и структурных характеристик сложной системы, устанавливаемых экспериментально и в результате моделирования. Это дает возможность определять поправки к первоначальным значениям параметров сложной системы и добиваться достаточной точности оценки неизвестных параметров методом последовательных приближений.

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

Источник

Оцените статью
Разные способы