ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N1 (ВВОДНАЯ) I. ОРГВОПРОСЫ 1. Списки групп 2. Расписание занятий II. ПРОБЛЕМЫ СИСТЕМЫ ОБРАЗОВАНИЯ РОССИИ Денег на систему образования у государства нет и не будет:
- проблемы обеспечения учебного процесса литературой, техникой и т. д. в конечном итоге будут так или иначе переложены на плечи студентов они вынуждены будут сами себе покупать книги и даже компьютеры; - возможна реформа системы образования с непредсказуемыми последствиями; - возможна (замаскированная) ликвидация бесплатного образования вообще. III. ПРОБЛЕМЫ МИРОВОЙ КОМПЬЮТЕРНОЙ ИНДУСТРИИ
Западная экономика построена по принципу совместного функционирования двух систем: планирующей (для крупных фирм) и рыночной (для мелких фирм и частных лиц). Планирующая система является доминирующей - она диктует цены рыночной системе. В планирующей системе не действуют законы рынка:
- она может произвольным образом устанавливать цены на товары и услуги; - может навязывать потребителю любой товар ("промывая мозги" при помощи рекламы);
- кризисы перепроизводства почти не затрагивают планирующующую систему - все издержки она может переложить на рыночную систему, которая, в конечном итоге, всегда платит за ошибки планирующей системы. Фирмы Intel, IBM и Microsoft явно принадлежат к планирующей системе и пользуются всеми ее преимуществами. Однако их деятельность явно вызывает кризис в мировой компьютерной индустрии. Архитектура компьютеров IBM AT и микропроцессоров Intel принципиально устарела. Система Windows стала сверхуниверсальной, что приводит к чрезвычайному замедлению работы компьютеров.
За кризис в конечном итоге расплатится рыночная система, т. е. потребители. IV. ПРАВИЛА РАБОТЫ С ЛИТЕРАТУРОЙ
Книги стоят дорого! Как найти хорошую книгу среди тысяч посредственных? 1. Хорошая книга обычно написана от первого лица, посредственная - от третьего. 2. Признак явной халтуры - отсутствие картинок (т. е. образных моделей). 3. Следует избегать книг с названием "учебник" и книг "для чайников". Обычно учебники пишут теоретики - люди, полностью отрезанные от реальности и практических навыков по рассматриваемому в книге предмету. Книги "для чайников" пишут люди, только начинающие изучать описываемые ими вопросы. Проблемы: хорошие книги обычно издаются малыми тиражами и дорого стоят. V. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ 1. Что такое модель?
Модель - это нечто, чем можно заменить физический объект в процессе эксперимента. 2. Зачем нужна модель?
Экспериментировать с физическим объектом может быть дорого, неудобно или опасно. 3. Зачем нужно имитационное моделирование?
Когда задача имеет слишком большую размерность или не поддается решению в явном виде по каким-то другим причинам, используют иммитационное моделирование. 4. Профессиональные тренажеры и компьютерные игры. VI. МАШИННАЯ ГРАФИКА
1. Компьютерная графика позволяет наглядно отображать результаты моделирования. 2. Технический прогресс позволил упростить работу с памятью компьютеров. На аппаратном уровне оперативная, графическая и дисковая память теперь фактически имеют линейную организацию. 3. Организация видеопамяти. Рисование точки. Рисование статической картинки. Рисование буквы. Рисование плоских движущихся изображение. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N2 I. ОРГАНИЗАЦИЯ ВИДЕОПАМЯТИ 1. Восьмибитовый режим (256 цветов). 1. 1. Режим с разрешением 320х200 точек.
Линейное адресное пространство 64 кб (адреса A0000h-AFFFFh). Используется таблица цветов - можно выбрать 256 из 218 возможных оттенков. 1. 2. Режимы с более высоким разрешением и стандарт VESA.
Возможна либо страничная адресация через сегменты по 64 кб (по адресу A0000h-AFFFFh), либо линейная адресация пространства объемом до 64 Мб (по адресу E0000000h-E3FFFFFFh). 2. 24- и 32-битовый режимы (True color).
Возможна либо страничная адресация через сегменты по 64 кб (по адресу A0000h-AFFFFh), либо линейная адресация пространства объемом до 64 Мб (по адресу E0000000h-E3FFFFFFh). II. АНИМАЦИЯ В ДВУМЕРНОМ ПРОСТРАНСТВЕ И ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ.
Экономия процессорного времени (обмен "память-быстродействие"): при реализации двумерной графики обычно не нужно перерассчитывать изображение для каждого объекта в каждом новом кадре. Изображения всех объектов могут быть рассчитаны заранее (с помощью профессиональных анимационных программ), записаны в файлах на диске и, по мере необходимости, перенесены в оперативную память компьютера. Движущиеся объекты отличаются от неподвижных тем, что требуют по несколько картинок для описания отдельных фаз
каждого возможного движения (3-16 фаз на один тип движения). Аппроксимация. Влияние разрешения на качество картинки. Лестничный эффект. Скорость обмена данными с кеш-памятью, оперативной памятью и видеопамятью. Необходимо вначале накопить данные в оперативной памяти, и уже затем выводить в видеопамять изображение нового кадра.
Расход памяти. Использование симметрии при отображении поступательных и вращательных движений для экономии оперативной памяти. Разделение сложных объектов на несколько независимо отображаемых элементов. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N3 АНИМАЦИЯ В ДВУМЕРНОМ ПРОСТРАНСТВЕ И ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ.
Расход памяти. Использование симметрии при отображении поступательных и вращательных движений для экономии оперативной памяти. Разделение сложных объектов на несколько независимо отображаемых элементов. Объекты с несколькими осями симметрии. Круг - объект с бесконечным числом осей симметрии. Иллюзия вращения круга. Сколько разных подвижных и неподвижных объектов заданного размера (при заданном числе фаз движения) можно сохранить в оперативной памяти компьютера (заданного объема)? Фон. Лабиринты и псевдокарты. Прокрутка изображения. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N4 АНИМАЦИЯ В ДВУМЕРНОМ ПРОСТРАНСТВЕ И ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ. Необходимо задать жесткие ограничения:
- на размерность отображаемого пространства (на число координатных осей); - на размер отображаемого пространства (площадь и глубину); - на сложность фона; - на число и сложность формы неподвижных объектов;
- на число и сложность формы подвижных объектов, число типов движений и число фаз движений;
- на масштабируемость объектов (на сколько допустимо увеличение и уменьшение объекта); - на направление взгляда и угол обзора. Направление взгляда: сверху, сбоку, сверху-сбоку.
Координатные оси. Двумерное, псевдотрехмерное и трехмерное пространство. Ориентация осей в двумерном пространстве (относительно экрана монитора). -------- x | | | y
Ориентация осей в трехмерном пространстве (оси x и y - как в двумерном, ось z направлена от оператора вглубь экрана).
Соотношение между сферическими и прямоугольными координатами: x = r sin f cos Q y = r sin f sin Q z = r cos f
Алгоритм художника. Примитивный вариант z-буферизации в псевдотрехмерной графике. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N5 ЗАДАНИЕ НА ЗАЧЕТ
Задание: написать программу, выполняющую моделирование функционирования какой-либо системы и отображающую результаты моделирования на экране монитора в графическом виде. Каждый студент может выбрать себе задание (тип моделируемой системы) самостоятельно. Программа может иметь форму игры, но обязательно должна моделировать какую-то реальную систему или процесс. ОГРАНИЧЕНИЯ:
1. Программа должна работать под операционной системой DOS. Нельзя использовать возможности Windows.
2. Языки программирования: С, Паскаль или Ассемблер. Объектно-ориентированные возможности языков использовать нельзя. 3. Ограничение на графические режимы: можно использовать только режим 256 цветов (1 байт видеопамяти на каждую точку) с разрешением 320х200 точек или (в случае крайней необходимости) 640х400 точек.
4. Нельзя использовать никакие графические библиотеки - вывод информации должен производиться напрямую в видеопамять. 5. Ограничение по быстродействию: программа должна сохранять работоспособность на медленных 486-х компьютерах.
6. Ограничение по оперативной памяти - нельзя использовать более 500 кб основной памяти и более 1 Мб расширенной. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N7 РИСОВАНИЕ ЛИНИЙ, ОКРУЖНОСТЕЙ И ЭЛЛИПСОВ. ЗАЧЕМ ЭТО НУЖНО ЗНАТЬ?
Основной недостаток всех универсальных графических библиотек - медленная работа (универсальная система всегда значительно уступает по производительности специализированной). Использование чужой библиотеки всегда сопровождается серьезным риском: - программы библиотеки могут содержать ошибки, которые вы не можете исправить (исходные коды программ обычно не поставляются);
- возможны ошибки в документации на библиотеку (либо просто неточное описание ее функционирования);
- в продажу, как правило, поступают уже сильно устаревшие библиотеки фирмы-разработчики не нуждаются в конкуренции с вашей стороны. Покупка чужой технологии всегда приводит к технологическому отставанию - вы сами себя изгоняете с рынка за свои же собственные деньги;
- разработчик библиотеки в любой момент может перестать ее развивать; - в компьютерной промышленности периодически происходят кризисы, уничтожающие целые классы ("ряды") морально устаревших вычислительных машин. Заменяющие их принципиально новые системы в течение нескольких лет могут не иметь необходимого программного обеспечения. Проектировщики систем управления постоянно имеют дело с новейшей аппаратурой, и часто вынуждены сами создавать для нее программное обеспечение. РИСОВАНИЕ ЛИНИИ (алгоритм Брезенхема)
"Несмотря на всю сложность программирования графики, в основе любой графической функции лежит несколько на удивление простых функций, называемых графическими примитивами. Такими примитивами являются прорисовка точек, линий, окружностей, а также заполнение областей и перемещение битовых образов. Многие годы в графическое оборудование встраивался тот или иной набор графических примитивов. Такой примитив, как рисование линии, особенно широко используется конструкторскими программами, а также программами автоматизированной разработки. У каждой функции рисования линии есть две важнейшие характеристики. Во-первых, функция должна хорошо приближать то, что она рисует, к реальной линии. Разрешение компьютера ограничено, поэтому программа может приближать реальную линию только сериями точек, устанавливаемых в заданном направлении. Эта последовательность точек должна создавать хороший зрительный эффект - то, что нарисовано, должно быть похоже на линию. Во-вторых, чтобы быть полезной, функция рисования линии должна работать быстро. Мини-компьютеры и большие машины имеют аппаратно встроенные функции рисования линии. У персональных же компьютеров аппаратной поддержки рисования линии нет. " Майкл Абраш
Появление аппаратной поддержки графики в ПЭВМ (графические ускорители, команды MMX).
Приближение реальной линии набором пикселей. Лестничный эффект. Алгоритм Брезенхема:
Алгоритм идет по оси, проекция линии на которую больше (основной оси), и проверяет соседние точки по другой оси, выбирая ту, что ближе к реальной линии. Текущая ошибка отклонения используется как критерий того, что пора менять неосновную координату, чтобы лучше приблизить реальную линию.
Для того, чтобы можно было работать только с целыми числами, избегая вычислений с плавающей запятой, достаточно промасштабировать картинку. Благодаря использованию только целочисленной арифметики алгоритм Брезенхема является одним из самых простых и быстрых алгоритмов. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N8 РИСОВАНИЕ ОКРУЖНОСТЕЙ (алгоритм Харденбурга) Уравнение окружности: R2 = X2 + Y2
С точки зрения программирования достаточно рассчитать 1/8 часть окружности остальные точки могут быть получены за счет симметрии.
Обычно начинают рисовать из точки, где координата по основной оси (по которой приращение больше) равна 0, а по неосновной - радиусу. Каждая следующая точка получается из формулы: |\\\\\\\\\\\\\\\\ MinorAxis = ? R2 - MajorAxis2 где R - радиус, MinorAxis - координата по неосновной оси, MajorAxis - координата по основной оси.
Недостаток - нужно вычислять квадратный корень и использовать арифметику с плавающей запятой. Желательно, однако, работать только с целочисленной арифметикой.
Вместо вычисления такого выражения для каждой точки достаточно отслеживать текущие значения MinorAxis2 и R2 - MajorAxis2 и декрементируйте один пиксель по неосновной оси, как только MinorAxis2 становится меньше R2 - MajorAxis2. Ошибка накопления - не целое число. Однако никаких проблем это не создает. Координату по неосновной оси нужно изменять, когда (Y - 0. 5)2 > R2 - X2 Однако: (Y - 0. 5)2 = Y2 - Y + 0. 25
Разность Y2- Y вычисляется в целых числах, а 0. 25 можно просто игнорировать, потому что разность R2 - X2, которую мы будем сравнивать с ошибкой накопления по Y, всегда целое число. Если R2 - X2 равен Y2 - Y, то на самом деле R2 - X2 меньше ошибки. Следовательно, неосновную координату нужно менять, когда Y2 - Y >= R2 - X2.
Кроме того, при необходимости можно ускорить вычисления, заменив операцию взведения в квадрат (умножения) на сдвиг, сложение и инкремент (для 486-х и более мощных процессоров такая замена не имеет смысла): (a + 1)2 = a2 + 2a + 1. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N9 РИСОВАНИЕ ЭЛЛИПСОВ
Современные микропроцессоры, используемые в персональных ЭВМ, включают в себя быстродействующие блоки для вычислений с плавающей запятой. Это позволяет рассчитывать любые эллипсы.
Однако ненаклонные эллипсы можно достаточно быстро прорисовывать, используя только целочисленную арифметику. Ненаклонный эллипс описывается уравнением: x2 y2 --- + --- = 1. A2 B2 следовательно |\\\\\\\\ / B2x2 y = / B2 - ---- , ? A2
где полученное значение Y необходимо округлить до ближайшего целого. Так как эллипс имеет две оси симметрии, то вычисления достаточно выполнить для оного из четырех квадрантов. Сначала рисуется дуга, где основной осью является X, затем - дуга, где основной осью является Y. Затем полученные точки отображаются на три остальных октанта.
Точка, в которой ось перестает быть основной, вычисляется по формуле B2x2 = A2y2 . ПРЯМАЯ РАБОТА С ПАМЯТЬЮ В СОВРЕМЕННЫХ ВИДЕОКОНТРОЛЛЕРАХ
Вообще говоря, изобилие видеорежимов является результатом несогласованной и непродуманной технической и маркетинговой политики фирм-изготовителей аппаратуры. Фирмы просто не смогли вовремя выработать общий стандарт, что и породило хаос. Само по себе использование данных ПЗУ видеокарты для программирования режимов работы той же карты является грубым техническим просчетом - гораздо рациональнее было бы возложить процедуру переключения режимов не на основной процессор, а на собственный процессор видеокарты. Кроме того, со времени разработки первых видеокарт для IBM PC в конструкции видеокарт сохранилось множество нелепых анахронизмов, что делает невозможным прямое управление работой видеокарты на аппаратном уровне. Для обеспечения нормальной работы видеокарты в режимах SVGA встроенная в карту микросхема видео-BIOS должна соответствовать стандарту VESA v2. 0 или более позднему. Ранние версии стандарта VESA не поддерживали режимы True Color и прямую адресацию видеопамяти. Установка видеорежима
Видеорежим устанавливается вызовом прерывания 10h с номером функции 4F02h. В регистр BX нужно код видеорежима: 100h - 640x400 256 цв. , 101h - 640x480 256 цв. , 103h - 800x600 256 цв. , 105h - 1024x768 256 цв. , 107h - 1280x1024 256 цв. , 112h - 640x480 TrueColor, 115h - 800x600 TrueColor, 118h - 1024x768 TrueColor, 11Bh - 1280x1024 TrueColor. Например, нужно установить режим 640x480 TrueColor: mov AX, 4F02h mov BX, 112h int 10h Выбор окна видеопамяти
Вследствие ошибки, допущенной еще при разработке процессора Intel 8086, вся размещенная на видеокарте память оказалась разделенной на кусочки размером по 64 кб - так называемые "окна" или "страницы". Процессору в каждый момент времени доступно только одно такое окно, и для доступа к другому требуется вызвать программу видео-BIOS, переключающую окна (на аппаратном уровне такое переключение выполнить сложно - видеокарты разных фирм используют для этого регистры с разными номерами).
Например, в режиме TrueColor 640x480 при четырехбайтовой кодировке цвета точки одному кадру соответствует 1228800 байт памяти, или 18, 75 страниц по 64 кб. Переключение номера активного (доступного процессору) окна выполняется вызовом прерывания 10h с номером функции 4F05h. В регистр BH нужно записать 0, в регистр DX - номер окна. Само окно будет размещено по адресу A0000h. Например, нужно обратиться к данным в девятом окне: mov AX, A000h mov ES, AX mov AX, 4F05h mov BH, 0 mov DX, 9 int 10h Установка логической длины строки развертки
Страницы видеопамяти отображаются на экран последовательно, друг за другом. При этом на экран отображается только некоторая часть видеопамяти. Другая, невидимая часть, может использоваться как вспомогательная: для "прокрутки" изображения, для хранения шрифтов и масок, для z-буферизации и пр. ================ | | | |--- видимая часть видеопамяти | | ================ | | | | | |--- невидимая часть | | | | ---------------
Однако, если ширина экрана в пикселах не равна 2N (256, 512, 1024 или 2048), то концы страниц не будут совпадать с концами видеострок, что порождает множество проблем - при вычерчивании, к примеру, линии на экране, придется при выводе каждой точки выполнять проверку пересечения границы страницы, и, при необходимости, переключать страницу.
Постоянный контроль границы страницы и частое программное (через VESA-BIOS) переключение страниц чудовищно замедляет вывод информации на экран (в сотни или тысячи раз).
Эту проблему можно частично разрешить, реорганизуя видеопамять таким образом, чтобы логическая длина строки (длина строки видеопамяти) была больше физической (экранной) и стала кратной 2N: видимая область | ================-------- | | | | | | | | | ================ | | |--- невидимая область | | ------------------------
Установка новой логической длины строки выполняется вызовом прерывания 10h с номером функции 4F065h. В регистр BL нужно записать 0, в регистр CX - требуемую ширину строки в пикселах. Например, устанавливаем длину строки равной 1024 пиксела: mov AX, 4F06h mov BL, 0 mov CX, 1024 int 10h
В 8-битовом режиме (256 цветов) на одну точку приходится 1 байт данных, в 32-битовом режиме True Color - 4 байта. Если логическая длина строки равна 1024 пиксела, то на одну страницу будет приходиться соответственно 64 строки в 256-цветном режиме и 16 строк - в режиме True Color.
Более радикальный способ используется в программах трехмерной графики, где каждую точку в каждом кадре приходится перезаписывать по несколько раз. Видеопамять работает медленнее ОЗУ и намного медленнее кэш-памяти. Поэтому (с точки зрения скорости работы) выгодно выделить в ОЗУ буфер кадра (от 2 до 8 Мб), пост
роить там изображение и переписать готовый кадр в память видеокарты. Для двумерной графики такой способ выигрыша по скорости обычно не дает двумерная графика работает с небольшими областями экрана, а не с целым кадром, и переписывать весь кадр только ради изменения незначительной его части невыгодно. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N10 ОРГАНИЗАЦИЯ ВИДЕОПАМЯТИ Организация памяти в режиме True Color
Каждый пиксел описывается четырьмя байтами данных - по одному для задания интенсивности каждого из основных цветов и один резервный - для "выравнивания" длины передаваемых данных на 2N: 31 24 23 16 15 8 7 0 --------- --------- --------- -------- --------- --------- --------- -------- 3 2 1 0 резервный красный зеленый синий (ноль) Пограммирование таблицы цветов в 256-цветном режиме
В восьмибитовом режиме каждому из 256 кодов поставлен в соответствие определенный оттенок. Часто бывает необходимо переопределить набор оттенков (стандартный набор неудобен). Каждый оттенок задается тремя 6-битовыми значесниями, определяющими интенсивности красного, зеленого и синего. Перезапись таблицы оттенков выполняется вызовом прерывания 10h с номером функции 1012h. В регистр BX нужно записать 0, в регистр CX записать 256, в пару регистров ES: DX - указатель на начало таблицы размером 3*256 байтов, где в каждой группе из трех байтов записаны (побайтно) значения интенсивностей красного, синего и зеленого (могут принимать значения только от 0 до 63). Пример: mov AX, DATASEG mov ES, AX mov DX, offset ColorTable mov AX, 1012 mov BX, 0 mov CX, 256 int 10h ЗАКРАСКА МНОГОУГОЛЬНИКОВ
Проблема закраски многоугольников возникает в двух основных случаях: - в двумерной графике - при рисовании многоугольников в графических редакторах; - в трехмерной графике - при отображении на экране какой-либо плоской поверхности. Наиболее эффективным (быстрым) способом закраски (заливки) многоугольника является построчный вывод изображения:
- если многоугольник невыпуклый, его разделяют на несколько треугольников или выпуклых многоугольников;
- определяют вершины выпуклого многоугольника, имеющие минимальную и максимальную координаты по Y (верхнюю и нижнюю вершины); - сканируют многоугольник построчно, определяя начальную и конечную координаты по X, для чего (используя алгоритм Брезенхема) просчитывают координаты всех точек ребер многоугольника; - используя массив начальных и конечных точек (XB[i], XE[i]), выводят многоугольник построчно в видеопамять.
На самом деле, таким способом можно строить не только выпуклые многоугольники. Важно только, чтобы любую строку пересекало ровно два ребра многоугольника.
При выводе трехмерной фигуры с плоскими гранями ее проекция на экран будет состоять из ряда многоугольников. Однако на экране видны не все грани фигуры перед выводом на экран необходимо тем или иным способом удалить невидимые поверхности, для чего существуют специальные алгоритмы. Для каждой грани необходимо также вычислить интенсивность цвета (сумму интенсивностей отраженного и рассеянного света) в зависимости от расположения источников света.
При работе с кривыми поверхностями их также представляют в виде многоугольников (обычно - треугольников), однако таких элементов для достаточно точной аппроксимации нужно много и приходится использовать алгоритмы сглаживания, что сильно замедляет вычисления - на каждую точку поверхности приходится несколько математических операций. В настоящее время даже графические станции не позволяют в реальном времени изображать движение сложного объекта в реальном мире. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N 11 ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ 1. Что такое модель?
Модель - это нечто, чем можно заменить физический объект в процессе эксперимента. 2. Зачем нужна модель?
Экспериментировать с физическим объектом может быть дорого, долго, неудобно или опасно. 3. Зачем нужно имитационное моделирование?
Когда задача имеет слишком большую размерность или не поддается решению в явном (аналитическом) виде по каким-то другим причинам, используют иммитационное моделирование. Управление в современном мире становится все более трудным делом, поскольку организационная структура нашего общества усложняется. Эта сложность объясняется характером взаимоотношений между различными элементами наших организаций и физическими системами, с которыми они взаимодействуют. Хотя эта сложность существовала давно, мы только сейчас начинаем понимать ее значение. Теперь мы сознаем, что изменение одной из характеристик системы может легко привести к изменениям или создать потребность в изменениях в других частях системы. В связи с этим получила развитие методология системного анализа ("исследование операций", "теория управления"), которая была призвана помочь руководителям и инженерам изучать и осмысливать последствия таких изменений. В частности, с появлением электронных вычислительных машин одним из наиболее важных и полезных орудий анализа структуры сложных процессов и систем стало имитационное моделирование. Имитировать, значит "вообразить, постичь суть явления, не прибегая к экспериментам на реальном объекте". По существу, каждая модель есть форма имитации. Имитационное моделирование является широким и недостаточно четко определенным понятием, имеющим очень большое значение для лиц, ответственных за проектирование и функционирование систем.
Подобно всем мощным средствам, существенно зависящим от искусства их применения, имитационное моделирование способно дать либо очень хорошие, либо очень плохие результаты. Оно может либо пролить свет на решение проблемы, либо ввести в заблуждение. Поэтому важно, чтобы руководитель или тот, кто принимает решения и будет пользоваться результатами моделирования, представлял себе
смысл вводимых допущений, сильные и слабые стороны метода, его преимущества и тонкости. Подлинное умение пользоваться техникой имитационного моделирования можно приобрести лишь на опыте. Определение:
Имитационное моделирование есть процесс конструирования модели реальной системы и постановки экспериментов на этой модели с целью либо понять поведение системы, либо оценить (в рамках ограничений, накладываемых некоторым критерием или совокупностью критериев) различные стратегии, обеспечивающие функционирование данной системы. Таким образом, процесс имитационного моделирования мы понимаем как процесс, включающий и конструирование модели, и аналитическое применение модели для изучения некоторой проблемы. Под моделью реальной системы мы понимаем представление группы объектов или идей в некоторой форме, отличной от их реального воплощения. Термин "реальный" используется в смысле "существующий или способный принять одну из форм существования". Системы, существующие еще только на бумаге или находящиеся в стадии планирования, могут моделироваться так же, как и действующие системы.
Согласно нашему определению, термин имитационное моделирование может также охватывать стохастические модели и эксперименты с использованием метода Монте-Карло. Иными словами, входы модели и функциональные соотношения между ними могут содержать, а могут и не содержать элемент случайности, подчиняющийся вероятностным законам. Более того, мы не ограничиваем наше определение имитационного моделирования лишь экспериментами, проводимыми с помощью машинных моделей. Много полезных видов имитационного моделирования может быть осуществлено всего лишь при помощи карандаша и листа бумаги. Имитационное моделирование является экспериментальной и прикладной методологией, имеющей целью: - описать поведение систем;
- построить теории и гипотезы, которые могут объяснить наблюдаемое поведение; - использовать эти теории для предсказания будущего поведения системы, т. е. тех воздействий, которые могут быть вызваны изменениями в системе или изменениями способов ее функционирования. В отличие от большинства технических методов, которые могут быть классифицированы в соответствии с научными дисциплинами, в которые они уходят своими корнями (например, с физикой или химией), имитационное моделирование применимо в любой отрасли науки. Для моделирования системы нам необходимо поставить искусственный эксперимент, отражающий основные условия моделируемой ситуации. Для этого мы должны придумать способ имитации искусственной последовательности происходящих в системе событий. Модель является представлением объекта, системы или понятия (идеи) в некоторой форме, отличной от формы их реального существования. Модель служит обычно средством, помогающим нам в объяснении, понимании или совершенствовании системы. Модель какого-либо объекта может быть или точной копией этого объекта (хотя и выполненной из другого материала и в другом масштабе), или отображать некоторые характерные свойства объекта в абстрактной форме. Примечание: абсолютно точной моделью объекта является сам этот объект. Все остальные модели - приближенные.
Модель - это используемый для предсказания и сравнения инструмент, позволяющий логическим путем спрогнозировать последствия альтернативных действий и достаточно уверенно указать, какому из них отдать предпочтение. Кроме того, модель может служить эффективным средством общения и осмысления действительности. Имитация - всего лишь один из видов моделирования.
По существу, прогресс науки и техники тесно связан с развитием способности человека создавать модели естественных явлений. Одним из главных элементов, необходимых для эффективного решения сложных задач, является построение и соответствующее использование модели. Такая модель может принимать разнообразные формы, но одна из наиболее полезных и наиболее употребительных форм - это математическая, выражающая посредством системы уравнений существенные черты изучаемых реальных систем и явлений. К сожалению, не всегда возможно создать математическую модель в узком смысле слова. При изучении большинства промышленных и военных систем мы можем определить цели, указать ограничения и предусмотреть, чтобы наша конструкция подчинялась техническим и экономическим законам. При этом могут быть вскрыты и представлены в той или иной математической форме существенные связи в системе. В отличие от этого решение, к примеру, экологических проблем связано с неясными и противоречивыми целями, а также с выбором альтернатив, диктуемых политическим и социальным факторами. Следовательно, модель должна описывать как количественные, так и качественные характеристики системы. Модель может применяться в качестве: - средства осмысления действительности; - средства общения; - средства обучения и тренировки; - инструмента прогнозирования; - средства постановки экспериментов.
Полезность модели как средства осмысления реальных связей и закономерностей очевидна. Модели могут помочь нам упорядочить наши нечеткие или противоречивые понятия и несообразности. Модель помогает нам выявить взаимосвязи, временные соотношения, требуемые ресурсы и т. п. Уже сама попытка представить наши словесные формулировки и мысли в какой-то иной форме часто выявляет противоречия и неясности. Правильно построенная модель вынуждает нас организовать наши замыслы, оценить и проверить их обоснованность.
Как средство общения хорошо продуманная модель не имеет себе равных. "Лучше один раз увидеть, чем сто раз услышать". Все языки, в основе которых лежит слово, в той или иной мере оказываются неточными, когда дело доходит до сложных понятий и описаний. Преимущество модели перед словесными описаниями - в сжатости и точности представления заданной ситуации. Модель делает более понятной общую структуру исследуемого объекта и вскрывает важные причинно-следственные связи. Модели применялись и продолжают широко применяться в качестве средства профессиональной подготовки и обучения. Модель - превосходное средство подготовки операторов, которые должны научиться справляться с всевозможными случайностями до возникновения реальной критической ситуации в системе управления. Одним из наиболее важных применений моделей является прогнозирование поведения моделируемых объектов. Строить сверхзвуковой реактивный самолет для определения его летных характеристик экономически нецелесообразно, однако они могут быть предсказаны средствами моделирования.
Наконец, применение моделей позволяет проводить контролируемые эксперименты в ситуациях, где экспериментирование на реальных объектах было бы практически невозможным или экономически нецелесообразным. Непосредственное экспериментирование с системой (натурный эксперимент) обычно состоит в варьировании некоторых ее параметров; поддерживая остальные параметры неизменными, наблюдают результат эксперимента. Когда ставить эксперимент на реальной системе слишком дорого, используют ее модель. При экспериментировании с моделью сложной системы мы часто можем больше узнать о ее внутренних взаимодействующих факторах, чем могли бы узнать, манипулируя реальной системой. Это становится возможным благодаря измеряемости структурных элементов модели, благодаря тому, что мы можем полностью контролировать ее поведение, легко измерять параметры. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N 12 ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
Модель может служить для достижения одной ид двух основных целей: либо описательной, если модель служит для объяснения и лучшего понимания объекта, либо предписывающей, когда модель позволяет предсказывать и воспроизвести характеристики объекта, определяющие его поведение. Модель предписывающего типа обычно является и описательной, но не наоборот, Это означает, что предписывающая модель почти всегда является описательной по отношению к моделируемому объекту, но описательная модель не всегда полезна для целей планирования и проектирования.
Различная степень полезности моделей, применяемых в технике и в социальных науках, в значительной мере зависит от методов и средств, которые использовались при построении моделей, и различий в конечных целях, которые при этом ставились. В технике модели служат в качестве вспомогательных средств при разработке новых или более совершенных систем, в то время как в социальных науках модели объясняют существующие системы. Модель, пригодная для целей разработки системы, должна также и объяснять ее, но очевидно, что модели, создаваемые исключительно для объяснения, часто не соответствуют даже своему прямому назначению. Классификация моделей
Модели вообще и имитационные модели в частности можно классифицировать различными способами. К сожалению, ни один из них не является полностью удовлетворительным, хотя каждый служит определенной цели. Укажем некоторые типовые группы моделей, которые могут быть положены в основу системы классификации: - статические (например, поперечный разрез объекта) и динамические (временные ряды); - детерминистские и стохастические; - дискретные и непрерывные; - натурные, аналоговые, символические.
Удобно представлять себе имитационные модели в виде непрерывного спектра, простирающегося от точных моделей или макетов реальных объектов до совершенно абстрактных математических моделей. Физи ческие модели Масштабированные модели Анало говые модели Управленческие игры Моделирование на ЭВМ Матема тические модели Точность Абстрактность
Модели, находящиеся в начале спектра, часто называются физическимиили натурными, потому что они внешне напоминают изучаемую систему. Для удобства экспериментатора физическая модель может бытьмасштабирована - подвергнута уменьшению или увеличению, Аналоговыми моделями являются модели, в которых свойство реального объекта представляется некоторым другим свойством аналогичного по поведению объекта. Задача иногда решается путем замены одного свойства другим, после чего полученные результаты надо истолковывать применительно к исходным свойствам объекта. Аналоговая ЭВМ, в которой изменение напряжения в электрической схеме определенной конфигурации может отображать поток товарок к некоторой системе, является превосходным примером аналоговой имитационной модели. График представляет собой аналоговую модель другого типа; здесь расстояние отображает такие характеристики объекта как время, срок службы, количество единиц и т. д. График может также показывать соотношение между различными количественными характеристиками и может предсказывать, как будут изменяться некоторые величины при изменении других величин. Для некоторых относительно простых случаев график может служить средством решения поставленной задачи. Часто применяются также аналоговые модели в виде схем, описывающих взаимосвязи между элементами объекта.
По мере нашего продвижения по спектру моделей мы достигнем тех из них, где во взаимодействие вступают люди и машинные компоненты. Такое моделирование часто называют играми (управленческими, военными, планировочными). Поскольку процессы принятия решений управленческим звеном или командным составом армии моделировать трудно, часто считают целесообразным отказаться от подобной попытки. В так называемых управленческих (деловых) играх человек взаимодействует с информацией, поступающей с выхода вычислительной машины (которая моделирует другие свойства системы), и принимает решения на основе полученной информации. Решения человека затем снова вводятся и машину в качестве входной информации, которая используется системой. Продолжая этот процесс дальше, мы приходим к полностьюмашинномумоделированию, которое обычно и понимается под термином "моделирование". Вычислительная машина может быть компонентом всех имитационных моделей рассмотренной части спектра, хотя это и не обязательно.
К символическим, или математическим, моделям относятся те, в которых для представления процесса или системы используются символы, а не физические устройства. Обычным примером представления систем в этом случае можно считать системы дифференциальных уравнений. Поскольку они представляют собой наиболее абстрактные и, следовательно, наиболее общие модели, математические модели находят широкое применение в системных исследованиях. Однако применение математических моделей таит в себе весьма реальные опасности и ловушки. Символическая модель является всегда абстрактной идеализацией задачи, и, если хотят, чтобы эта модель позволяла решить задачу, необходимы некоторые упрощающие предположения. Поэтому особое внимание должно быть обращено на то, чтобы модель служила действительным представлением данной задачи.
При моделировании сложной системы исследователь обычно вынужден использовать совокупность нескольких моделей. Любая система или подсистема может быть представлена различными способами, которые значительно отличаются друг от друга по сложности и детализации. В большинстве случаев в результате системных исследований появляются несколько различных моделей одной и той же системы. Но обычно по мере того, как исследователь глубже анализирует и лучше понимает проблему, простые модели заменяются все более сложными. Достоинства и недостатки имитационного моделирования
Все имитационные модели представляют собой модели типа так называемого "черного ящика". Это означает, что они обеспечивают выдачу выходного сигнала системы, если на ее взаимодействующие подсистемы поступает входной сигнал. Поэтому для получения необходимой информации или результатов необходимо осуществлять "прогон" имитационных моделей, а не "решать" их. Имитационные модели не способны формировать свое собственное решение в том виде, в каком это имеет место в аналитических моделях, а могут лишь служить в качестве средства для анализа поведения системы в условиях, которые определяются экспериментатором. Следовательно, имитационное моделирование - не теория, а методологиярешения проблем. Более того, имитационное моделирование является только одним из нескольких имеющихся в распоряжении системного аналитика важнейших методов решения проблем. Поскольку необходимо приспосабливать средство или метод к решению задачи, а не наоборот, то возникает естественный вопрос: в каких случаях имитационное моделирование полезно?
Мы определили имитационное моделирование как экспериментирование с моделью реальной системы. Необходимость решения задачи путем экспериментирования становится очевидной, когда возникает потребность получить о системе специфическую информацию, которую нельзя найти в известных источниках. Непосредственное экспериментирование на реальной системе устраняет много затруднений, если необходимо обеспечить соответствие между моделью и реальными условиями; однако недостатки такого экспериментирования иногда весьма значительны, поскольку:
1. Оно может нарушить установленный порядок работы объекта. 2. Если составной частью системы являются люди, то на результаты экспериментов может повлиять так называемый хауторнский эффект, проявляющийся в том, что люди, чувствуя, что за ними наблюдают, могут изменить свое поведение. 3. Может оказаться сложным поддержание одних и тех рабочих. условий при каждом повторении эксперимента или в течение всего времени проведения серии экспериментов.
4. Для получения одной и той же величины выборки (и, следовательно, статистической значимости результатов экспериментирования) могут потребоваться чрезмерные затраты времени и средств . 5. При экспериментировании с реальными системами может оказаться невозможным исследование множества альтернативных вариантов. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N 13 ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
По этим причинам исследователь должен рассмотреть целесообразность применения имитационного моделирования при наличии любого из следующих условий: 1. Не существует законченной математической постановки данной задачи, либо еще не разработаны аналитические методы решения сформулированной математической модели. К этой категории относятся многие модели массового обслуживания, связанные с рассмотрением очередей. 2. Аналитические методы имеются, но математические процедуры столь сложны и трудоемки, что имитационное моделирование даст более простой способ решения задачи. 3. Аналитические решения существуют, но их реализация невозможна вследствие недостаточной математической подготовки имеющегося персонала. В этом случае следует сопоставить затраты на проектирование, испытания и работу на имитационной модели с затратами, связанными с приглашением специалистов со стороны. 4. Кроме оценки определенных параметров, желательно осуществить на имитационной модели наблюдение за ходом процесса в течение определенного периода. 5. Имитационное моделирование может оказаться единственной возможностью вследствие трудностей постановки экспериментов и наблюдения явлений в реальных условиях; соответствующим примером может служить изучение поведения космических кораблей в условиях межпланетных полетов.
6. Для долговременно действующих систем или процессов может понадобиться сжатие временной шкалы. Имитационное моделирование дает возможность полностью контролировать время изучаемого процесса, поскольку явление может быть замедлено или ускоренно по желанию. Дополнительным преимуществом имитационного моделирования можно считать широчайшие возможности его применения в сфере образования и профессиональной подготовки. Разработка и использование имитационной модели позволяют экспериментатору видеть и "разыгры
вать" на модели реальные процессы и ситуации. Это в свою очередь. должно в значительной мере помочь ему понять и прочувствовать проблему, что стимулирует процесс поиска нововведений.
Когда руководитель достигает подлинного понимания проблемы и начинает свободно управлять своей моделью, он обретает способность видеть содержание своей работы с иных точек зрения. Он захочет проверить на модели множество альтернативных вариантов, чтобы оценить открывшиеся ему новые возможности По сути дола он использует модель для повышения своего мастерства управления, позволяющего ему на новом уровне четко установить все существенные последствия вносимых в систему изменений. Возможно, он мог бы проделать это и на реальной системе, но вследствие ее сложности это было бы очень утомительно и сопряжено с ошибками. Вот почему он обращается к модели как ксредству оценки своих новых интуитивных предположений и умозаключений. Идея имитационного моделирования интуитивно привлекательна и для руководителей, и для исследователей систем благодаря своей простоте. Поэтому метод имитационного моделирования стремятся применять для решения каждой задачи, с которой приходится сталкиваться. И хотя людям с высокой математической подготовкой имитационный подход представляется грубым силовым приемом или последним средством, к которому следует прибегать, факт заключается в том, что этот метод является распространенным инструментом в руках ученых. Несмотря на недостаточное математическое изящество, имитационное моделирование является одним из наиболее широко распространенных количественных методов, используемых при решении проблем управления. Большинство администраторов и исследователей заинтересованы главным образом в решении своих неотложных задач, руководствуясь девизом "цель оправдывает средства! ". Но именно . забота о применимости конечных результатов побуждает нас задаться вопросом: можно ли вообще опираясь на имитационное моделирование, получить результаты также и наиболее эффективным способом? Ответ нередко будет отрицательным по следующим причинам:
1. Разработка хорошей имитационной модели часто обходится дорого и требует много времени, а также наличия высокоодаренных специалистов, которых а данной фирме может и не оказаться.
2. Может показаться, что имитационная модель отражает реальное положение вещей, хотя в действительности это не так. Если этого не учитывать, то некоторые свойственные имитации особенности могут привести к неверному решению. 3. Имитационная модель в принципе не точна, и мы не в состоянии измерить степень этой неточности. Это затруднение может быть преодолено лишь частично путем анализа чувствительности модели к изменению определенных параметров.
4. Результаты, которые дает имитационная модель, обычно являются численными, а их точность определяется количеством знаков после запятой, выбираемым экспериментатором. В связи с этим возникает опасность "обожествления чисел", т. е. приписывания им большей значимости, чем они на самом деле имеют.
Приведенные соображения показывают, что, хотя имитационное моделирование является чрезвычайно ценным и полезным методом решения сложных задач, этот метод, конечно, не панацея для решения всех проблем управления. Разработка и применение имитационных моделей все еще в большей степени искусство, нежели наука. Следовательно, как и в других видах искусства, успех или неудача определяется не столько методом, сколько тем, как он применяется. СТРУКТУРА ИМИТАЦИОННЫХ МОДЕЛЕЙ
Прежде чем начать разработку модели, необходимо понять, что собой представляют структурные элементы, из которых она строится. Хотя математическая или физическая структура модели может быть очень сложной, основы ее построения весьма просты. В общем случае структуру модели мы можем представить в виде E = f(xi, yj),
где E - результат действия системы: xi - переменные и параметры, которыми мы можем управлять; yj - переменные и параметры, которыми мы управлять не можем; f - функциональная зависимость между хi и уj, которая определяет величину Е. Столь явное и чрезмерное упрощение полезно лишь тем, что оно показывает зависимость функционирования системы как от контролируемых нами, так и от неконтролируемых переменных. Почти каждая модель представляет собой, вообще говоря, некоторую комбинацию таких составляющих, как - структурные компоненты, - переменные, - параметры, - функциональные зависимости, - ограничения, - целевые функции.
Под компонентамимы понимаем составные части, которые при соответствующем объединении образуют систему. Иногда мы считаем компонентами также элементы системы или ее подсистемы. Система определяется как группа или совокупность объектов, объединенных некоторой формой регулярного взаимодействия или взаимозависимости для выполнения заданной функции. Компоненты суть объекты, образующие изучаемую систему. Параметры суть величины, которые оператор, работающий на модели, может выбирать произвольно, в отличие от переменных, которые могут принимать только значения, определяемые видом данной функции. Смотря на это под другим углом зрения, мы можем сказать, что параметры, после того как они установлены, являются постоянными величинами, не подлежащими изменению. Например, в уравнении y=3x число 3 есть параметр.
В модели системы мы различаем переменные двух видов - экзогенные и эндогенные. Экзогенные переменные называются также входными, это значит, что они порождаются вне системы или являются результатом воздействия внешних причин. Эндогенными переменными называются переменные, возникающие в системе или в результате воздействия внутренних причин. Эндогенные переменные подразделяются на переменные состояния (когда они характеризуют состояние или условия, имеющие место в системе) и выходные переменные (когда речь идет о выходах системы). Статистики иногда называют экзогенные переменные независимыми, а эндогенные - зависимыми. Функциональные зависимостиописывают поведение переменных и параметров в пределах компонента или выражают соотношения между компонентами системы. Эти соотношения, или операционные характеристики, по своей природе являются либо детерминистскими, либо стохастическими. Детерминистские соотношения- это тождества или определения, которые устанавливают зависимость между определенными переменными или параметрами в тех случаях, когда процесс на выходе системы однозначно определяется заданной информацией на входе. В отличие от этого стохастические соотношенияпредставляют собой такие зависимости, которые при заданной входной информации дают на выходе неопределенный результат. Оба типа соотношений обычно выражаются в форме математического уравнения, которое устанавливает зависимость между эндогенными переменными (переменными состояния) и экзогенными переменными. Обычно эти соотношения можно строить лишь на основе гипотез или выводить с помощью статистического или математического анализа. Ограничения представляют собой устанавливаемые пределы изменения значений переменных или ограничивающие условия распределения и расходования тех или иных средств (энергии, запасов, времени и т. п. ). Они могут вводиться либо разработчиком (искусственные ограничения), либо самой системой вследствие присущих ей свойств (естественные ограничения). Примерами искусственных ограничений могут быть заданные максимальный и минимальный уровни занятости рабочих или установленная максимальная сумма денежных средств, ассигнуемых на капиталовложения. В физической системе такого типа, как ракета, искусственным ограничением может быть заданный радиус действия или максимально допустимый вес. Большинство технических требований к системам представляет собой набор искусственных ограничений. Естественные ограничения обусловлены самой природой системы. Например, нельзя продать больше изделий, нем система может изготовить, и никто не может сконструировать систему, нарушающую законы природы. Таким образом, ограничения одного типа обусловлены неизменными законами природы, в то время как ограничения другого типа, будучи делом рук человеческих, могут подвергаться изменению. Исследователю весьма важно помнить об этом, потому что в ходе своих исследований он должен постоянно оценивать привнесенные человеком ограничения, с тем чтобы ослабить или усилить их по мере необходимости.
Целевая функция, или функция критерия, - это точное отображение целей или задач системы и необходимых правил оценки их выполнения. Обычно выделяют два типа целей: сохранение и приобретение. Цели сохранения связаны с сохранением или поддержанием каких-либо ресурсов (временных, энергетических, творческих и т. д. ) или состояний(комфорта, безопасности, уровня занятости н т. д. ). Цели приобретения связаны с приобретением новых ресурсов (прибыли, персонала, заказчиков и т. п. ) или достижением определенных состояний, к которым стремится организация или руководитель (захват части рынка и т. п. ). Выражение для целевой функции должно быть однозначным определением целей и задач, с которыми должны соразмеряться принимаемые решения.
Критерий- это мерило оценки, правило или вид проверки, при помощи которых составляется правильное суждение о чем-либо. Избранный критерий оказывает громадное влияние на процесс создания модели и манипулирования с ней. Неправильное определение критерия обычно ведет к неправильным заключениям. Функция критерия (целевая функция) обычно является органической составной частью модели, и весь процесс манипулирования с моделью направлен на оптимизацию или удовлетворение заданного критерия. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N 14 ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ АНАЛИЗ И СИНТЕЗ
Даже небольшие участки реального мира слишком сложны, чтобы человек смог их полностью понять и описать. Почти все проблемные ситуации чрезвычайно сложны и включают в себя почти бесконечное число элементов, переменных, параметров, соотношений, ограничений и т. д. Пытаясь построить модель, мы могли бы включить в нее бесконечное число фактов и потратить уйму времени, собирая мельчайшие факты, касающиеся любой ситуации, и устанавливая связи между ними. Рассмотрим, например, простое действие, состоящее в том, что вы берете лист бумаги и пишите на нем письмо. Ведь можно было бы определить точный химический состав бумаги, карандашного грифеля и резинки, влияние атмосферных условий на влажность бумаги и влияние последней на силу трения, действующую на острие карандаша, движущегося по бумаге; исследовать статистическое распределение букв во фразах текста и т. д. Однако если единственный аспект, который нас в данной ситуации интересует, это факт отправления письма, то ни одна из упомянутых подробностей не относится к делу. Следовательно, мы должны отбросить большую часть реальных характеристик изучаемого события и абстрагировать из реальной ситуации только те особенности, которые воссоздают идеализированный вариант реального события. Все модели суть упрощенные представления реального мира или абстракции. Если они выполнены корректно, то эти идеализации дают нам полезноё приближенное отображение реальной ситуации или по крайней мере ее определенных особенностей. Сходство модели с объектом, который она отображает, называется степенью изоморфизма. Для того чтобы быть изоморфной (т. е. идентичной или сходной по форме), модель должна удовлетворять двум условиям.
Во-первых, должно существовать взаимно однозначное соответствие между элементами модели и элементами представляемого объекта. Во-вторых, должны быть сохранены точные соотношения или взаимодействия между элементами. Степень изоморфизма модели относи тельна, и большинство моделей скорее гомоморфны, чем изоморфны. Под гомоморфизмом мы понимаем сходство по форме при различии ос новных структур, причем имеет место лишь поверхностное подобие между различными группами элементов модели и объекта. Гомоморфные модели являются результатом процессов упрощения и абстракции. Для разработки идеализированной гомоморфной модели мы обычно разбиваем систему на некоторое число более мелких частей. Это делается для того, чтобы должным образом интерпретировать их, т. е. произвести требуемый анализ задачи. Такой способ действий зависит от наличия частей или элементов, которые в первом приближении не зависят друг от друга или взаимодействуют между собой относительно простым образом. Так, мы можем проанализировать режим работы автомашины, проверяя последовательно двигатель, коробку передач, привод, систему подвески и т. д. , хотя эти узлы не полностью независимы.
С такого рода анализом при построении модели близко связан процесс упрощения реальной системы (под упрощением понимается пренебрежение несущественными деталями или принятие предположений о более простых соотношениях). Например, мы часто предполагаем, что между двумя переменными имеет место линейная зависимость, хотя можем подозревать или даже знать, что истинная зависимость между ними нелинейна. Мы предполагаем, что по крайней мере в ограниченном диапазоне значений переменных такое приближение будет удовлетворительным. Инженер-электрик работает с моделями цепей, предполагая, что резисторы, конденсаторы и т. д. не изменяют своих параметров; это упрощение, потому что мы знаем, что электрические характеристики этих компонентов изменяются а зависимости от температуры, влажности, срока службы и т. д.
Ученый, изучающий проблемы управления, для построения полезных моделей также прибегает к упрощению. Он предполагает, что его переменные либо детерминированы (чрезвычайно упрощенная трактовка реальности), либо подчиняются законам случайных событий, описываемым известными вероятностными функциями распределений, таких, как нормальное, пуассоновское, экспоненциальное и т. д. Он также зачастую предполагает, что зависимости между переменными носят
линейный характер, зная, что такое допущение не совсем правомерно. Другим аспектом анализа является абстракция - понятие, которое в отличие от упрощения не так легко объяснить и осмыслить. Абстракция содержит или сосредоточивает в себе существенные качества или черты поведения объекта, но не обязательно в той же форме и столь детально, как это имеет место в оригинале. Большинство моделей - это абстракции в том смысле, что они стремятся представить качества и поведение моделируемого объекта в форме или способом, отличающимся от их действительной реализации. Так, в схеме организации работ мы пытаемся в абстрактной форме отразить трудовые взаимоотношения между различными группами работающих или отдельными членами таких групп. То обстоятельство, что подобная схема только поверхностно отображает реальные взаимоотношения, не умаляет ее полезности для определенных целей. После того как мы проанализировали и промоделировали части или элементы системы, мы приступаем к их объединению в единое целое. Иными словами, мы можем путем синтезаотносительно простых частей сконструировать некоторое приближение к сложной реальной ситуации. Здесь важно предусмотреть два момента. Во-первых, используемые для синтеза части должны быть выбраны корректно, и, во-вторых, должно быть корректно предсказано их взаимодействие. Если все это выполнено должным образом, то эти процессы анализа, абстракции, упрощения и синтеза в итоге приведут к созданию модели, которая аппроксимирует поведение изучаемой реальной системы. Необходимо помнить, однако, что модель является только приближением, а поэтому не будет себя вести в точности как реальный объект. Мы оптимизируем модель, но не реальную систему. Вопрос о том, существует ли действительно взаимосвязь между характеристиками нашей модели и реальностью, зависит от того, насколько правильно и разумно мы провели наши процессы анализа, абстракции, упрощения и синтеза. ИСКУССТВО МОДЕЛИРОВАНИЯ
Процесс, при помощи которого инженер, занимающийся системами, или ученый, исследующий вопросы управления, создает модель изучаемой им системы, может быть лучше всего определен как интуитивное искусство. Любой набор правил для разработки моделей в лучшем случае имеет ограниченную полезность и может служить лишь предположительно в качестве каркаса будущей модели или отправного пункта в ее построении. При попытке выразить процесс моделирования в точных терминах мы стремимся систематизировать знания, основанные на интуиции и опыте тех, кто ранее занимался моделированием. К сожалению, результаты всех научных исследований излагаются и сообщаются нам в форме логической реконструкции событий, имеющей целью оправдать смысл полученных результатов. Эта логическая реконструкция имеет мало общего со способом, при помощи которого исследования проводились в действительности. Ни в одном научном отчете вы не найдете описаний фальстартов, ошибочных предположений, принятых и затем отвергнутых, разочарований, вызванных ошибками, и внезапных озарений. В таких отчетах или статьях приводится только последовательность событий и объяснение того, как бы теперь поступил исследователь, пользуясь своими ретроспективными знаниями и знанием конечного результата. Конечно, для неопытного разработчика моделей опасность заключается в том, что, не находя в литературе ничего, за исключением логически построенных ретроспективных описаний, он принимает их за описание процесса открытия. Затем, когда он видит, что дела идут вовсе не так, как говорится в книгах, он легко теряет уверенность в себе, и его охватывает разочарование. Опытный разработчик моделей знает, что мыслительные процессы, связанные с разработкой модели, значительно отличаются от того, что написано об этом в учебниках и литературе.
По-видимому, основой успешной методики моделирования должна быть тщательная отработка моделей. Обычно, начав с очень простой модели, постепенно продвигаются к более совершенной ее форме, отражающей сложную ситуацию более точно. Аналогии и ассоциации с хорошо построенными структурами, по-видимому, играют важную роль в определении отправной точки процесса совершенствования и отработки деталей. Этот процесс связан с учетом взаимодействия и об ратной связи между реальной ситуацией и моделью. Между процессом модификации модели и процессом обработки данных, генерируемых реальным объектом, имеет место непрерывное взаимодействие. По мере проведения испытаний и оценки каждого варианта модели возникает новый вариант, который приводит к повторным испытаниям и переоценкам.
До тех пор пока модель поддается математическому описанию, аналитик может добиваться все больших ее улучшений или усложнять исходные предположения. Когда же модель становится "непослушной", т. е. неразрешимой, разработчик прибегает к ее упрощению и использованию более глубокой абстракции.
Таким образом, искусство моделирования состоит в способности анализировать проблему, выделять из нее путем абстракции ее существенные черты, выбирать и должным образом модифицировать основные предположения, характеризующие систему, а затем отрабатывать и совершенствовать модель до тех пор, пока она не станет давать полезные для практики результаты. Разработчику модели надлежит: - разложить общую задачу исследования системы на ряд более простых задач, - четко сформулировать цели, - подыскать аналогии,
- рассмотреть специальный численный пример, соответствующий данной задаче, - выбрать определенные обозначения, - записать очевидные соотношения,
- если полученная модель поддается математическому описанию, расширить ее. В противном случае упростить.
Вообще говоря, упростить модель можно, выполнив одну из перечисленных ниже операций (в то время как для расширения модели требуется как раз обратное): - превратить переменные величины в константы; - исключить некоторые переменные или объединить их;
- предположить линейную зависимость между исследуемыми величинами; - ввести более жесткие предположении и ограничения; - наложить на систему более жесткие граничные условия.
Эволюционный характер процесса конструирования модели неизбежен и желателен, поэтому мы не должны думать, что этот процесс сводится к построению одного-единственного базового варианта модели. По мере того как достигаются цели и решаются поставленные задачи, ставятся новые задачи либо возникает необходимость достижения большего соответствия между моделью и реальным объектом, что приводит к пересмотру модели и все лучшим ее реализациям. Этот процесс, при котором начинают с построения простой модели, а затем усложняют и отрабатывают ее, имеет ряд преимуществ с точки зрения успешного завершения разработки модели. Темп и направление эволюционного изменения модели зависят от двух главных факторов. Первый из них - это, очевидно, присущая модели гибкость, и второй - взаимоотношения между создателем модели и ее пользователем. При их тесном сотрудничестве в течение всего процесса эволюции модели ее разработчик и пользователь могут создать атмосферу взаимного доверия и взаимоотношения, которые будут способствовать получению конечных результатов, удовлетворяющих поставленным целям, задачам и критериям.
Искусством моделирования могут овладеть те, кто обладает оригинальным мышлением, изобретательностью и находчивостью, равно как и глубокими знаниями систем и физических явлений, которые необходимо моделировать. Не существует твердых и эффективных правил относительно того, как надо формулировать задачу в самом начале процесса моделирования, т. е. сразу же после первого знакомства с ней. Не существует и магических формул для решения при построении модели таких вопросов, как выбор переменных и параметров, соотношений, описывающих поведение системы, и ограничений, а также критериев оценки эффективности модели. Помните, чтоникто не решает задачу в чистом виде, каждый оперирует с моделью, которую он построил, исходя из поставленной задачи. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N 15 ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ТРЕБОВАНИЯ К "ХОРОШЕЙ" МОДЕЛИ
Мы определили имитацию как процесс создания модели реальной системы и проведения с этой моделью экспериментов с целью осмысления поведения системы или оценки различных стратегий, которые могут использоваться при управлении системой. Это определение подсказывает ряд существенных черт, которыми должна обладать хорошая имитационная модель, и устанавливает границы ее использования. Согласно этому определению, модель должна быть - связана с функционированием системы; - ориентирована на решение проблем реального мира;
- построена так, чтобы служить подспорьем тем, кто управляет системами. Имитация тесно связана с функционированием системы. Система есть группа или совокупность объектов, объединенных какой-либо формой регулярного взаимодействия или взаимозависимости с целью выполнения определенной функции.
Примерами систем могут быть: система оружия, промышленное предприятие, организация, транспортная сеть, больница, проект застройки города, человек и машина, которой он управляет. Функционирование системы представляет собой совокупность координированных действий, необходимых для выполнения определенной задачи. С этой точки зрения системам, которыми мы интересуемся, свойственна целенаправленность. Это обстоятельство требует от нас при моделировании системы обратить самое пристальное внимание на цели или задачи, которые должна решать данная система. Мы должны постоянно помнить о задачах системы и модели, чтобы достичь необходимого соответствия между ними. Поскольку имитация связана с решением реальных задач, мы должны быть уверены, что конечные результаты точно отражают истинное положение вещей. Следовательно, модель, которая может нам дать абсурдные результаты, должна быть немедленно взята под подозрение. Любая модель должна быть оценена по максимальным пределам изменений величины ее параметров и переменных. Модель также должна быть способна отвечать на вопросы типа "а что, если.... ", поскольку это именно те вопросы, которые для нас наиболее полез
ны, так как они способствуют более глубокому пониманию проблемы и поиску лучших способов оценки наших возможных действий.
Наконец, всегда следует помнить о потребителе информации, которую позволяет получить наша модель. Нельзя оправдать разработку имитационной модели, если ее в конечном счете нельзя использовать или если она не приносит пользу лицу, принимающему решения. Потребителем результатов может быть лицо, ответственное за создание системы или за ее функционирование; другими словами, всегда должен существовать пользователь модели - в противном случае мы попусту потратим время и силы. Поиски знания ради самого знания - дело весьма благородное, но мало найдется руководителей, которые будут в течение продолжительного времени оказывать поддержку группам ученых, занятых исследованием операций, теорией управления или системным анализом, если результаты их работы не смогут найти практического применения.
Приняв во внимание все это, мы можем сформулировать конкретные критерии, которым должна удовлетворять хорошая модель. Такая модель должна быть: - простой и понятной пользователю, - целенаправленной, - надежной в смысле гарантии от абсурдных ответов,
- удобной в управлении и обращении, т. е. общение с ней должно быть легким, - полной с точки зрения возможностей решения главных задач, - адаптивной, позволяющей легко переходить к другим модификациям или обновлять данные, - допускающей постепенные изменения в том смысле, что, будучи вначале простой, она может во взаимодействии с пользователем становиться все более сложной.
Необходимость большинства этих критериев совершенно очевидна, но они будут рассмотрены более полно в последующих главах, посвященных вопросам организации и руководства работами по моделированию. Здесь же достаточно сказать следующее: для того чтобы моделью можно было пользоваться, при ее разработке должны быть тщательно продуманы и потребности, и психология ее конечного потребителя. Имитационное моделирование должно быть процессом обучения - как для создателя модели, так и для ее пользователя. И действительно, это может стать самой привлекательной стороной имитации при применении ее для решения сложных задач. ПРОЦЕСС ИМИТАЦИИ
Исходя из того что имитация должна применяться для исследования реальных систем, можно выделить следующие этапы этого процесса: 1. Определение системы - установление границ, ограничений и измерителей эффективности системы, подлежащей изучению.
2. Формулирование модели - переход от реальной системы к некоторой логической схеме (абстрагирование). 3. Подготовка данных-отбор данных, необходимых для построения модели, и представление их в соответствующей форме. 4. Трансляция модели-описание модели на языке, приемлемом для используемой ЭВМ. 5. Оценка адекватности - повышение до приемлемого уровня степени уверенности, с которой можно судить относительно корректности выводов о реальной системе, полученных на основании обращения к модели. 6. Стратегическое планирование - планирование эксперимента, который должен дать необходимую информацию.
7. Тактическое планирование - определение способа проведения каждой серии испытаний, предусмотренных планом эксперимента.
8. Экспериментирование - процесс осуществления имитации с целью получения желаемых данных и анализа чувствительности.
9. Интерпретация - построение выводов по данным, полученным путем имитации. 10. Реализация - практическое использование модели и результатов моделирования. 11. Документирование-регистрация хода осуществления проекта и его результатов, а также документирование процесса создания и использования модели. Перечисленные этапы создания и использования модели определены в предположении, что задача может быть решена наилучшим образом с помощью имитационного моделирования. Однако, как мы уже отмечали, это может быть и не самый эффективный способ. Неоднократно указывалось, что имитация представляет собой крайнее средство или грубый силовой прием, применяемый для решения задачи. Несомненно, что в том случае, когда задача может быть сведена к простой модели и решена аналитически, нет никакой нужды в имитации. Следует изыскивать все возможные средства, подходящие для решения данной конкретной задачи, стремясь при этом к оптимальному сочетанию стоимости и желаемых результатов. Прежде чем приступать к оценке возможностей имитации, следует самому убедиться, что простая аналитическая модель для данного случая не пригодна.
Поскольку необходимо и желательно подобрать для решения задачи соответствующие средства, решение о выборе того или иного средства или метода должно следовать за формулированием задачи. Решение об использовании имитации не должно рассматриваться как окончательное. По мере накопления информации и углубления понимания задачи вопрос о правомерности применения имитации следует подвергать переоценке. Поскольку для этого часто требуются мощные ЭВМ и большие выборки данных, издержки, связанные с имитацией, почти всегда высоки по сравнению с расходами, необходимыми для решения задачи на небольшой аналитической модели. Во всех случаях следует сопоставлять возможные затраты средств и времени, потребные для имитации, с ценностью информации, которую мы ожидаем получить. Проектирование модели начинается обычно с того, что какойлибо сотрудник организации приходит к выводу о возникновении проблемы, которая нуждается в изучении. Для проведения предварительных исследований выделяется соответствующий работник (обычно из группы, связанной с данной проблемой). На некотором этапе признается, что для изучения проблемы могут быть полезны количественные методы исследования, и тогда на сцене появляется математик. Так начинается этап определения и постановки задачи. ПОСТАНОВКА ЗАДАЧИ И ОПРЕДЕЛЕНИЕ ТИПА МОДЕЛИ
Эйнштейн как-то сказал, что правильная постановка задачи даже более важна, чем ее решение. Для того чтобы найти приемлемое или оптимальное решение задачи, необходимо сначала знать, в чем она состоит. Как это ни покажется странным, слишком много ученых, занимающихся проблемами управления, полностью игнорируют очевидные факты. Ежегодно расходуются миллионы долларов, чтобы получить изящные и хитроумные ответы на некорректно поставленные вопросы.
В отличие от примеров, приводимых в учебниках, большинство практических задач сообщается руководителям научно-исследователь
ских подразделений в недостаточно четкой, неточной форме. Во многих случаях руководство не может или не способно правильно выразить суть своих проблем, 0но знает, что некая проблема существует, но не может точно сформулировать, какая это проблема. Поэтому анализ системы обычно начинается с поискового изучения системы под руководством ответственного лица, уполномоченного принимать решения. Исследовательская группа должна понимать и четко формулировать ряд подходящих к данному случаю задач и целей. Опыт показывает, что постановка задачи есть непрерывный процесс, пронизывающий весь ход исследования. Это исследование непрерывно порождает новую информацию, касающуюся ограничений, задач и возможных альтернативных вариантов. Такая информация должна периодически использоваться в целях обновления формулировки и постановки задачи. Важной частью постановки задачи является определение характеристик системы, подлежащей изучению. Все системы - это подсистемы других более крупных систем. Поэтому мы должны определить цели и ограничения, которые нам надлежит учитывать в процессе абстрагирования или построения формальной модели. Любая проблема может быть определена как состояние неудовлетворенной потребности. Ситуация становится проблемной, когда действие какой-либо системы не дает желаемых результатов.
Если желаемые результаты не достигаются, возникает потребность модифицировать систему или окружающие условия, в которых она функционирует. Математически мы можем определить проблему следующим образом: Pt = | Dt-At | ,
где Pt - состояние проблемы в момент времени t, Dt - желаемое состояние в момент времени t, At - действительное состояние в момент времени t. Поэтому первый шаг в определении характеристик системы, подлежащей изучению, состоит в проведении анализа потребностей той среды, для которой предназначается система. Этот анализ начинается с определения целей и граничных условий (т. е. того, что является, а что не является частью системы, подлежащей изучению). Нас интересуют здесь две функциональные границы, или два интерфейса: граница, отделяющая нашу проблему от всего остального мира, и граница между системой и окружающей средой (т. е. что мы считаем
составной частью системы и что составляет среду, в которой эта система работает). Мы можем описать, что происходит в пределах самой системы, разными способами. Если бы мы не остановились на каком-то наборе элементов и взаимосвязей, которые надлежит изучить, имея в виду вполне определенную цель, перед нами было бы бесконечное число связей и сочетаний.
Очертив цели и задачи исследования и определив границы системы, мы далее сводим реальную систему к логической блоксхеме или к статической модели. Мы хотим построить такую модель реальной системы, которая, с одной стороны, не будет столь упрощена, что станет тривиальной, а с другой - не будет столь детализирована, что станет громоздкой в обращении и чрезмерно дорогой. Опасность, которая подстерегает нас при построении логической блок-схемы реально действующей системы, заключается в том, что модель имеет тенденцию обрастать деталями и элементами, которые порой ничего не вносят в понимание данной задачи.
Поэтому почти всегда наблюдается тенденция имитировать избыточное число деталей. Во избежание такого положения следует строить модель, ориентированную на решение вопросов, на которые требуется найти ответы, а не имитировать реальную систему во всех подробностях. Закон Парето гласит, что в каждой группе или совокупности существует жизненно важное меньшинство и тривиальное большинство. Ничего действительно важного не происходит, пока не затронуто жизненно важное меньшинство. Системные аналитики слишком часто стремились перенести все усугубленные деталями сложности реальных ситуаций в модель, надеясь, что ЭВМ решит их проблемы. Такой подход неудовлетворителен не только потому, что возрастают трудности программирования модели и стоимость удлиняющихся экспериментальных прогонов, но и потому, что действительно важные аспекты и взаимосвязи могут потонуть в массе тривиальных деталей. Вот почему модель должна отображать только те аспекты системы, которые соответствуют задачам исследования.
Во многих исследованиях моделирование может на этом закончиться. В удивительно большом числе случаев в результате точного и последовательного описания ситуаций становятся очевидными дефекты и "узкие" места системы, так что необходимость продолжать исследования с помощью имитационных методов отпадает. ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ ЛЕКЦИЯ N 16 ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ФОРМУЛИРОВАНИЕ МОДЕЛИ
Каждое исследование охватывает и сбор данных, под которым обычно понимают получение каких-то "численных" характеристик. Но это только одна сторона сбора данных. Системного аналитика должны интересовать входные и выходные данные изучаемой системы, а также информация о различных компонентах системы, взаимозависимостях и соотношениях между ними. Поэтому он заинтересован в "сборе как количественных, так и качественных данных; он должен решить, какие из них необходимы, насколько они соответствуют поставленной задаче и как собрать всю эту информацию. Учебники обычно сообщают студенту нужную для решения задачи информацию без ссылок на то, как она была собрана и оценена. Но когда такой студент впервые сталкивается с реальной задачей и при этом сам должен определить, какие данные ему нужны и как их отобрать, то голова у него идет кругом.
Создавая стохастическую имитационную модель, всегда приходится решать, следует ли в модели использовать имеющиеся эмпирические данные непосредственно или целесообразно использовать теоретико-вероятностные или частотные распределения. Этот выбор имеет фундаментальное значение по трем причинам. Во-первых, использование необработанных эмпирических данных означает, что, как бы вы ни старались, вы можете имитировать только прошлое. Использование данных за один год отобразит работу системы за этот год и не обязательно скажет нам что-либо об ожидаемых особенностях работы системы в будущем. При этом возможными будут считаться только те события, которые уже происходили. Одно дело предполагать, что данное распределение в своей основной форме будет неизменным во времени, и совсем иное дело считать, что характерные особенности данного года будут всегда повторяться. Во-вторых, в общем случае применение теоретических частотных или вероятностных распределений с учетом требований к машинному времени и памяти более эффективно, чем использование табличных данных для получения случайных вариационных рядов, необходимых в работе с моделью. В-третьих, крайне желательно и даже, пожалуй, обязательно, чтобы аналитик-разработчик модели определил ее чувствительность к изменению вида используемых вероятностных распределений и значений параметров. Иными словами, крайне важны испытания модели на чувствительность конечных результатов к изменению исходных данных. Таким образом, решения относительно пригодности данных для использования, их достоверности, формы представления, степени соответствия теоретическим распределениям и прошлым результатам функционирования системы - все это в сильной степени влияет на успех эксперимента по имитационному моделированию и не является плодом чисто теоретических умозаключений.
В конечном счете перед разработчиком модели возникает проблема ее описания на языке, приемлемом для используемой ЭВМ. Быстрый переход к машинному моделированию привел к развитию большого числа специализированных языков программирования, предназначенных для этой цели. На практике, однако, каждый из большинства предложенных языков ориентирован только на ограниченный набор машин. Имитационные модели обычно имеют очень сложную логическую структуру, характеризующуюся множеством взаимосвязей между элементами системы, причем многие из этих взаимосвязей претерпевают в ходе выполнения программы динамические изменения. Эта ситуация побудила исследователей разработать языки программирования для облегчения проблемы трансляции. Поэтому языки имитационного моделирования типа GPSS, Симскрипт, Симула, Динамо и им подобные являются языками более высокого уровня, чем универсальные языки типа Фортран, Алгол и Бейсик. Требуемая модель может быть описана с помощью любого универсального языка, тем не менее какойлибо из специальных языков имитационного моделирования Может обладать теми или иными преимуществами при определенных характеристиках модели.
Основные отличия языков имитационного моделирования друг от Друга определяются: 1) способом организации учета времени и происходящих действий; 2) правилами присвоения имен структурным элементам; 3) способом проверки условий, при которых реализуются действия; 4) видом статистических испытаний, которые возможны при наличии данных, и 5) степенью трудности изменения структуры модели.
Хотя некоторые из специальных языков имитационного моделирования обладают очень нужными и полезными свойствами, выбор того или иного языка, как это ни печально, чаще всего определяется типом имеющейся машины и теми языками, которые известны исследователю. И если существует выбор, то правильность его, по-видимому, зависит от того, в какой степени исследователь владеет методами имитационного моделирования. В некоторых случаях простой язык, который легко понять и изучить, может оказаться более ценным, чем любой из более языков, пользоваться которым труднее вследствие присущих ему особенностей. ПРОВЕРКА МОДЕЛИ
Проверка модели представляет собой процесс, в ходе которого достигается приемлемый уровень уверенности пользователя в том, что любой вывод о поведении системы, сделанный на основе моделирования, будет правильным. Невозможно доказать, что та или иная имитация является правильным или отображением реальной системы. К счастью, нас редко занимает проблема доказательства модели. Вместо этого нас интересует главным образом справедливость тех более глубоких умозаключений, к которым мы пришли или к которым придем на основании имитационного моделирования. Таким образом, нас волнует обычно не справедливость самой структуры модели, а ее функциональная полезность. Проверка модели-этап чрезвычайно важный, поскольку имитационные модели вызывают впечатление реальности, и как разработчики моделей, так и их пользователи легко проникаются к ним доверием. К сожалению, для случайного наблюдателя, а иногда и для специалиста, искушенного в вопросах моделирования, бывают скрыты исходные предположения, на основе которых строилась данная модель. Поэтому проверка, выполненная без. должной тщательности, может привести к катастрофическим последствиям. Такого процесса, как правильности модели, не существует. Вместо этого экспериментатор в ходе разработки должен провести серию проверок, с тем чтобы укрепить свое доверие к модели. Для этого могут быть использованы проверки трех видов. Применяя первую из них, мы должны убедиться, что модель верна, так сказать, в первом приближении. Например, следует поставить такой вопрос: не будет ли модель давать абсурдные ответы, если ее параметры будут принимать предельные значения? Мы должны также убедиться в том, что результаты, которые мы получаем, по-видимому, имеют смысл. Последнее может быть выполнено для моделей существующих систем методом, предложенным Тьюрингом. Он состоит в том, что людей, непосредственно связанных с работой реальной системы, просят сравнить результаты, полученные имитирующим устройством, с данными, получаемыми на выходе реальной системы. Для того чтобы такая проверка была несколько более строгой в научном отношении, мы можем предложить экспертам указать на различия между несколькими выборками имитированных данных и аналогичными выборками, полученными в реальной системе. Второй метод оценки адекватности модели состоит в проверке исходных предположений, и третий - в проверке преобразований информации от входа к выходу. Последние два метода могут привести к необходимости использовать статистические выборки для оценки средних значений и дисперсий, дисперсионный анализ, регрессионный анализ, факторный анализ, спектральный анализ, автокорреляцию, метод проверки с помощью критерия и непараметрические проверки. Поскольку каждый из этих статистических методов основан на некоторых допущениях, то при использовании каждого из них возникают вопросы, связанные с оценкой адекватности. Некоторые статистические испытания требуют меньшего количества допущений, чем другие, но в общем эффективность проверки убывает по мере того, как исходные ограничения ослабляются. Способы оценки имитационной модели делят на три категории: 1) верификацию, используя которую экспериментатор хочет убедиться, что модель ведет себя так, как было задумано; 2) оценку адекватности - проверку соответствия между поведением модели и поведением реальной системы и 3) проблемный анализ-формулирование статистически значимых выводов на основе данных, полученных путем машинного моделирования. Для осуществления этой оценки часто бывает необходимо предпринять целый ряд действий, начиная от поэтапного испытания модели на настольном калькуляторе (это делается перед компоновкой машинной программы из этих этапов) до проведения полевых испытаний. Как бы то ни было, сами эти испытания связаны с трудностями, присущими эмпирическому исследованию; к числу таких трудностей относятся следующие ситуации: 1) высокая стоимость получения данных вынуждает пользоваться небольшими выборками; 2) данные чрезмерно разделены На различные группы и 3) используются данные, достоверность которых сомнительна. Таким образом, вопрос оценки адекватности модели имеет две стороны: приобретение уверенности в том, что модель ведет себя таким же образом, как и реальная система; установление того, что выводы, полученные из экспериментов с моделью, справедливы и корректны. Оба эти момента в совокупности сводятся к обычной задаче нахождения равновесия между стоимостью каждого действия, связанного с оценкой адекватности модели, ценностью получаемой все в больших количествах информации и последствиями ошибочных заключений. СТРАТЕГИЧЕСКОЕ И ТАКТИЧЕСКОЕ ПЛАНИРОВАНИЕ
Мы определили имитационное моделирование как экспериментирование с помощью модели с целью получения информации о реально действующей системе. Отсюда следует, что мы должны позаботиться о стратегическом планировании, т. е. о том, как планировать эксперимент, который дает желаемую информацию. Планирование экспериментов широко применяется в биологических и физических науках, а теперь и в моделировании систем. Цель использования планируемых экспериментов двоякая: 1) они обеспечивают экономию с точки зрения уменьшения числа требуемых экспериментальных проверок и 2) они задают структурную основу обучения самого исследователя.
Цель любого экспериментального исследования, включая моделирование, заключается в том, чтобы больше узнать об изучаемой системе. Эксперимент представляет собой процесс наблюдения и анализа, который "позволяет получить информацию, необходимую для принятия решений. План эксперимента дает возможность выбрать метод сбора исходной информации, содержащей необходимые сведения о явлении или системе, которые позволяют сделать важные выводы о поведении изучаемого объекта. В экспериментальном исследовании можно выделить два типа задач: 1) определение сочетания параметров, которое оптимизирует переменную отклика, и 2) объяснение соотношения между переменной отклика и контролируемыми в системе факторами. Для обеих этих задач разработано и доступно для использования множество планов постановки экспериментов. Далее, чтобы обучение было успешным, требуется полное использование накопленных ранее знаний, что в свою очередь необходимо при выдвижении возможных гипотез, подлежащих проверке, и стратегий, подлежащих оценке. Хороший план эксперимента позволяет разработать стратегию сбора исходных данных, полезных для такого синтеза и выдвижения гипотез. Существующие в настоящее время методы планирования экспериментов и аналитические методы очень хорошо удовлетворяют нашим потребностям. Математические описания, сопутствующие планированию эксперимента, предоставляют нам много возможных альтернатив. Методы извлечения информации, содержащейся в планах эксперимента, хорошо описаны и обычно легко осуществимы. Таким образом, планирование эксперимента может в значительной мере облегчить синтез новых сведений и выдвижение новых идей и в. то же время уменьшить затраты времени, усилий и денежных средств.
Тактическое планирование, вообще говоря, связано с вопросами эффективности и определением способов проведения испытаний, намеченных планом эксперимента. Тактическое планирование прежде всего связано с решением задач двух типов: 1) определением начальных условий в той мере, в какой они влияют на достижение установившегося режима, и 2) возможно большим уменьшением дисперсии решений при одновременном сокращении необходимых размеров выборки.
Первая задача (т. е. определение начальных условий и их влияния на достижение установившегося режима) возникает вследствие искусственного характера функционирования модели. В отличие от реального объекта, который представлен моделью, сама имитационная модель работает эпизодически. Это значит, что экспериментатор запускает модель, делает свои наблюдения и ее до следующего прогона. Всякий раз, когда начинается прогон, модели требуется определенное . время для достижения условий равновесия, которые соответствуют условиям функционирования реальной системы. Таким образом, начальный период работы модели искажается из-за действия начальных условий запуска модели. Для решения задачи, вопервых, необходимо исключить из рассмотрения данные, относящиеся к некоторой части начального периода, и, вовторых, следует выбирать такие начальные условия, которые уменьшают время, необходимое для достижения установившегося режима. Разумно выбранные начальные условия могут уменьшить, но не полностью свести к нулю время переходного процесса. Поэтому дополнительно необходимо определить время начала измерений. Вторая задача тактического планирования связана с необходимостью оценить точность результатов эксперимента и степень надежности заключений или выводов. Это немедленно ставит нас лицом к лицу с такими вопросами, как изменяемость условий, размер выборки и повторяемость результатов. В любом эксперименте из ограниченного объема полученных данных мы стремимся извлечь как можно больше информации. Для уменьшения разброса характеристик было предложено несколько методов (в основном в связи с процедурами взятия выборок), которые могут существенно снизить требуемый размер выборки и число повторений эксперимента. Использование очень больших выборок может в конечном счете решить все тактические проблемы имитационного моделирования, но обычно ценой больших затрат машинного времени и времени, необходимого для последующего анализа результатов. Чем сложнее имитационная модель, тем более важен этап тактического планирования, выполняемого перед проведением экспериментов. ЭКСПЕРИМЕНТИРОВАНИЕ И АНАЛИЗ ЧУВСТВИТЕЛЬНОСТИ
После завершения этапов разработки и планирования мы наконец осуществляем прогон модели с целью получения желаемой информации. На этом этапе мы начинаем находить недостатки и просчеты в нашем планировании и повторяем наши усилия до тех пор, пока не достигнем первоначально поставленных целей. Одним из наиболее важных понятий в имитационном моделировании является анализ чувствительности. Под ним мы понимаем определение чувствительности наших окончательных результатов к изменению используемых значений параметров. Анализ чувствительности обычно заключается в том, что величины параметров систематически варьируются в некоторых представляющих интерес пределах и при этом наблюдается влияние этих вариаций на характеристики модели. Почти в любой имитационной модели многие переменные рождаются на основании весьма сомнительных данных. Во многих случаях их значения могут быть определены только на основе предположений опытного персонала или с помощью весьма поверхностного анализа некоторого минимального объема данных. Поэтому чрезвычайно важно определить степень чувствительности результатов относительно выбранных для исследования величин. Если при незначительных изменениях величин некоторых параметров результаты меняются очень сильно, это может служить основанием для затраты большего количества времени и средств с целью получения более точных оценок. В то же время, если конечные результаты при изменениях величин параметров в широких пределах не изменяются, то дальнейшее экспериментирование в этом направлении неоправданно и не является необходимым.
Имитационное моделирование идеально подходит для анализа чувствительности благодаря тому, что экспериментатор здесь может успешно контролировать весь ход эксперимента. В отличие от экспериментирования с реальными системами пользователь модели, располагая возможностями абсолютного контроля над своей моделью, может варьировать по желанию любой параметр и судить о поведении модели по наблюдаемым результатам. РЕАЛИЗАЦИЯ ЗАМЫСЛА И ДОКУМЕНТИРОВАНИЕ
Последние два элемента, которые должны быть включены в любое задание по моделированию, это реализация замысла и документирование. Никакое задание на моделирование не может считаться успешно завершенным до тех пор, пока оно не будет принято, понято и использовано. Наибольшие неудачи, постигавшие специалистов, занимающихся проблемами управления, были связаны с восприятием и использованием их работ. Суммарное время разработки модели разбивается примерно следующим образом: 25% времени - формулирование задачи, 25% - сбор и анализ статистических данных, 40% - разработка машинной модели и 10% - внедрение. Главной ошибкой проектных заданий в области исследования операций и теории управления обычно является неправильное понимание результатов моделирования пользователями, приводящее к недостаточной степени реализации замысла. Еще трудней понять, почему на период реализации выделяется столь малый процент времени, если учесть, что уточнение модели, тренировка пользователя, регулировка модели в соответствии с изменяющимися условиями и проверка правильности полученных результатов (что может быть выполнено только на этапе реализации) являются, пожалуй, наиболее трудными проблемами, с которыми сталкивается исследователь. По личному опыту автора, более реалистичное распределение времени проектирования модели представляется следующим образом: 25% на постановку задачи, 20% на сбор и анализ данных, 30% на разработку модели и 25%_на . реализацию.
Документирование близко связано с реализацией. Тщательное и полное документирование процессов разработки и экспериментирования с моделью может значительно увеличить срок ее жизни и вероятность успешной реализации. Хорошо организованное документирование облегчает модификацию модели и обеспечивает возможность ее использования, если даже служб, занимавшихся разработкой модели, больше не существует. Кроме этого, тщательная документация может помочь разработчику модели учиться на своих ошибках и, быть может, послужит источником для создания подпрограмм, которые будут снова использованы в будущих проектах.