Читайте данную работу прямо на сайте или скачайте
Прикладное программирование, 1 семестр
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N1 (ВВОДНАЯ)
I. ОРГВОПРОСЫ
1. Списки групп
2. Расписание занятий
II. ПРОБЛЕМЫ СИСТЕМЫ ОБРАЗОВАНИЯ РОССИИ
Денег на систему образования у государства нет и не будет:
- проблемы обеспечения учебного процесса литературой, техни-
кой и т.д. ва конечнома итоге будут так или иначе переложены на
плечи студентов - они вынуждены будут сами себе покупать книги и
даже компьютеры;
- возможна реформа системы образования са непредсказуемыми
последствиями;
- возможна (замаскированная) ликвидация бесплатного образо-
вания вообще.
. ПРОБЛЕМЫ МИРОВОЙ КОМПЬЮТЕРНОЙ ИНДУСТРИИ
Западная экономика построена по принципу совместного функци-
онирования двух систем: планирующей (для крупных фирм) и рыночной
(для мелких фирм и частных лиц). Планирующая система является до-
минирующей - она диктует цены рыночной системе.
В планирующей системе не действуют законы рынка:
- она может произвольным образом станавливать цены на това-
ры и слуги;
- может навязывать потребителю любой товар ("промывая мозги"
при помощи рекламы);
- кризисы перепроизводства почти не затрагивают планирующую-
щую систему - все издержки она может переложить на рыночную сис-
тему, которая, в конечном итоге, всегда платит за ошибки планиру-
ющей системы.
Фирмы 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 кб (адреса Ah-Ah).
Используется таблиц цветов - можно выбрать 256 из 2 518 0 возможных
оттенков.
1.2. Режимы с более высоким разрешением и стандарт VESA.
Возможна либо страничная адресация через сегменты по 64 кб
(по адресу Ah-Ah), либо линейная адресация пространства
объемом до 64 Мб (по адресу Eh-E3h).
2. 24- и 32-битовый режимы (True color).
Возможна либо страничная адресация через сегменты по 64 кб
(по адресу Ah-Ah), либо линейная адресация пространства
объемом до 64 Мб (по адресу Eh-E3h).
II. АНИМАЦИЯ В ДВУМЕРНОМ
ПРОСТРАНСТВЕ И ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ.
Экономия процессорного времени (обмена "память-быстродейс-
твие"):а при реализации двумерной графики обычно не нужно пере-
рассчитывать изображение для каждого объекта в каждом новома кад-
ре.а Изображения всеха объектов могут быть рассчитаны заранее (с
помощью профессиональных анимационных программ), записаны в фай-
лах на диске и, по мере необходимости, перенесены в оперативную
память компьютера.а Движущиеся объекты отличаются ота неподвижных
тем, что требуют по несколько картинок для описания отдельных фаз
- 2 -
каждого возможного движения (3-16 фаз на один тип движения).
Аппроксимация. Влияние разрешения н качество картинки.
Лестничный эффект.
Скорость обмена данными с кеш-памятью, оперативной памятью и
видеопамятью.
Необходимо вначале накопить данные в оперативной памяти, и
уже затем выводить в видеопамять изображение нового кадра.
Расход памяти. Использование симметрии при отображении пос-
тупательных иа вращательных движений для экономии оперативной па-
мяти. Разделение сложных объектов на несколько независимо отобра-
жаемых элементов.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N3
АНИМАЦИЯ В ДВУМЕРНОМ
ПРОСТРАНСТВЕ И ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ.
Расход памяти. Использование симметрии при отображении пос-
тупательных иа вращательных движений для экономии оперативной па-
мяти. Разделение сложных объектов на несколько независимо отобра-
жаемых элементов.
Объекты с несколькими осями симметрии. Круг - объект с бес-
конечным числом осей симметрии. Иллюзия вращения круга.
Сколько разныха подвижныха иа неподвижных объектов заданного
размера (при заданном числе фаз движения) можно сохранить ва опе-
ративной памяти компьютера (заданного объема)?
Фон. Лабиринты и псевдокарты. Прокрутка изображения.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N4
АНИМАЦИЯ В ДВУМЕРНОМ
ПРОСТРАНСТВЕ И ПСЕВДОТРЕХМЕРНАЯ АНИМАЦИЯ.
Необходимо задать жесткие ограничения:
- на размерность отображаемого пространства (на число коор-
динатных осей);
- на размер отображаемого пространства (площадь и глубину);
- на сложность фона;
- на число и сложность формы неподвижных объектов;
- на число и сложность формы подвижных объектов, число типов
движений и число фаз движений;
- н масштабируемость объектов (на сколько допустимо вели-
чение и меньшение объекта);
- на направление взгляда и гол обзора.
Направление взгляда: сверху, сбоку, сверху-сбоку.
Координатные оси. Двумерное, псевдотрехмерное и трехмерное
пространство.
Ориентация осей в двумерном пространстве (относительно экра-
на монитора).
┌─────── x
│
│
│
y
Ориентация осей в трехмерном пространстве (оси x и y - как в
двумерном, ось z направлена от оператора вглубь экрана).
.
- 2 -
Соотношение между сферическими и прямоугольными координата-
ми:
x = 7r 0 sin 7f 0 cos 7Q
y = 7r 0 sin 7f 0 sin 7Q
z = 7r 0 cos 7f
Алгоритм художника. Примитивный варианта z-буферизации в
псевдотрехмерной графике.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N5
ЗАДАНИЕ НА ЗАЧЕТ
Задание: написать программу, выполняющую моделирование функ-
ционирования какой-либо системы и отображающую результаты модели-
рования на экране монитора в графическом виде.
Каждый студента может выбрать себе задание (тип моделируемой
системы) самостоятельно.а Программа может иметь форму игры, но
обязательно должн моделировать какую-то реальнуюа систему или
процесс.
ОГРАНИЧЕНИЯ:
1. Программа должна работать под операционной системойа DOS.
Нельзя использовать возможности Windows.
2. Языки программирования: С, Паскаль или Ассемблер. Объект-
но-ориентированные возможности языков использовать нельзя.
3. Ограничение н графические режимы:а можно использовать
только режима 256а цветова (1 байт видеопамяти на каждую точку) с
разрешением 320х200 точек или (ва случаеа крайней необходимости)
640х400 точек.
4. Нельзя использовать никакие графические библиотеки - вы-
вод информации должен производиться напрямую в видеопамять.
5. Ограничение по быстродействию: программа должна сохранять
работоспособность на медленных 486-х компьютерах.
6. Ограничение по оперативной памяти -а нельзя использовать
более 500 кб основной памяти и более 1 Мб расширенной.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N6
ПЕРЕНОС И ПОВОРОТ ИЗОБРАЖЕНИЯ
Перенос и поворот в двумерном пространстве
Перенос точки P(x,y) в точку P(x',y'):
x' = x + 7D 0x
y' = y + 7D 0y
Поворот вокруга центр координата (точка P(x,y) переходит в
точку P(x',y')):
x' = x cos 7f 0 - y sin 7f
y' = x sin 7f 0 + y cos 7f
Вычисления в матричной форме
Перенос:
┌ ┐
│ 1а 0 │
[x' y'] = [x y 1] │ 0а 1 │
│ 7D 0x 7D 0y │
└ ┘
Удобнее работать с квадратной матрицей переноса (которая мо-
жет быть получена введением фиктивной переменной):
┌ ┐
│ 1а 0а 0 │
[x' y' 1] = [x y 1] │ 0а 1а 0 │
│ 7D 0x 7D 0yа 1 │
└ ┘
Такую запись принято называть записью в системе "однородных
координат".
Поворот вокруг центра координат на гол 7f 0:
┌ ┐
cos 7f 0а sin 7f 0 │
[x' y'] = [x y] │ │
│ -sin 7f 0а cos 7f 0 │
└ ┘
.
- 2 -
┌ ┐
cos 7f 0а sin 7f 0 0 │
[x' y' 1] = [x y 1] │ -sin 7f 0а cos 7f 0 0 │
а 0 0 1 │
└ ┘
Поворот вокруга произвольной точки с координатами (x 40 0,y 40 0) на
угол 7f 0 может быть представлен формулой:
[x' y' 1] = [x y 1] R
где через R обозначена матрица поворота размером 3x3.
Такой поворот состоит из трех операций:
1. Преобразование для переноса точки (x 40 0,y 40 0) в начало коор-
динат О:
┌ ┐
1 0 0 │
T' = 0 1 0 │
│ -x 40 0 -y 40 0а 1 │
└ ┘
2. Поворот вокруг начала координат на гол 7f 0:
┌ ┐
cos 7f 0а sin 7f 0 0 │
R 40 0 = │ -sin 7f 0а cos 7f 0 0 │
а 0 0 1 │
└ ┘
3. Перенос из начала координат в точку (x 40 0,y 40 0):
┌ ┐
│ 1 0 0 │
T = │ 0 1 0 │
│ x 40 0а y 40 0а 1 │
└ ┘
Матрица R = T'R 40 0T:
┌ ┐
cos 7f 0а sin 7f 0 0 │
R = │ -sin 7f 0а cos 7f 0 0 │
а c 41 0 c 42 0 1 │
└ ┘
где
c 41 0 = x 40 0 - x 40 0 cos 7f 0 + y 40 0 sin 7f
c 42 0 = y 40 0 - x 40 0 sin 7f 0 - y 40 0 cos 7f
.
- 3 -
Перенос и поворот в трехмерном пространстве
Перенос точки P(x,y,z) в точку P'(x',y',z'):
x' = x + 7D 0x
y' = y + 7D 0y
z' = z + 7D 0z
В матричной форме:
[x' y' z' 1] = [x y z 1] T
┌ ┐
│ 1а 0а 0а 0 │
T = │ 0а 1а 0а 0 │
│ 0а 0а 1а 0 │
│ 7D 0x 7D 0y 7D 0zа 1 │
└ ┘
Поворот вокруг оси на угол 7a 0:
┌ ┐
а 1 0 0 │
R 4x 0 = а 0 cos 7a 0а sin 7a 0│
а 0 -sin 7a 0а cos 7a 0│
└ ┘
┌ ┐
cos 7a 0 0 -sin 7a 0│
R 4y 0 = а 0 1 0 │
sin 7a 0 0 cos 7a 0│
└ ┘
┌ ┐
cos 7a 0а sin 7a 0 0 │
R 4z 0 = │ -sin 7a 0а cos 7a 0 0 │
а 0 0 1 │
└ ┘
Поворот на угол 7a 0 вокруг произвольной оси, заданной вектором
v, может быть представлен формулой:
[x' y' z' 1] = [x y z 1] R
где через R обозначена матрица обобщенного поворота размером 4x4.
.
- 4 -
Такой поворот состоит из трех операций:
1. Преобразование для перенос начальной точки вектора
v(x 40 0,y 40 0,z 40 0) в начало координат О:
┌ ┐
1 0 0а 0а │
T' = 0 1 0 а 0а │
0 0 1а 0а │
│ -x 40 0 -y 40 0 -z 40 0 1а │
└ ┘
2. Поворот вокруг начала координата выполняется ва полярных
координатах (как комбинация из нескольких поворотов):
┌ ┐
cos 7Q 0 -sin 7Q 0 0 │
R 4z 5-1 0 = sin 7Q 0а cos 7Q 0 0 │
а 0 0 1 │
└ ┘
┌ ┐
cos 7f 0 0 sin 7f 0│
R 4y 5-1 0 = а 0 1 0 │
│ -sin 7f 0 0 cos 7f 0│
└ ┘
┌ ┐
cos 7a 0а sin 7a 0 0 │
R 4v 0а =а │ -sin 7a 0а cos 7a 0 0 │
а 0 0 1 │
└ ┘
┌ ┐
cos 7f 0 0 -sin 7f 0│
R 4y 0а =а а 0 1 0 │
sin 7f 0 0 cos 7f 0│
└ ┘
┌ ┐
cos 7Q 0а sin 7Q 0 0 │
R 4z 0а =а │ -sin 7Q 0а cos 7Q 0 0 │
а 0 0 1 │
└ ┘
В результате получим матрицу:
┌ ┐
│ r 411 0 r 412 0 r 413 0 │
R 5* 0 = R 4z 5-1 0R 4y 5-1 0R 4v 0R 4y 0R 4z 0 = │ r 421 0 r 422 0 r 423 0 │
│ r 431 0 r 432 0 r 433 0 │
└ ┘
.
- 5 -
Расширим эту матрицу до размера 4х4:
┌а ┐
│ r 411 0 r 412 0 r 413 0а 0а │
R 40 0 = │ r 421 0 r 422 0 r 423 0а 0а │
│ r 431 0 r 432 0 r 433 0а 0а │
0 0 0 1а │
└ ┘
3. Перенос из начала координат в точку (x 40 0,y 40 0,z 40 0)):
┌ ┐
1 0 0а 0а │
T = 0 1 0а 0а │
0 0 1а 0а │
x 40 0а y 40 0а z 40 0 1а │
└ ┘
Получаем матрицу обобщенного поворота:
R = T'R 40 0T
Следует отметить, что ва компьютерной графике одновременно
используются оба способа описания пространства:а ва прямоугольных
координатах рассчитывают перемещения, в сферических - повороты.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N7
РИСОВАНИЕ ЛИНИЙ, ОКРУЖНОСТЕЙ И ЭЛЛИПСОВ.
ЗАЧЕМ ЭТО НУЖНО ЗНАТЬ?
Основной недостаток всех ниверсальных графических библиотек
- медленная работа (универсальная система всегда значительно ус-
тупает по производительности специализированной).
Использование чужой библиотеки всегда сопровождается серьез-
ным риском:
- программы библиотеки могут содержать ошибки, которые вы не
можете исправить (исходные коды программ обычно не поставляются);
- возможны ошибки в документации на библиотеку (либо просто
неточное описание ее функционирования);
- в продажу, как правило, поступают же сильно устаревшие
библиотеки - фирмы-разработчики не нуждаются в конкуренции с ва-
шей стороны.а Покупка чужой технологии всегда приводит к техноло-
гическому отставаниюа - вы сами себя изгоняете с рынка за свои же
собственные деньги;
- разработчика библиотеки в любой момент может перестать ее
развивать;
- в компьютерной промышленности периодически происходят кри-
зисы, ничтожающие целые классы ("ряды") морально старевшиха вы-
числительных машин.а Заменяющие их принципиально новые системы в
течение нескольких лет могут не иметь необходимого программного
обеспечения.
Проектировщики систем правления постоянно имеют дело c но-
вейшей аппаратурой, и часто вынуждены сами создавать для нее
программное обеспечение.
.
- 2 -
РИСОВАНИЕ ЛИНИИ
(алгоритм Брезенхема)
"Несмотря на всю сложность программирования графики, в осно-
ве любой графической функции лежит несколько на дивление простых
функций, называемых графическими примитивами. Такими примитивами
являются прорисовка точек, линий, окружностей, также заполнение
областей и перемещение битовых образов. Многие годы в графическое
оборудование встраивался тот или иной набор графических примити-
вов. Такой примитив, как рисование линии, особенно широко исполь-
зуется конструкторскими программами, а также программами автома-
тизированной разработки.
У каждой функции рисования линии есть две важнейшие характе-
ристики. Во-первых, функция должна хорошо приближать то, что она
рисует, к реальной линии.а Разрешение компьютера ограничено, поэ-
тому программа может приближать реальную линию только сериями то-
чек, станавливаемыха в заданном направлении. Эта последователь-
ность точек должна создавать хороший зрительный эффект - то, что
нарисовано, должно быть похоже на линию.а Во-вторых, чтобы быть
полезной, функция рисования линии должн работать быстро. Ми-
ни-компьютеры и большие машины имеют аппаратно встроенные функции
рисования линии. У персональных же компьютерова аппаратной под-
держки рисования линии нет."
Майкл Абраш
Появление аппаратной поддержки графики ва ПЭМа (графические
ускорители, команды MMX).
Приближение реальной линии набором пикселей.а Лестничный эф-
фект.
Алгоритм Брезенхема:
Алгоритм идет по оси, проекция линии на которую больше (ос-
новной оси), и проверяет соседние точки по другойа оси, выбирая
ту, что ближе к реальной линии. Текущая ошибка отклонения исполь-
зуется как критерий того, что пора менять неосновную координату,
чтобы лучше приблизить реальную линию.
Для того, чтобы можно было работать только с целыми числами,
избегая вычислений с плавающей запятой, достаточно промасштабиро-
вать картинку.
Благодаря использованию только целочисленной арифметики ал-
горитм Брезенхема является одним из самых простых и быстрых алго-
ритмов.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N8
РИСОВАНИЕ ОКРУЖНОСТЕЙ
(алгоритм Харденбурга)
Уравнение окружности:
а R 52 0 = X 52 0 + Y 52
С точки зрения программирования достаточно рассчитать 1/8
часть окружностиа -а остальные точки могут быть получены за счет
симметрии.
Обычно начинают рисовать из точки, где координата по основ-
ной оси (по которой приращение больше) равна 0, по неосновной -
радиусу. Каждая следующая точка получается из формулы:
7|\\\\\\\\\\\\\\\\
MinorAxis = 7? 0 R 52 0 - MajorAxis 52
где R - радиус,
MinorAxis - координата по неосновной оси,
а MajorAxis - координата по основной оси.
Недостаток - нужно вычислять квадратный корень и использо-
вать арифметику с плавающей запятой. Желательно, однако, работать
только с целочисленной арифметикой.
Вместо вычисления такого выражения для каждойа точки доста-
точно отслеживать текущие значения MinorAxis 52 0а и R 52 0 - MajorAxis 52
и декрементируйтеа одина пиксель по неосновной оси, как только
MinorAxis 52 0 становится меньше R 52 0 - MajorAxis 52 0.
Ошибка накопления - не целое число. Однако никаких проблем
это не создает. Координату по неосновной оси нужно изменять, ког-
да
(Y - 0.5) 52 0 > R 52 0 - X 52
- 2 -
Однако:
(Y - 0.5) 52 0 = Y 52 0 - Y + 0.25
Разность Y 52 0 - Yа вычисляется в целых числах, а 0.25 можно
просто игнорировать, потому что разность R 52 0 - X 52 0, которую мы бу-
дем сравнивать с ошибкой накопления по Y, всегда целое число. Ес-
ли R 52 0 - X 52 0 равен Y 52 0 - Y, то на самом деле R 52 0 - X 52 0 меньше ошибки.
Следовательно, неосновную координату нужно менять, когда
Y 52 0 - Yа >=а R 52 0 - X 52 0.
Кроме того, при необходимости можно скорить вычисления, за-
менив операцию взведения в квадрат (умножения) на сдвиг, сложение
и инкремент (для 486-х и более мощных процессоров такая замена не
имеет смысла):
(a + 1) 52 0 = a 52 0 + 2a + 1.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N9
РИСОВАНИЕ ЭЛЛИПСОВ
Современные микропроцессоры, используемые в персональных
ЭВМ, включаюта ва себя быстродействующие блоки для вычислений с
плавающей запятой. Это позволяет рассчитывать любые эллипсы.
Однако ненаклонные эллипсы можно достаточно быстро прорисо-
вывать, используя только целочисленную арифметику. Ненаклонный
эллипс описывается равнением:
x 52 0 y 52
─── + ─── = 1.
A 52 0 B 52
следовательно
7|\\\\\\\\
7/ 0 B 52 0x 52
y =а 7/ 0 B 52 0 - ────,
7? 0 A 52
где полученное значение Y необходимо округлить до ближайшего
целого.
Так как эллипс имеет две оси симметрии, то вычисления доста-
точно выполнить для оного из четырех квадрантов. Сначала рисуется
дуга, где основной осью является X, затем - дуга, где основной
осью является Y.а Затем полученные точки отображаются на три ос-
тальных октанта.
Точка, в которой ось перестает быть основной, вычисляется по
формуле
B 52 0x 52 0 = A 52 0y 52 0.
.
- 2 -
ПРЯМАЯ РАБОТА С ПАМЯТЬЮ В СОВРЕМЕННЫХ ВИДЕОКОНТРОЛЛЕРАХ
Вообще говоря, изобилие видеорежимова является результатом
несогласованной и непродуманной технической и маркетинговой поли-
тики фирм-изготовителей аппаратуры. Фирмы просто не смогли вовре-
мя выработать общий стандарт, что и породило хаос.
Само по себеа использование данных ПЗУ видеокарты для прог-
раммирования режимов работы той же карты является грубыма техни-
ческим просчетома - гораздо рациональнее было бы возложить проце-
дуру переключения режимов не на основной процессор, н собс-
твенный процессор видеокарты.
Кроме того, со времени разработки первых видеокарт для 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
.
- 3 -
Выбор окна видеопамяти
Вследствие ошибки, допущенной еще при разработке процессора
Intel 8086, вся размещенная на видеокарте память оказалась разде-
ленной на кусочки размером по 64 кб - так называемые "окна"а или
"страницы".а Процессору ва каждый момент времени доступно только
одно такое окно, и для доступа к другому требуется вызвать прог-
рамму видео-BIOS, переключающую окна (на аппаратном ровне такое
переключение выполнить сложно - видеокарты разных фирм используют
для этого регистры с разными номерами).
Например, в режиме TrueColor 640x480 при четырехбайтовой ко-
дировке цвета точки одному кадру соответствует 1228800 байт памя-
ти, или 18,75 страниц по 64 кб.
Переключение номер активного (доступного процессору) окна
выполняется вызовом прерывания 10h с номером функции 4F05h. В ре-
гистр BH нужно записать 0, в регистр DX - номер окна. Само окно
будет размещено по адресу Ah.
Например, нужно обратиться к данным в девятом окне:
mov AX,Ah
mov ES,AX
mov AX,4F05h
mov BH,0
mov DX,9
int 10h
Установка логической длины строки развертки
Страницы видеопамяти отображаются на экрана последовательно,
друг з другом. При этом на экран отображается только некоторая
часть видеопамяти.а Другая, невидимая часть, может использоваться
как вспомогательная:а для "прокрутки" изображения, для хранения
шрифтов и масок, для z-буферизации и пр.
╔══════════════╗
║ ║
║ ║─── видимая часть видеопамяти
║ ║
╠══════════════╣
│ │
│ │
│ │─── невидимая часть
│ │
│ │
└──────────────┘
- 4 -
Однако, если ширина экрана в пикселах не равна 2 5N 0 (256, 512,
1024 или 2048), то концы страниц не будут совпадать с концами ви-
деострок, что порождает множество проблем - при вычерчивании, к
примеру, линии на экране, придется при выводе каждой точки выпол-
нять проверку пересечения границы страницы, и, при необходимости,
переключать страницу.
Постоянный контроль границы страницы и частоеа программное
(через VESA-BIOS)а переключение страниц чудовищно замедляет вывод
информации на экран (в сотни или тысячи раз).
Эту проблему можно частично разрешить, реорганизуя видеопа-
мять такима образом, чтобы логическая длина строки (длина строки
видеопамяти) была больше физической (экранной)а иа стал кратной
2 5N 0:
видимая область
│
╔══════════════╦────────┐
║ ║ │
║ ║ │
║ ║ │
╠══════════════╝ │
│ │─── невидимая область
│ │
└───────────────────────┘
Установка новой логической длины строки выполняется вызовом
прерывания 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 Мб), пост-
- 5 -
роить тама изображение и переписать готовый кадр в память видео-
карты.
Для двумерной графики такойа способа выигрыш по скорости
обычно не дает - двумерная графика работает с небольшими областя-
ми экрана, а не с целым кадром, и переписывать весь кадр только
ради изменения незначительной его части невыгодно.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N10
ОРГАНИЗАЦИЯ ВИДЕОПАМЯТИ
Организация памяти в режиме True Color
Каждый пиксел описывается четырьмя байтами данных - по одно-
му для задания интенсивности каждого из основныха цветова и один
резервный - для "выравнивания" длины передаваемых данных на 2 5N 0:
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
.
- 2 -
ЗАКРАСКА МНОГОУГОЛЬНИКОВ
Проблема закраски многоугольников возникает в двуха основных
случаях:
- в двумерной графике - при рисовании многоугольников в гра-
фических редакторах;
- в трехмерной графике - при отображении на экране какой-ли-
бо плоской поверхности.
Наиболее эффективным (быстрым) способома закраски (заливки)
многоугольника является построчный вывод изображения:
- если многоугольник невыпуклый, его разделяют на несколько
треугольников или выпуклых многоугольников;
- определяют вершины выпуклого многоугольника, имеющие мини-
мальную и максимальную координаты по Y (верхнюю и нижнюю вершины);
а - сканируюта многоугольник построчно, определяя начальную и
конечную координаты по X, для чего (используя алгоритм Брезенхе-
ма) просчитывают координаты всех точек ребер многоугольника;
- используя массив начальных и конечных точек (XB[i],XE[i]),
выводят многоугольник построчно в видеопамять.
На самом деле, таким способом можно строить не только выпук-
лые многоугольники.а Важно только, чтобы любую строку пересекало
ровно два ребра многоугольника.
При выводе трехмерной фигуры с плоскими гранями ее проекция
на экран будет состоять из ряда многоугольников. Однако на экране
видны не все грани фигуры - перед выводом на экран необходимо тем
или иным способом далить невидимые поверхности, для чего сущест-
вуют специальные алгоритмы. Для каждой грани необходимо также вы-
числить интенсивность цвета (сумму интенсивностей отраженного и
рассеянного света) в зависимости от расположения источников све-
та.
При работе с кривыми поверхностями их такжеа представляюта в
виде многоугольников (обычно - треугольников), однако таких эле-
ментов для достаточно точной аппроксимации нужно много иа прихо-
дится использовать алгоритмы сглаживания, что сильно замедляет
вычисления - на каждую точку поверхности приходится несколько ма-
тематических операций. В настоящее время даже графические станции
не позволяют в реальном времени изображать движение сложного объ-
екта в реальном мире.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N 11
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
1. Что такое модель?
Модель -а это нечто, чем можно заменить физический объект в
процессе эксперимента.
2. Зачем нужна модель?
Экспериментировать с физическим объектом может быть дорого,
долго, неудобно или опасно.
3. Зачем нужно имитационное моделирование?
Когда задача имеет слишком большую размерность или не подда-
ется решению в явном (аналитическом) виде по каким-то другим при-
чинам, используют иммитационное моделирование.
Управление ва современнома мире становится все более трудным
делом, поскольку организационная структура нашего общества слож-
няется. Эта сложность объясняется характером взаимоотношений меж-
ду различными элементами наших организаций и физическими система-
ми, с которыми они взаимодействуют. Хотя эта сложность существо-
вала давно, мы только сейчас начинаем понимать ее значение.а Те-
перь мы сознаем, что изменение одной из характеристик системы мо-
жет легко привести к изменениям или создать потребность в измене-
ниях ва другиха частях системы. В связи с этим получила развитие
методология системного анализа ("исследование операций", "теория
управления"), которая была призвана помочь руководителям и инже-
нерам изучать и осмысливать последствия таких изменений. В част-
ности, с появлением электронных вычислительных машин одним из на-
иболее важных и полезных орудий анализа структуры сложных процес-
сов и систем стало имитационное моделирование. Имитировать, зна-
чит "вообразить, постичь суть явления, не прибегая к эксперимен-
там на реальном объекте".
По существу, каждая модель есть форма имитации. Имитационное
моделирование является широким и недостаточно четко определенным
понятием, имеющим очень большое значение для лиц, ответственных
за проектирование и функционирование систем.
Подобно всем мощным средствам, существенно зависящим от ис-
кусства их применения, имитационное моделирование способно дать
либо очень хорошие, либо очень плохие результаты. Оно может либо
пролить свет на решение проблемы, либо ввести в заблуждение. Поэ-
тому важно, чтобы руководитель или тот, кто принимает решения и
будет пользоваться результатами моделирования, представляла себе
- 2 -
смысл вводимыха допущений, сильные и слабые стороны метода, его
преимущества и тонкости.а Подлинное мение пользоваться техникой
имитационного моделирования можно приобрести лишь на опыте.
Определение:
Имитационное моделированиеа есть процесс конструирования мо-
2дели реальной системы и постановки экспериментов на этой модели с
2целью либо понять поведение системы, либо оценить (в рамках огра-
2ничений, накладываемых некоторым критерием или совокупностью кри-
2териев) различные стратегии, обеспечивающие функционирование дан-
2ной системы.
Таким образом, процесс имитационного моделирования мы пони-
маем как процесс, включающий и конструирование модели, и аналити-
ческое применение модели для изучения некоторой проблемы. Под мо-
делью реальнойа системы мы понимаем представление группы объектов
или идей в некоторой форме, отличной от их реального воплощения.
Термин "реальный" используется в смысле "существующий или способ-
ный принять одну из форма существования".а Системы, существующие
еще только на бумаге или находящиеся в стадии планирования, могут
моделироваться так же, как и действующие системы.
Согласно нашему определению, термин имитационное моделирова-
ние может также охватывать стохастические модели и эксперименты с
использованием метода Монте-Карло. Иными словами, входы модели и
функциональные соотношения между ними могут содержать, а могут и
не содержать элемент случайности, подчиняющийся вероятностным за-
конам. Более того, мы не ограничиваем наше определение имитацион-
ного моделирования лишь экспериментами, проводимыми с помощью ма-
шинных моделей.а Много полезных видов имитационного моделирования
может быть осуществлено всего лишь при помощи карандаш и листа
бумаги.
Имитационное моделирование является экспериментальной и
прикладной методологией, имеющей целью:
- описать поведение систем;
- построить теории и гипотезы, которые могут объяснить наб людаемое поведение;
- использовать эти теории для предсказания будущего поведе ния системы, т.е. тех воздействий, которые могут быть выз ваны изменениями в системе или изменениямиа способова ее
функционирования.
В отличие от большинства технических методов, которые могут
быть классифицированы в соответствии с научными дисциплинами, в
которые они ходят своими корнями (например, с физикой или хими-
ей), имитационное моделирование применимо в любой отрасли науки.
- 3 -
Для моделирования системы нам необходимо поставить искусс-
твенный эксперимент, отражающий основные словия моделируемой си-
туации. Для этого мы должны придумать способ имитации искусствен-
ной последовательности происходящих в системе событий.
Модель является представлением объекта, системы или понятия
(идеи) в некоторой форме, отличной от формы их реального сущест-
вования. Модель служит обычно средством, помогающим нам в объяс-
нении, понимании или совершенствовании системы. Модель какого-ли-
бо объекта может быть или точной копией этого объекта (хотя и вы-
полненной из другого материала и в другом масштабе), или отобра-
жать некоторые характерные свойства объекта в абстрактной форме.
Примечание: абсолютно точной моделью объекта является сам
2этот объект. Все остальные модели - приближенные.
Модель -а это используемый для предсказания и сравнения инс-
трумент, позволяющий логическим путем спрогнозировать последствия
альтернативных действий и достаточно веренно указать, какому из
них отдать предпочтение.а Кроме того, модель может служить эффек-
тивным средством общения и осмысления действительности. Имитация
- всего лишь один из видов моделирования.
По существу, прогресс науки и техники тесно связан с разви-
тием способностиа человека создавать модели естественных явлений.
Одним из главных элементов, необходимых для эффективного решения
сложных задач, является построение и соответствующее использова-
ние модели. Такая модель может принимать разнообразные формы, но
одна иза наиболее полезных и наиболее употребительных форм - это
математическая, выражающая посредством системы уравнений сущест-
венные черты изучаемых реальных систем и явлений. К сожалению, не
всегда возможно создать математическую модель в зком смысле сло-
ва. При изучении большинства промышленных и военных систем мы мо-
жем определить цели, указать ограничения и предусмотреть, чтобы
наша конструкция подчинялась техническим и экономическим законам.
При этом могут быть вскрыты и представлены в той или иной матема-
тической формеа существенные связи в системе. В отличие от этого
решение, к примеру, экологических проблем связано c неясными и
противоречивыми целями, а также с выбором альтернатив, диктуемых
политическим и социальным факторами.
Следовательно, модель должна описывать кака количественные,
2так и качественные характеристики системы. 0
Модель может применяться в качестве:
- средства осмысления действительности;
- средства общения;
- средства обучения и тренировки;
- 4 -
- инструмента прогнозирования;
- средства постановки экспериментов.
Полезность модели как средства осмысления реальных связейа и
закономерностей очевидна. Модели могут помочь нам упорядочить на-
ши нечеткие или противоречивые понятия и несообразности. Модель
помогает нам выявить взаимосвязи, временные соотношения, требуе-
мые ресурсы и т.п.а Уже сама попытка представить наши словесные
2формулировки иа мысли в какой-то иной форме часто выявляет проти-
2воречия и неясности. 0а Правильно построенная модель вынуждаета нас
организовать наши замыслы, оценить и проверить их обоснованность.
Как средство общения хорошо продуманная модель не имеет себе
равных. "Лучше один раз видеть, чем сто раз слышать". Все язы-
ки, в основе которых лежит слово, в той или иной мере оказываются
неточными, когда дело доходит до сложных понятий и описаний. 2 Пре-
2имущество модели перед словесными описаниями - в сжатости и точ-
2ности представления заданной ситуации. 0 Модель делает более понят-
ной общую структуру исследуемого объекта и 2вскрывает важные при-
2чинно-следственные связи.
Модели применялись и продолжают широко применяться в качест-
ве средства профессиональной подготовки и обучения. Модель - пре-
восходное средство подготовки операторов, которые должны научить-
ся справляться с всевозможными случайностями до возникновения ре-
льной критической ситуации в системе правления.
Одним из наиболее важных применений моделей является прогно-
зирование поведения моделируемых объектов. Строить сверхзвуковой
реактивный самолет для определения его летных характеристика эко-
номически нецелесообразно, однако они могута быть предсказаны
средствами моделирования.
Наконец, применение моделей позволяет проводить контролируе-
мые эксперименты в ситуациях, где экспериментирование на реальных
объектах было бы практически невозможным или экономически нецеле-
сообразным. Непосредственное экспериментирование с системой (на-
турный эксперимент)а обычно состоита в варьировании некоторых ее
параметров; поддерживая остальные параметры неизменными, наблюда-
ют результат эксперимента. Когда ставить эксперимент на реальной
системе слишком дорого, используют ее модель. 2 При экспериментиро-
2вании с моделью сложной системы мы часто можем больше знать о ее
2внутренних взаимодействующих факторах, чем могли бы знать, мани-
2пулируя реальной системой. Это становится возможным благодаря из-
2меряемости структурных элементов модели, благодаря тому, что мы
2можем полностью контролировать ее поведение, легко измерять пара-
2метры.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N 12
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
Модель может служить для достижения одной ида двуха основных
целей:а либо описательной, если модель служит для объяснения и
лучшего понимания объекта, либо предписывающей, когда модель поз-
воляет предсказывать и воспроизвести характеристики объекта, оп-
ределяющие его поведение.а Модель предписывающего типа обычно яв-
ляется и описательной, но не наоборот, Это означает, что предпи-
сывающая модель почти всегда является описательной по отношению к
моделируемомуа объекту, но описательная модель не всегда полезна
для целей планирования и проектирования.
Различная степень полезности моделей, применяемых в технике
и в социальных науках, в значительной мере зависит от методова и
средств, которые использовались при построении моделей, и разли-
чий в конечных целях, которые при этом ставились. В технике моде-
ли служат в качестве вспомогательных средств при разработке новых
или более совершенных систем, в то время как в социальных науках
модели объясняют существующие системы. Модель, пригодная для це-
лей разработки системы, должна также и объяснять ее, но очевидно,
что модели, создаваемые исключительно для объяснения, часто не
соответствуют даже своему прямому назначению.
Классификация моделей
Модели вообще и имитационные модели в частности можно клас-
сифицировать различными способами. К сожалению, ни один из них не
является полностью довлетворительным, хотя каждый служит опреде-
ленной цели. кажем некоторые типовые группы моделей, которые мо-
гут быть положены в основу системы классификации:
- статические (например, поперечный разрез объекта) и динами ческие (временные ряды);
- детерминистские и стохастические;
- дискретные и непрерывные;
- натурные, аналоговые, символические.
- 2 -
Удобно представлять себе имитационные модели в виде непре-
рывного спектра, простирающегося от точных моделейа или макетов
реальныха объектов до совершенно абстрактных математических моде-
лей.
┌────────┬───────────┬────────┬───────────┬───────────┬──────────┐
│ Физи-а │ Масштаби- │ Анало- │ правлен- │ Моделиро- │ Матема-а │
│ ческие │ рованные │ говыеа │ ческие │ вание н │ тические │
│ модели │ модели │ модели │ игры │ ЭВМ │ модели │
└────────┴───────────┴────────┴───────────┴───────────┴──────────┘
Точность Абстрактность
Модели, находящиеся в начале спектра, часто называются 2физи-
2ческими 0 или натурными, потому что они внешне напоминают изучаемую
систему. Для удобств экспериментатора физическая модель может
быть 2масштабирована 0 - подвергнута уменьшению или величению,
Аналоговыми 0 моделями являются модели, в которых свойство ре-
льного объекта представляется некоторым другим свойством анало-
гичного по поведению объекта. Задача иногда решается путем замены
одного свойства другим, после чего полученные результаты надо ис-
толковывать применительно к исходным свойствам объекта. Аналого-
вая ЭВМ, в которой изменение напряжения в электрической схеме оп-
ределенной конфигурации может отображать поток товарок к некото-
рой системе, является превосходным примером аналоговой имитацион-
ной модели.
График представляет собой аналоговуюа модель другого типа;
здесь расстояние отображает такие характеристики объекта как вре-
мя, срок службы, количество единиц и т. д. График может также по-
казывать соотношение между различными количественными характерис-
тиками и может предсказывать, как будут изменяться некоторые ве-
личины при изменении других величин. Для некоторых относительно
простых случаев график может служить средством решения поставлен-
ной задачи. Часто применяются также аналоговые модели в виде
схем, описывающих взаимосвязи между элементами объекта.
По мере нашего продвижения по спектру моделей мы достигнем
- 3 -
тех из них, где во взаимодействие вступают люди и машинные компо-
ненты. Такое моделирование часто называют 2играми 0 (управленчески-
ми, военными, планировочными). Поскольку процессы принятия реше-
ний управленческим звеном или командным составом армии моделиро-
вать трудно, часто считают целесообразным отказаться от подобной
попытки. В так называемых правленческих (деловых) играх человек
взаимодействует с информацией, поступающей с выхода вычислитель-
ной машины (которая моделирует другие свойства системы), и прини-
мает решения на основе полученной информации.а Решения человека
затем снова вводятся и машину в качестве входной информации, ко-
торая используется системой. Продолжая этот процесса дальше, мы
приходима ка полностью 2машинному 0 моделированию, а которое обычно и
понимается под терминома "моделирование".а Вычислительная машина
можета быть компонентома всех имитационных моделей рассмотренной
части спектра, хотя это и не обязательно.
К 2символическим 0, или математическим, моделям относятся те, в
которыха для представления процесса или системы используются сим-
волы, а не физические стройства. Обычным примером представления
систем в этом случае можно считать системы дифференциальных рав-
нений. Поскольку они представляют собой наиболее абстрактныеа и,
следовательно, наиболее общие модели, математические модели нахо-
дят широкое применение в системных исследованиях. Однако примене-
ние математических моделей таит в себе весьма реальные опасности
и ловушки. Символическая модель является всегда абстрактной идеа-
лизацией задачи, и, если хотят, чтобы эта модель позволяла решить
задачу, необходимы некоторые прощающие предположения. Поэтому
особое внимание должно быть обращено на то, чтобы модель служила
действительным представлением данной задачи.
При моделировании сложной системы исследователь обычно вы-
нужден использовать совокупность нескольких моделей. Любая систе-
ма или подсистема может быть представлен различнымиа способами,
которые значительно отличаются друг от друга по сложности и дета-
лизации. В большинстве случаев в результате системных исследова-
ний появляются несколько различных моделей одной и той же систе-
мы. Но обычно по мере того, как исследователь глубже анализирует
и лучше понимает проблему, простые модели заменяются все более
- 4 -
сложными.
Достоинства и недостатки имитационного моделирования
Все имитационные модели представляют собой моделиа тип так
называемого "черного ящика". Это означает, что они обеспечивают
выдачу выходного сигнала системы, если н ее взаимодействующие
подсистемы поступает входной сигнал. Поэтому для получения необ-
ходимой информации или результатов необходимо осуществлять "про-
гон" имитационных моделей, а не "решать" их. Имитационные модели
не способны формировать свое собственное решение ва тома виде, в
каком это имеет место в аналитических моделях, а могут лишь слу-
жить в качестве средства для анализа поведения системы ва услови-
ях, которые определяются экспериментатором. Следовательно, имита-
ционное моделирование - не теория, а 2методология 0 решения проблем.
Более того, имитационное моделирование является только одним из
нескольких имеющихся в распоряжении системного аналитик важней-
ших методов решения проблем. Поскольку необходимо приспосабливать
средство или метод к решению задачи, а не наоборот, то возникает
естественныйа вопрос:а в каких случаях имитационное моделирование
полезно?
Мы определили имитационное моделирование как экспериментиро-
вание са моделью реальной системы. Необходимость решения задачи
путем экспериментирования становится очевидной, когд возникает
потребность получить о системе специфическую информацию, которую
нельзя найти в известных источниках. Непосредственное эксперимен-
тирование на реальной системе страняет много затруднений, если
необходимо обеспечить соответствие между моделью и реальными ус-
ловиями;а однако недостатки такого экспериментирования иногда
весьма значительны, поскольку:
1. Оно может нарушить становленный порядок работы объекта.
2. Если составной частью системы являются люди, то н ре-
зультаты экспериментов может повлиять так называемый хауторнский
эффект, проявляющийся в том, что люди, чувствуя, что за ними наб-
людают, могут изменить свое поведение.
3. Может оказаться сложным поддержание одних и теха рабочих.
- 5 -
условий при каждома повторении эксперимента или в течение всего
времени проведения серии экспериментов.
4. Для получения одной и той же величины выборки (и, следо-
вательно, статистической значимости результатов экспериментирова-
ния) могут потребоваться чрезмерные затраты времени и средств.
5. При экспериментировании с реальными системами можета ока-
заться невозможным исследование множества альтернативных вариан-
тов.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N 13
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
По этим причинам исследователь должен рассмотреть целесооб-
разность применения имитационного моделирования при наличии любо-
го из следующих словий:
1. Не существует законченной математической постановки дан-
ной задачи, либо еще не разработаны аналитические методы решения
сформулированной математической модели. К этой категории относят-
ся многие модели массового обслуживания, связанные с рассмотрени-
ем очередей.
2. Аналитические методы имеются, но математические процедуры
столь сложны и трудоемки, что имитационное моделирование даст бо-
лее простой способ решения задачи.
3. Аналитические решения существуют, но их реализация невоз-
можна вследствие недостаточной математической подготовки имеюще-
гося персонала. В этом случае следует сопоставить затраты на про-
ектирование, испытания и работу на имитационной модели с затрата-
ми, связанными с приглашением специалистов со стороны.
4. Кроме оценки определенных параметров, желательно осущест-
вить н имитационной модели наблюдение за ходом процесса в тече-
ние определенного периода.
5. Имитационное моделирование может оказаться единственной
возможностью вследствиеа трудностей постановки экспериментова и
наблюдения явлений в реальных словиях;а соответствующим примером
может служить изучение поведения космических кораблей в а условиях
межпланетных полетов.
6. Для долговременно действующих систем или процессова может
понадобиться сжатие временной шкалы.а Имитационное моделирование
дает возможность полностью контролировать время изучаемого про-
цесса, поскольку явление может быть замедлено или скоренно по
желанию.
Дополнительным преимуществом имитационного моделирования
можно считать широчайшие возможности его применения в сфере обра-
зования и профессиональной подготовки. Разработка и использование
имитационной модели позволяют экспериментатору видеть и "разыгры-
- 2 -
вать" на модели реальные процессы и ситуации. Это в свою очередь.
должно ва значительнойа мере помочь ему понять и прочувствовать
проблему, что стимулирует процесс поиска нововведений.
Когда руководитель достигает подлинного понимания проблемы и
начинаета свободно управлять своей моделью, он обретает способ-
ность видеть содержание своей работы с иных точек зрения. Он за-
хочета проверить н моделиа множество альтернативных вариантов,
чтобы оценить открывшиеся ему новые возможности По сути дол он
используета модель для повышения своего мастерства правления,
позволяющего ему на новом ровне четко становить все существен-
ные последствия вносимых в систему изменений. Возможно, он мог бы
проделать это и на реальной системе, но вследствие ее сложности
это было бы очень томительно и сопряжено с ошибками. Вот почему
он обращается к модели как к 2средству оценки 0 своиха новыха интуи-
тивных предположений и мозаключений.
Идея имитационного моделирования интуитивно привлекательна и
для руководителей, и для исследователей система благодаря своей
простоте.а Поэтому метода имитационного моделирования стремятся
применять для решения каждой задачи, с которой приходится сталки-
ваться. И хотя людям с высокой математической подготовкой имита-
ционный подход представляется грубым силовым приемом или послед-
ним средством, к которому следует прибегать, факт заключается в
том, что этот метод является распространенным инструментом в ру-
ках ченых.
Несмотря на недостаточное математическое изящество, имитаци-
онное моделирование является одним из наиболее широко распростра-
ненныха количественных методов, используемых при решении проблем
управления.а Большинство администраторов и исследователей заинте-
ресованы главным образом в решении своих неотложных задач, руко-
водствуясь девизом "цель оправдывает средства!". Но именно.забо-
т о применимостиа конечныха результатов побуждает нас задаться
вопросом: можно ли вообще опираясь на имитационное моделирование,
получить результаты также и наиболее эффективным способом?а Ответ
нередко будет отрицательным по следующим причинам:
1. Разработк хорошей имитационнойа модели часто обходится
дорого и требует много времени, а также наличия высокоодаренных
специалистов, которых данной фирме может и не оказаться.
- 3 -
2. Может показаться, что имитационная модель отражает реаль-
ное положение вещей, хотя в действительности это не так.а Если
этого не читывать, то некоторые свойственные имитации особеннос-
ти могут привести к неверному решению.
3. Имитационная модель в принципе не точна, и мы не в состо-
янии измерить степень этой неточности. Это затруднение может быть
преодолено лишь частично путем анализа чувствительности модели к
изменению определенных параметров.
4. Результаты, которые дает имитационная модель, обычно яв-
ляются численными, а их точность определяется количеством знаков
после запятой, выбираемым экспериментатором. В связи с этим воз-
никаета опасность "обожествления чисел", т.е. приписывания им
большей значимости, чем они на самом деле имеют.
Приведенные соображения показывают, что, хотя имитационное
моделированиеа является чрезвычайно ценным и полезным методом ре-
шения сложных задач, этот метод, конечно, не панацея для решения
всех проблем правления. Разработка и применение имитационных мо-
делей все еще в большей степени искусство, нежели наука. Следова-
тельно, как и в других видах искусства, спех или неудача опреде-
ляется не столько методом, сколько тем, как он применяется.
СТРУКТУРА ИМИТАЦИОННЫХ МОДЕЛЕЙ
Прежде чем начать разработку модели, необходимо понять, что
собой представляют структурные элементы, из которых она строится.
Хотя математическая или физическая структура модели может быть
очень сложной, основы ее построения весьма просты. В общем случае
структуру модели мы можем представить в виде
E = f(x 4i 0,y 4j 0),
где E - результат действия системы:а x 4i 0 - переменные и параметры,
которыми мы можем правлять; y 4j 0 - переменные и параметры, которы-
ми мы правлять не можем; f - 4 0функциональная зависимость между х 4i
и у 4j 0, которая определяет величину Е.
Столь явное и чрезмерное прощение полезно лишь тем, что оно
- 4 -
показывает зависимость функционирования системы как ота контроли-
руемых нами, так и от неконтролируемых переменных. Почти каждая
модель представляет собой, вообще говоря, некоторуюа комбинацию
таких составляющих, как
- структурные компоненты,
- переменные,
- параметры,
- функциональные зависимости,
- ограничения,
- целевые функции.
Под 2компонентами 0 мы понимаем составные части, которые при
соответствующема объединении образуют систему.а Иногда мы считаем
компонентами также элементы системы или ееа подсистемы. Система
определяется как группа или совокупность объектов, объединенных
некоторой формой регулярного взаимодействия или взаимозависимости
для выполнения заданной функции. Компоненты суть объекты, образу-
ющие изучаемую систему.
Параметры 0 суть величины, которые оператор, работающий на мо-
дели, может выбирать произвольно, в отличие от переменных, кото-
рые могута принимать только значения, определяемые видом данной
функции. Смотря на это под другим глом зрения, мы можем сказать,
что параметры, после того как они становлены, являются постоян-
ными величинами, не подлежащими изменению. Например, в равнении
y=3x число 3 есть параметр.
В модели системы мы различаем 2переменные 0 двух видов -а экзо-
генные и эндогенные. Экзогенные переменные называются также вход-
ными, это значит, что они порождаются вне системы или являются
результатома воздействия внешних причин.а Эндогенными переменными
называются переменные, возникающие в системе или ва результате
воздействия внутренних причин. Эндогенные переменные подразделя-
ются на переменные состояния (когда они характеризуюта состояние
или словия, имеющие место в системе) и выходные переменные (ког-
да речь идет о выходах системы). Статистики иногда называют экзо-
генные переменные независимыми, эндогенные - зависимыми.
- 5 -
Функциональные зависимости 0 описывают поведение переменныха и
параметрова ва пределах компонента или выражают соотношения между
компонентами системы.а Эти соотношения, или операционные характе-
ристики, по своей природе являются либо детерминистскими, либо
стохастическими.а Детерминистские соотношения 0 - это тождества или
определения, которые станавливают зависимость между определенны-
ми переменными или параметрами в тех случаях, когд процесса на
выходеа системы 2однозначно 0а определяется заданной информацией на
входе. В отличие от этого 2стохастические соотношения 0 представляют
собой такие зависимости, которые при заданной входной информации
дают на выходе неопределенный результат.а Об тип соотношений
обычно выражаются в форме математического равнения, которое с-
танавливает зависимость между эндогенными переменными (переменны-
ми состояния) и экзогенными переменными. Обычно эти соотношения
можно строить лишь на основе гипотез или выводить с помощью ста-
тистического или математического анализа.
Ограничения 0 представляют собой станавливаемые пределы изме-
нения значений переменных или ограничивающие словия распределе-
ния и расходования тех или иных средств (энергии, запасов, време-
ни и т. п.). Они могут вводиться либо разработчиком (искусствен-
ные ограничения), либо самой системой вследствиеа присущиха ей
свойств (естественные ограничения). Примерами искусственных огра-
ничений могут быть заданные максимальный и минимальный уровни за-
нятостиа рабочиха или а установленная максимальная сумма денежных
средств, ассигнуемых на капиталовложения.а В физической системе
такого типа, как ракета, искусственным ограничением может быть
заданный радиус действия или максимально допустимыйа вес. Боль-
шинство технических требований к системам представляет собой на-
бор искусственных ограничений. Естественные ограничения обуслов-
лены самой природой системы. Например, нельзя продать больше из-
делий, нем система может изготовить, и никто не может сконструи-
ровать систему, нарушающую законы природы. Таким образом, ограни-
чения одного типа обусловлены неизменными законами природы, в то
время как ограничения другого типа, будучи делом рук человечес-
ких, могут подвергаться изменению.а Исследователю весьм важно
помнить об этом, потому что в ходе своих исследований он должен
постоянно оценивать привнесенные человекома ограничения, са тем
чтобы ослабить или силить их по мере необходимости.
- 6 -
Целевая функция 0, или функция критерия, - это точное отобра-
жение целей или задач системы и необходимых правил оценки иха вы-
полнения. Обычно выделяют два типа целей: 2сохранение 0 и 2приобрете-
2ние 0.а Цели сохранения связаны с сохранением или поддержаниема ка-
ких-либо 2ресурсов 0 (временных, энергетических, творческих и т. д.)
или 2состояний 0 (комфорта, безопасности, уровня занятости н т. д.).
Цели приобретения связаны с приобретением новых ресурсов (прибы-
ли, персонала, заказчиков и т. п.) или достижением определенных
состояний, к которым стремится организация или руководитель (зах-
ват части рынка и т.п.).а Выражение для целевой функцииа должно
быть однозначныма определением целей и задач, с которыми должны
соразмеряться принимаемые решения.
Критерий 0 - это мерило оценки, правило или вид проверки, при
помощи которых составляется правильное суждение о чем-либо. Изб-
ранный критерий оказывает громадное влияние н процесса создания
модели и манипулирования с ней. Неправильное определение критерия
обычно ведет к неправильным заключениям. Функция критерия (целе-
вая функция) обычно является органической составной частью моде-
ли, и весь процесс манипулирования с моделью направлен на оптими-
зацию или довлетворение заданного критерия.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N 14
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
АНАЛИЗ И СИНТЕЗ
Даже небольшие участки реального мира слишком сложны, чтобы
человек смог их полностью понять и описать. Почти все проблемные
2ситуации чрезвычайно сложны и включают в себя почтиа бесконечное
2число элементов, переменных, параметров, соотношений, ограничений
2и т. д. 0 Пытаясь построить модель, мы могли бы включить в нее бес-
конечное число фактов и потратить йму времени, собирая мельчай-
шие факты, касающиеся любой ситуации, и станавливая связи между
ними.а Рассмотрим, например, простое действие, состоящее в том,
что вы берете лист бумаги и пишите на нем письмо. Ведь можно было
бы определить точный химический состав бумаги, карандашного гри-
феля и резинки, влияние атмосферных словий на влажность бумаги и
влияние последней на силу трения, действующую на острие каранда-
ша, движущегося по бумаге; исследовать статистическое распределе-
ние букв во фразах текста и т. д. Однако если единственный ас-
пект, который нас в данной ситуации интересует, это факт отправ-
ления письма, то ни одна из помянутых подробностей не относится
к делу. Следовательно, мы должны отбросить большую часть реальных
2характеристик изучаемого события и абстрагировать из реальной си-
2туации только те особенности, которые воссоздают идеализированный
2вариант реального события. 0 Все модели суть упрощенные представле-
ния реального мира или абстракции. Если они выполнены корректно,
то эти идеализации дают нам полезноё приближенное отображение ре-
льной ситуации или по крайней мере ее определенных особенностей.
Сходство модели с объектом, который она отображает, называ-
ется 2степенью изоморфизма 0. Для того чтобы быть изоморфной (т. е.
идентичной или сходной по форме), модель должн удовлетворять
двум словиям.
Во-первых, должно существовать взаимно однозначное соответс-
твие между элементами модели и элементами представляемого объек-
та. Во-вторых, должны быть сохранены точные соотношения или взаи-
модействия между элементами. Степень изоморфизма модели относи-
- 2 -
тельна, и большинство моделей скорее гомоморфны, чем изоморфны.
Пода 2гомоморфизмом 0 мы понимаем сходство по форме при различии ос-
новных структур, причем имеет место лишь поверхностное подобие
между различными группами элементов модели и объекта. Гомоморфные
модели являются результатом процессов прощения и абстракции.
Для разработки идеализированной гомоморфной модели мы обычно
разбиваем систему на некоторое число более мелких частей. Это де-
лается для того, чтобы должным образом интерпретировать их, т. е.
произвести требуемый анализ задачи. Такой способ действий зависит
от наличия частей или элементов, которые в первом приближении не
зависят друг от друга или взаимодействуют между собой относитель-
но простым образом.а Так, мы можем пронализировать режим работы
втомашины, проверяя последовательно двигатель, коробку передач,
привод, систему подвески и т. д., хотя эти злы не полностью не-
зависимы.
С такого род анализом при построении модели близко связан
процесс прощения реальной системы (пода упрощениема понимается
пренебрежение несущественными деталями или принятие предположений
о более простых соотношениях). Например, мы часто предполагаем,
что между двумя переменными имеет место линейная зависимость, хо-
тя можем подозревать или даже знать, что истинная зависимость
между ними нелинейна.а Мы предполагаем, что по крайней мере в ог-
раниченном диапазоне значений переменных такое приближение будет
удовлетворительным.а Инженер-электрика работает с моделями цепей,
предполагая, что резисторы, конденсаторы и т. д. не изменяют сво-
их параметров;а это упрощение, потому что мы знаем, что электри-
ческие характеристики этих компонентов изменяются зависимости
от температуры, влажности, срока службы и т. д.
Ученый, изучающий проблемы правления, для построения полез-
ных моделей также прибегает к прощению. Он предполагает, что его
переменные либо детерминированы (чрезвычайно прощенная трактовка
реальности), либо подчиняются законам случайных событий, описыва-
емыма известными вероятностными функциями распределений, таких,
как нормальное, пуассоновское, экспоненциальное и т. д. Он также
зачастуюа предполагает, что зависимости между переменными носят
- 3 -
линейный характер, зная, что такое допущение не совсем правомер-
но.
Другим аспектом анализа является абстракция - понятие, кото-
рое в отличие от прощения не так легко объяснить и осмыслить.
Абстракция 0а содержита или сосредоточивает в себе существенные ка-
чества или черты поведения объекта, но не обязательно ва той же
форме и столь детально, как это имеет место в оригинале. Боль-
шинство моделей - это абстракции в том смысле, что они стремятся
представить качеств и поведение моделируемого объекта в форме
или способом, отличающимся от их действительной реализации. Так,
ва схеме организации работ мы пытаемся в абстрактной форме отра-
зить трудовые взаимоотношения между различными группами работаю-
щиха или отдельными членами таких групп. То обстоятельство, что
подобная схема только поверхностно отображает реальные взаимоот-
ношения, не маляет ее полезности для определенных целей.
После того кака мы пронализировали и промоделировали части
или элементы системы, мы приступаем к их объединению в единое це-
лое. Иными словами, мы можем путем 2синтеза 0 относительно простых
частей сконструировать некоторое приближение к сложнойа реальной
ситуации. Здесь важно предусмотреть два момента.а Во-первых, ис-
пользуемые для синтеза части должны быть выбраны корректно, и,
во-вторых, должно быть корректно предсказано их взаимодействие.
Если все это выполнено должным образом, то эти процессы анализа,
бстракции, прощения и синтеза в итоге приведут к созданию моде-
ли, которая аппроксимирует поведение изучаемой реальной системы.
Необходимо помнить, однако, что модель является только приближе-
нием, а поэтому не будет себя вести в точности как реальный объ-
ект. Мы оптимизируем модель, но не реальную систему. Вопрос о
том, существует ли действительно взаимосвязь между характеристи-
ками нашей модели и реальностью, зависит от того, 2насколько пра-
2вильно и разумно мы провели наши процессы анализа, абстракции,
2упрощения и синтеза.
.
- 4 -
ИСКУССТВО МОДЕЛИРОВАНИЯ
Процесс, при помощи которого инженер, занимающийся системами,
или ченый, исследующий вопросы правления, создает модель изуча-
емой им системы, может быть лучше всего определен как 2интуитивное
2искусство 0.а Любой набор правил для разработкиа моделей ва лучшем
2случае имеет ограниченную полезность и может служить лишь предпо-
2ложительно в качестве каркаса будущей модели или отправного пунк-
2та в ее построении. 0а При попытке выразить процесс моделирования в
точных терминах мы стремимся систематизировать знания, основанные
н интуиции и опыте тех, кто ранее занимался моделированием. К
сожалению, результаты всех научных исследований излагаются и со-
общаются нама в форме логической реконструкции событий, имеющей
целью оправдать смысл полученных результатов. Эта логическая ре-
2конструкция имеета мало общего со способом, при помощи которого
2исследования проводились в действительности. 0а Ни в однома научном
отчете вы не найдете описаний фальстартов, ошибочных предположе-
ний, принятых и затем отвергнутых, разочарований, вызванных ошиб-
ками, и внезапных озарений. В таких отчетах или статьях приводит-
ся только последовательность событий и объяснение того, 2кака бы
2теперь поступил исследователь 0, пользуясь своими 2ретроспективными
знаниями и знанием конечного результата.
Конечно, для неопытного разработчика моделей опасность зак-
лючается в том, что, не находя в литературе ничего, за исключени-
ема логически построенных ретроспективных описаний, он принимает
их за описание процесса открытия. Затем, когда он видит, что дела
идут вовсе не так, как говорится в книгах, он легко теряет ве-
ренность в себе, и его охватывает разочарование.а Опытный разра-
2ботчик моделей знает, что мыслительные процессы, связанные с раз-
2работкой модели, значительно отличаются от того, что написано об
2этом в учебниках и литературе.
По-видимому, 2основой успешной методики моделирования должна
2быть тщательная отработка моделей. Обычно, начав с очень простой
2модели, постепенно продвигаются к более совершенной ее форме, от-
2ражающей сложную ситуацию более точно. 0а Аналогии иа ассоциации с
хорошо построенными структурами, по-видимому, играют важную роль
в определении отправной точки процесса совершенствования и отра-
ботки деталей.а Этот процесс связан с четом взаимодействия и об-
- 5 -
ратной связи между реальной ситуацией и моделью. Между процессом
модификации модели и процессом обработки данных, генерируемых ре-
льным объектом, имеет место непрерывное взаимодействие. По мере
проведения испытаний и оценки каждого варианта модели возникает
новый вариант, который приводит к повторным испытаниям и перео-
ценкам.
До тех пор пока модель поддается математическому описанию,
налитика может добиваться все больших ее лучшений или сложнять
исходные предположения. Когда же модель становится "непослушной",
т.е. неразрешимой, разработчик прибегает к ее прощению и исполь-
зованию более глубокой абстракции.
Таким образом, искусство моделирования состоит в способности
2анализировать проблему, выделять из нее путем абстракции ее су-
2щественные черты, выбирать и должным образом модифицировать ос-
2новные предположения, характеризующие систему, затем отрабаты-
2вать и совершенствовать модель до тех пор, пока она не станет да-
2вать полезные для практики результаты. 0 Разработчику модели надле-
жит:
- разложить общую задачу исследования системы н ряда более
простых задач,
- четко сформулировать цели,
- подыскать аналогии,
- рассмотреть специальный численный пример, соответствующий
данной задаче,
- выбрать определенные обозначения,
- записать очевидные соотношения,
- если полученная модель поддается математическому описанию,
расширить ее. В противном случае простить.
Вообще говоря, упростить модель можно, выполнив одну из пе-
речисленных ниже операций (в то время как для расширения модели
требуется как раз обратное):
- превратить переменные величины в константы;
- исключить некоторые переменные или объединить их;
- предположить линейную зависимость между исследуемыми величи нами;
- ввести более жесткие предположении и ограничения;
- наложить на систему более жесткие граничные словия.
- 6 -
Эволюционный характера процесса конструирования модели неиз-
2бежен и желателен, 0а поэтому мы не должны думать, что этот процесс
сводится к построению одного-единственного базового варианта мо-
дели. По мере того как достигаются цели и решаются поставленные
задачи, ставятся новые задачи либо возникает необходимость дости-
жения большего соответствия между моделью иа реальныма объектом,
что приводита ка пересмотру модели и все лучшим ее реализациям.
Этот процесс, при котором начинают с построения простой модели, а
затем сложняют и отрабатывают ее, имеет ряд преимуществ с точки
зрения спешного завершения разработки модели. Темп и направление
эволюционного изменения модели зависят от двух главных факторов.
Первый из них - это, очевидно, присущая модели гибкость, и второй
2- взаимоотношения между создателем модели и ее пользователем. 0 При
их тесном сотрудничестве в течение всего процесса эволюции модели
ее разработчик и пользователь могут создать атмосферуа взаимного
доверия и взаимоотношения, которые будут способствовать получению
конечных результатов, довлетворяющих поставленным целям, задачам
и критериям.
Искусством моделирования могута овладеть те, кто обладает
оригинальным мышлением, изобретательностью и находчивостью, равно
как и глубокими знаниями систем и физических явлений, которые не-
обходимо моделировать.
Не существуета твердых и эффективных правил относительно то-
2го, как надо формулировать задачу в самом начале процесса модели-
2рования, т.е. сразу же после первого знакомства с ней. 0 Не сущест-
вуета и магических формул для решения при построении модели таких
вопросов, как выбор переменных и параметров, соотношений, описы-
вающих поведение системы, и ограничений, также критериев оценки
эффективности модели.а Помните, что 2никто не решает задачу в чис-
2том виде, каждый оперирует с моделью, которую он построил, исходя
2из поставленной задачи. 0
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N 15
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
ТРЕБОВАНИЯ К "ХОРОШЕЙ" МОДЕЛИ
Мы определили имитацию как процесс создания моделиа реальной
системы и проведения с этой моделью экспериментов с целью осмыс-
ления поведения системы или оценки различныха стратегий, которые
могута использоваться при управлении системой. Это определение
подсказывает ряд существенных черт, которыми должна обладать хо-
рошая имитационная модель, и станавливает границы ее использова-
ния. Согласно этому определению, модель должна быть
а - связана с функционированием системы;
- ориентирована на решение проблем реального мира;
- построена так, чтобы служить подспорьем тем, кто правляет
системами.
Имитация тесно связана с функционированием системы.а Система
есть группа или совокупность объектов, объединенныха какой-либо
формойа регулярного взаимодействия или взаимозависимости с целью
выполнения определенной функции.
Примерами система могут быть:а система оружия, промышленное
предприятие, организация, транспортная сеть, больница, проект
застройки города, человек и машина, которой он правляет. Функци-
онирование системы представляет собой совокупность координирован-
ных действий, необходимых для выполнения определенной задачи. С
этой точки зрения системам, которыми мы интересуемся, свойственна
целенаправленность. Это обстоятельство требует от нас при модели-
ровании системы обратить самое пристальное внимание н целиа или
задачи, которые должна решать данная система. Мы должны постоянно
помнить о задачах системы и модели, чтобы достичь необходимого
соответствия между ними.
Поскольку имитация связана са решениема реальныха задач, мы
должны быть уверены, что конечные результаты точно отражают ис-
тинное положение вещей.а Следовательно, модель, которая может нам
дать абсурдные результаты, должна быть немедленно взята под по-
дозрение. Любая модель должна быть оценена по максимальным преде-
лама изменений величины ее параметров и переменных.а Модель также
должна быть способна отвечать на вопросы типа "а а что, если...",
поскольку это именно те вопросы, которые для нас наиболее полез-
- 2 -
ны, так как они способствуют более глубокому пониманию проблемы и
поиску лучших способов оценки наших возможных действий.
Наконец, всегда следует помнить о потребителеа информации,
которую позволяет получить наша модель. Нельзя оправдать разра-
2ботку имитационной модели, если ее в конечном счете нельзя ис-
2пользовать или если она не приносит пользу лицу, принимающему ре-
2шения.
Потребителем результатова может быть лицо, ответственное за
создание системы или з ее функционирование;а другимиа словами,
2всегда должен существовать пользователь модели 0- в противном слу-
чае мы попусту потратим время и силы. Поиски знания ради самого
знания - дело весьма благородное, но мало найдется руководителей,
которые будут в течение продолжительного времени оказывать под-
держку группам ученых, занятых исследованием операций, теорией
управления или системным анализом, если результаты их работы не
смогут найти практического применения.
Приняв во внимание все это, мы можем сформулировать конкрет-
ные критерии, которым должна довлетворять хорошая модель. Такая
модель должна быть:
- простой и понятной пользователю,
- целенаправленной,
- надежной в смысле гарантии от абсурдных ответов,
- добной в управлении и обращении, т. е.а общение са ней
должно быть легким,
- полной с точки зрения возможностей решения главных задач,
- адаптивной, позволяющей легко переходить к другим модифи-
кациям или обновлять данные,
- допускающей постепенные изменения в том смысле, что, буду-
чи вначале простой, она может во взаимодействии c пользователем
становиться все более сложной.
Необходимость большинства этих критериев совершенно очевид-
на, но ониа будут рассмотрены более полно в последующих главах,
посвященных вопросам организации и руководства работами по моде-
лированию. Здесь же достаточно сказать следующее: для того чтобы
моделью можно было пользоваться, при ее разработке должны быть
тщательно продуманы и потребности, и психология ее конечного пот-
ребителя. Имитационное моделирование должно быть процессом обуче-
ния -а кака для создателя модели, так и для ее пользователя. И
действительно, это может стать самой привлекательной стороной
имитации при применении ее для решения сложных задач.
- 3 -
ПРОЦЕСС ИМИТАЦИИ
Исходя из того что имитация должна применяться для исследо-
вания реальных систем, можно выделить следующие этапы этого про-
цесса:
1. Определение системы - становление границ, ограничений и
измерителей эффективности системы, подлежащей изучению.
2. Формулирование модели - переход от реальной системы к не-
которой логической схеме (абстрагирование).
3. Подготовка данных-отбор данных, необходимых для построе-
ния модели, и представление их в соответствующей форме.
4. Трансляция модели-описание модели на языке, приемлемом
для используемой ЭВМ.
5. Оценк адекватностиа -а повышение до приемлемого ровня
степени веренности, с которой можно судить относительно коррект-
ности выводов о реальной системе, полученных на основании обраще-
ния к модели.
6. Стратегическое планирование - планирование эксперимента,
который должен дать необходимую информацию.
7. Тактическое планирование - определение способа проведения
каждой серии испытаний, предусмотренных планом эксперимента.
8. Экспериментирование -а процесса осуществления имитации с
целью получения желаемых данных и анализа чувствительности.
9. Интерпретация - построение выводов по данным, полученным
путем имитации.
10. Реализация - практическое использование модели и резуль-
татов моделирования.
а 11. Документирование-регистрация хода осуществления проекта
и его результатов, а также документирование процесса создания и
использования модели.
Перечисленные этапы создания и использования модели опреде-
лены в предположении, что задача может быть решена наилучшим об-
разом с помощью имитационного моделирования. Однако, как мы же
отмечали, это может быть и не самый эффективный способ. Неоднок-
ратно казывалось, что имитация представляет собой крайнее средс-
тво или грубый силовой прием, применяемый для решения задачи. Не-
сомненно, что ва том случае, когда задача может быть сведена к
- 4 -
простой модели и решена аналитически, нет никакой нужды в имита-
ции. Следуета изыскивать все возможные средства, подходящие для
решения данной конкретной задачи, стремясь при этом к оптимально-
му сочетанию стоимости и желаемых результатов. Прежде чем присту-
пать к оценке возможностей имитации, следуета самому убедиться,
что простая аналитическая модель для данного случая не пригодна.
Поскольку необходимо и желательно подобрать для решения за-
дачиа соответствующие средства, решение о выборе того или иного
средства или метода должно следовать з формулированиема задачи.
Решение оба использовании имитации не должно рассматриваться как
окончательное. По мере накопления информации и глубления понима-
ния задачи вопроса о правомерности применения имитации следует
подвергать переоценке. Поскольку для этого часто требуются мощные
ЭМа и большие выборки данных, издержки, связанные с имитацией,
почти всегда высоки по сравнению са расходами, необходимыми для
решения задачи на небольшой аналитической модели. Во всех случаях
2следует сопоставлять возможные затраты средств и времени, потреб-
2ные для имитации, с ценностью информации, которую мы ожидаем по-
2лучить.
Проектирование модели начинается обычно с того, что какойли-
бо сотрудник организации приходит к выводу о возникновении проб-
лемы, которая нуждается в изучении. Для проведения предваритель-
ных исследований выделяется соответствующий работника (обычно из
группы, связанной с данной проблемой). На некотором этапе призна-
ется, что для изучения проблемы могут быть полезны количественные
методы исследования, и тогда на сцене появляется математик.а Так
начинается этап определения и постановки задачи.
ПОСТАНОВКА ЗАДАЧИ И ОПРЕДЕЛЕНИЕ ТИПА МОДЕЛИ
Эйнштейн как-то сказал, что правильная постановка задачи да-
же более важна, чем ее решение. Для того чтобы найти приемлемое
или оптимальное решение задачи, необходимо сначала знать, в чем
она состоит. Как это ни покажется странным, слишком много ученых,
занимающихся проблемами правления, полностью игнорируют очевид-
ные факты. Ежегодно расходуются миллионы долларов, чтобы получить
изящные и хитроумные ответы на некорректно поставленные вопросы.
В отличие от примеров, приводимых в учебниках, большинство
2практических задач сообщается руководителям научно-исследователь-
- 5 -
2ских подразделений в недостаточно четкой, неточной форме. 0 Во мно-
гиха случаях руководство не может или не способно правильно выра-
зить суть своих проблем, 0но знает, что некая проблема существу-
ет, но не может точно сформулировать, какая это проблема. Поэтому
2анализ системы обычно начинается са поискового изучения системы
2пода руководством ответственного лица, уполномоченного принимать
2решения.а Исследовательская группа должна понимать и четко форму-
2лировать ряд подходящих к данному случаю задач и целей. 0а Опыт по-
казывает, что 2постановка задачи есть непрерывный процесс 0, прони-
зывающий весь ход исследования. Это исследование непрерывно по-
рождает новую информацию, касающуюся ограничений, задач и возмож-
ных альтернативных вариантов. Такая информация должна периодичес-
ки использоваться в целях обновления формулировкиа и постановки
задачи.
Важной частью постановки задачи является определениеа харак-
2теристик системы, подлежащей изучению. Все системы - это подсис-
2темы других более крупных систем. Поэтому мы должны определить
2цели и ограничения, которые нам надлежит читывать в процессе
2абстрагирования или построения формальной модели. 0а Любая проблема
можета быть определена как состояние неудовлетворенной потребнос-
ти. Ситуация становится проблемной, когд действиеа какой-либо
системы не дает желаемых результатов.
Если желаемые результаты не достигаются, возникаета потреб-
ность модифицировать систему или окружающие словия, в которых
она функционирует.а Математически мы можема определить проблему
следующим образом:
P 4t 0 = │ D 4t 0-A 4t 0 │,
где P 4t 0а -а состояние проблемы в момент времени t, D 4t 0 - желаемое
состояние в момент времени t, A 4t 0 - действительное состояние в мо-
мент времени t.
Поэтому первый шаг в определении характеристик системы, под-
лежащейа изучению, состоит в проведении анализа потребностей той
среды, для которой предназначается система. Этот анализ начинает-
ся с определения целей и граничных словий (т. е. того, что явля-
ется, что не является частью системы, подлежащей изучению). Нас
интересуют здесь две функциональные границы, или два интерфейса:
граница, отделяющая нашу проблему от всего остального мира, и
граница между системой и окружающей средой (т. е. что мы считаем
- 6 -
составной частью системы и что составляет среду, ва которой эта
систем работает). Мы можем описать, что происходит в пределах
2самой системы, разными способами. Если бы мы не остановились на
2каком-то наборе элементов и взаимосвязей, которые надлежит изу-
2чить, имея в виду вполне определенную цель, перед нами было бы
2бесконечное число связей и сочетаний.
Очертив цели и задачи исследования и определив границы сис-
темы, мы далее сводим реальную систему к логической блоксхеме или
к статической модели.а Мы хотим построить такуюа модель реальной
системы, которая, с одной стороны, не будет столь прощена, что
станет тривиальной, а с другой - не будет столь детализирована,
что станет громоздкой в обращении и чрезмерно дорогой. Опасность,
которая подстерегает нас при построении логической блок-схемы ре-
льно действующей системы, заключается в том, что модель имеет
тенденцию обрастать деталями и элементами, которые поройа ничего
не вносят в понимание данной задачи.
Поэтому почти всегда наблюдается тенденция имитировать избы-
точное число деталей. Во избежание такого положения следует стро-
ить модель, ориентированную на решение вопросов, на которые тре-
буется найти ответы, а не имитировать реальную систему во всех
подробностях.а Закон Парето гласит, что в каждой группе или сово-
2купностиа существуета жизненно важноеа меньшинство и тривиальное
2большинство.а Ничего действительно важного не происходит, пока не
2затронуто жизненно важное меньшинство. 0а Системные аналитики слиш-
ком часто стремились перенести все сугубленные деталями сложнос-
ти реальных ситуаций в модель, надеясь, что ЭВМ решит их пробле-
мы. Такой подход неудовлетворителен не только потому, что возрас-
таюта трудности программирования модели и стоимость длиняющихся
экспериментальных прогонов, но и потому, что действительно важные
спекты и взаимосвязи могут потонуть в массе тривиальных деталей.
Вот почему модель должна отображать только теа аспекты системы,
которые соответствуют задачам исследования.
Во многих исследованиях моделирование может н этома закон-
читься. В удивительно большом числе случаев в результате точного
и последовательного описания ситуаций становятся очевиднымиа де-
фекты и "узкие" места системы, так что необходимость продолжать
исследования с помощью имитационных методов отпадает.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ 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%_на.реализацию.
Документирование близко связано с реализацией. Тщательное и
полноеа документирование процессов разработки и экспериментирова-
ния с моделью может значительно величить срок ее жизни и вероят-
ность спешной реализации. Хорошо организованное документирование
облегчает модификацию модели и обеспечиваета возможность ее ис-
пользования, если даже служб, занимавшихся разработкой модели,
больше не существует.а Кроме этого, тщательная документация может
помочь разработчику модели читься на своих ошибках и, быть мо-
жет, послужит источником для создания подпрограмм, которые будут
снова использованы в будущих проектах.