Прикладное программирование, 1 семестр

       ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ

                       ЛЕКЦИЯ N1 (ВВОДНАЯ)

                          I. ОРГВОПРОСЫ

     1. Списки групп

     2. Расписание занятий

             II. ПРОБЛЕМЫ СИСТЕМЫ ОБРАЗОВАНИЯ РОССИИ

     Денег на систему образования у государства нет и не будет:

     - проблемы обеспечения учебного процесса литературой, техни-

кой и  т.д.  в  конечном  итоге будут так или иначе переложены на

плечи студентов - они вынуждены будут сами себе покупать книги  и

даже компьютеры;

     - возможна реформа системы  образования  с  непредсказуемыми

последствиями;

     - возможна (замаскированная) ликвидация бесплатного  образо-

вания вообще.

          III. ПРОБЛЕМЫ МИРОВОЙ КОМПЬЮТЕРНОЙ ИНДУСТРИИ

     Западная экономика построена по принципу совместного функци-

онирования двух систем: планирующей (для крупных фирм) и рыночной

(для мелких фирм и частных лиц). Планирующая система является до-

минирующей - она диктует цены рыночной системе.

     В планирующей системе не действуют законы рынка:

     - она может произвольным образом устанавливать цены на това-

ры и услуги;

     - может навязывать потребителю любой товар ("промывая мозги"

при помощи рекламы);

     - кризисы перепроизводства почти не затрагивают планирующую-

щую систему  - все издержки она может переложить на рыночную сис-

тему, которая, в конечном итоге, всегда платит за ошибки планиру-

ющей системы.

     Фирмы Intel,  IBM и Microsoft явно принадлежат к планирующей

системе и пользуются всеми ее преимуществами.  Однако их деятель-

ность явно вызывает кризис в мировой компьютерной индустрии.

     Архитектура компьютеров  IBM  AT  и  микропроцессоров  Intel

принципиально устарела. Система Windows стала сверхуниверсальной,

что приводит к чрезвычайному замедлению работы компьютеров.

     За кризис  в  конечном  итоге  расплатится рыночная система,

т.е. потребители.

                IV. ПРАВИЛА РАБОТЫ С ЛИТЕРАТУРОЙ

     Книги стоят дорого! Как найти хорошую книгу среди тысяч пос-

редственных?

     1. Хорошая  книга обычно написана от первого лица,  посредс-

твенная - от третьего.

     2. Признак явной халтуры - отсутствие картинок (т.е.  образ-

ных моделей).

     3. Следует  избегать  книг с названием "учебник" и книг "для

чайников". Обычно учебники пишут теоретики - люди,  полностью от-

резанные от реальности и практических навыков по рассматриваемому

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

ющие изучать описываемые ими вопросы.

     Проблемы: хорошие  книги  обычно  издаются малыми тиражами и

дорого стоят.

                  V. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

     1. Что такое модель?

     Модель -  это нечто,  чем можно заменить физический объект в

процессе эксперимента.

     2. Зачем нужна модель?

     Экспериментировать с физическим объектом может быть  дорого,

неудобно или опасно.

     3. Зачем нужно имитационное моделирование?

     Когда задача имеет слишком большую размерность или не подда-

ется решению в явном виде по каким-то другим причинам, используют

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

     4. Профессиональные тренажеры и компьютерные игры.

                      VI. МАШИННАЯ ГРАФИКА

     1. Компьютерная  графика  позволяет  наглядно отображать ре-

зультаты моделирования.

     2. Технический  прогресс позволил упростить работу с памятью

компьютеров. На аппаратном уровне оперативная, графическая и дис-

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

     3. Организация видеопамяти.  Рисование точки. Рисование ста-

тической картинки.  Рисование буквы. Рисование плоских движущихся

изображение.

       ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ

                            ЛЕКЦИЯ N2

                    I. ОРГАНИЗАЦИЯ ВИДЕОПАМЯТИ

              1. Восьмибитовый режим (256 цветов).

             1.1. Режим с разрешением 320х200 точек.

     Линейное адресное пространство 64 кб (адреса A0000h-AFFFFh).

Используется таблица  цветов - можно выбрать 256 из 2 518 0 возможных

оттенков.

    1.2. Режимы с более высоким разрешением и стандарт VESA.

     Возможна либо  страничная  адресация через сегменты по 64 кб

(по адресу A0000h-AFFFFh),  либо линейная адресация  пространства

объемом до 64 Мб (по адресу E0000000h-E3FFFFFFh).

            2. 24- и 32-битовый режимы (True color).

     Возможна либо  страничная  адресация через сегменты по 64 кб

(по адресу A0000h-AFFFFh),  либо линейная адресация  пространства

объемом до 64 Мб (по адресу E0000000h-E3FFFFFFh).

                    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

                  ПЕРЕНОС И ПОВОРОТ ИЗОБРАЖЕНИЯ

            2Перенос и поворот в двумерном пространстве

     Перенос точки 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 -

            2Перенос и поворот в трехмерном пространстве

     Перенос точки 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

            РИСОВАНИЕ ЛИНИЙ, ОКРУЖНОСТЕЙ И ЭЛЛИПСОВ.

                     ЗАЧЕМ ЭТО НУЖНО ЗНАТЬ?

     Основной недостаток всех универсальных графических библиотек

- медленная работа (универсальная система всегда значительно  ус-

тупает по производительности специализированной).

     Использование чужой библиотеки всегда сопровождается серьез-

ным риском:

     - программы библиотеки могут содержать ошибки, которые вы не

можете исправить (исходные коды программ обычно не поставляются);

     - возможны ошибки в документации на библиотеку (либо  просто

неточное описание ее функционирования);

     - в продажу,  как правило,  поступают уже сильно  устаревшие

библиотеки  - фирмы-разработчики не нуждаются в конкуренции с ва-

шей стороны.  Покупка чужой технологии всегда приводит к техноло-

гическому отставанию  - вы сами себя изгоняете с рынка за свои же

собственные деньги;

     - разработчик  библиотеки  в любой момент может перестать ее

развивать;

     - в компьютерной промышленности периодически происходят кри-

зисы, уничтожающие целые классы ("ряды") морально устаревших  вы-

числительных машин.  Заменяющие  их принципиально новые системы в

течение нескольких лет могут не иметь  необходимого  программного

обеспечения.

     Проектировщики систем управления постоянно имеют дело с  но-

вейшей аппаратурой,  и  часто  вынуждены  сами  создавать для нее

программное обеспечение.

.

                                - 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

                        2РИСОВАНИЕ ЭЛЛИПСОВ

     Современные микропроцессоры,  используемые  в   персональных

ЭВМ, включают  в  себя  быстродействующие  блоки для вычислений с

плавающей запятой. Это позволяет рассчитывать любые эллипсы.

     Однако ненаклонные  эллипсы можно достаточно быстро прорисо-

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

эллипс описывается уравнением:

                          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 -

      2ПРЯМАЯ РАБОТА С ПАМЯТЬЮ В СОВРЕМЕННЫХ ВИДЕОКОНТРОЛЛЕРАХ

     Вообще говоря,  изобилие  видеорежимов  является результатом

несогласованной и непродуманной технической и маркетинговой поли-

тики фирм-изготовителей аппаратуры. Фирмы просто не смогли вовре-

мя выработать общий стандарт, что и породило хаос.

     Само по  себе  использование данных ПЗУ видеокарты для прог-

раммирования режимов работы той же карты является  грубым  техни-

ческим просчетом  - гораздо рациональнее было бы возложить проце-

дуру переключения режимов не на основной процессор,  а  на  собс-

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

     Кроме того,  со времени разработки первых видеокарт для  IBM

PC в  конструкции видеокарт сохранилось множество нелепых анахро-

низмов, что делает невозможным прямое управление  работой  видео-

карты на аппаратном уровне.

     Для обеспечения нормальной работы видеокарты в режимах  SVGA

встроенная в  карту  микросхема видео-BIOS должна соответствовать

стандарту VESA  v2.0 или более позднему.  Ранние версии стандарта

VESA не поддерживали режимы True Color и прямую адресацию  видео-

памяти.

                       2Установка видеорежима

     Видеорежим устанавливается  вызовом прерывания 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 -

                      2Выбор окна видеопамяти

     Вследствие ошибки,  допущенной еще при разработке процессора

Intel 8086, вся размещенная на видеокарте память оказалась разде-

ленной на кусочки размером по 64 кб - так называемые  "окна"  или

"страницы".  Процессору  в  каждый момент времени доступно только

одно такое окно,  и для доступа к другому требуется вызвать прог-

рамму видео-BIOS,  переключающую окна (на аппаратном уровне такое

переключение выполнить сложно - видеокарты разных фирм используют

для этого регистры с разными номерами).

     Например, в режиме TrueColor 640x480 при четырехбайтовой ко-

дировке цвета точки одному кадру соответствует 1228800 байт памя-

ти, или 18,75 страниц по 64 кб.

     Переключение номера  активного  (доступного процессору) окна

выполняется вызовом прерывания 10h с номером функции 4F05h. В ре-

гистр BH нужно записать 0,  в регистр DX - номер окна.  Само окно

будет размещено по адресу A0000h.

     Например, нужно обратиться к данным в девятом окне:

     mov   AX,A000h

     mov   ES,AX

     mov   AX,4F05h

     mov   BH,0

     mov   DX,9

     int   10h

            2Установка логической длины строки развертки

     Страницы видеопамяти отображаются на экран  последовательно,

друг за  другом.  При этом на экран отображается только некоторая

часть видеопамяти.  Другая, невидимая часть, может использоваться

как вспомогательная:  для  "прокрутки" изображения,  для хранения

шрифтов и масок, для 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

                      2ОРГАНИЗАЦИЯ ВИДЕОПАМЯТИ

              2Организация памяти в режиме True Color

     Каждый пиксел описывается четырьмя байтами данных - по одно-

му для задания интенсивности каждого из основных  цветов  и  один

резервный - для "выравнивания" длины передаваемых данных на 2 5N 0:

             31     24 23     16 15     8   7     0

             ┌┬┬┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐

             └┴┴┴┴┴┴┴┘ └┴┴┴┴┴┴┴┘ └┴┴┴┴┴┴┴┘ └┴┴┴┴┴┴┴┘

                 3         2         1         0

             резервный  красный   зеленый    синий

              (ноль)

        2Пограммирование таблицы цветов в 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териев) различные стратегии, обеспечивающие функционирование дан-

 2ной системы.

     Таким образом,  процесс имитационного моделирования мы пони-

маем как процесс, включающий и конструирование модели, и аналити-

ческое применение модели для изучения некоторой проблемы. Под мо-

делью реальной  системы мы понимаем представление группы объектов

или идей в некоторой форме,  отличной от их реального воплощения.

Термин "реальный" используется в смысле "существующий или способ-

ный принять одну из форм  существования".  Системы,  существующие

еще только на бумаге или находящиеся в стадии планирования, могут

моделироваться так же, как и действующие системы.

     Согласно нашему определению, термин имитационное моделирова-

ние может также охватывать стохастические модели и эксперименты с

использованием метода Монте-Карло.  Иными словами, входы модели и

функциональные соотношения между ними могут содержать,  а могут и

не содержать элемент случайности, подчиняющийся вероятностным за-

конам. Более того, мы не ограничиваем наше определение имитацион-

ного моделирования лишь экспериментами, проводимыми с помощью ма-

шинных моделей.  Много полезных видов имитационного моделирования

может быть осуществлено всего лишь при помощи карандаша  и  листа

бумаги.

     Имитационное моделирование  является   экспериментальной   и

прикладной методологией, имеющей целью:

     - описать поведение систем;

     - построить теории и гипотезы,  которые могут объяснить наб-

       людаемое поведение;

     - использовать  эти теории для предсказания будущего поведе-

       ния системы, т.е. тех воздействий, которые могут быть выз-

       ваны изменениями в системе  или  изменениями  способов  ее

       функционирования.

     В отличие от большинства технических методов,  которые могут

быть классифицированы в соответствии с научными  дисциплинами,  в

которые они уходят своими корнями (например,  с физикой или хими-

ей), имитационное моделирование применимо в любой отрасли науки.

                                - 3 -

     Для моделирования системы нам необходимо  поставить  искусс-

твенный эксперимент, отражающий основные условия моделируемой си-

туации. Для этого мы должны придумать способ имитации искусствен-

ной последовательности происходящих в системе событий.

     Модель является представлением объекта,  системы или понятия

(идеи) в некоторой форме,  отличной от формы их реального сущест-

вования. Модель служит обычно средством,  помогающим нам в объяс-

нении, понимании или совершенствовании системы. Модель какого-ли-

бо объекта может быть или точной копией этого объекта (хотя и вы-

полненной из другого материала и в другом масштабе),  или отобра-

жать некоторые характерные свойства объекта в абстрактной форме.

      2Примечание: абсолютно  точной  моделью  объекта является сам

 2этот объект. Все остальные модели - приближенные.

     Модель -  это используемый для предсказания и сравнения инс-

трумент, позволяющий логическим путем спрогнозировать последствия

альтернативных действий и достаточно уверенно указать,  какому из

них отдать предпочтение.  Кроме того, модель может служить эффек-

тивным средством общения и осмысления действительности.  Имитация

- всего лишь один из видов моделирования.

     По существу,  прогресс науки и техники тесно связан с разви-

тием способности  человека создавать модели естественных явлений.

Одним из главных элементов,  необходимых для эффективного решения

сложных задач,  является построение и соответствующее использова-

ние модели.  Такая модель может принимать разнообразные формы, но

одна из  наиболее  полезных и наиболее употребительных форм - это

математическая, выражающая посредством системы уравнений  сущест-

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

всегда возможно создать математическую модель в узком смысле сло-

ва. При изучении большинства промышленных и военных систем мы мо-

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

наша конструкция подчинялась техническим и экономическим законам.

При этом могут быть вскрыты и представлены в той или иной матема-

тической форме  существенные связи в системе.  В отличие от этого

решение, к примеру,  экологических проблем связано с  неясными  и

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

политическим и социальным факторами.

      2Следовательно, модель должна описывать  как  количественные,

 2так и качественные характеристики системы. 0

     Модель может применяться в качестве:

     - средства осмысления действительности;

     - средства общения;

     - средства обучения и тренировки;

                                - 4 -

     - инструмента прогнозирования;

     - средства постановки экспериментов.

     Полезность модели как средства осмысления реальных связей  и

закономерностей очевидна. Модели могут помочь нам упорядочить на-

ши нечеткие или противоречивые понятия и  несообразности.  Модель

помогает нам выявить взаимосвязи,  временные соотношения, требуе-

мые ресурсы и т.п.   2Уже сама попытка представить  наши  словесные

 2формулировки и  мысли в какой-то иной форме часто выявляет проти-

 2воречия и неясности. 0  Правильно построенная модель вынуждает  нас

организовать наши замыслы, оценить и проверить их обоснованность.

     Как средство общения хорошо продуманная модель не имеет себе

равных. "Лучше один раз увидеть,  чем сто раз услышать". Все язы-

ки, в основе которых лежит слово, в той или иной мере оказываются

неточными, когда дело доходит до сложных понятий и описаний. 2 Пре-

 2имущество модели перед словесными описаниями - в сжатости и  точ-

 2ности представления заданной ситуации. 0 Модель делает более понят-

ной общую структуру исследуемого объекта и  2вскрывает важные  при-

 2чинно-следственные связи.

     Модели применялись и продолжают широко применяться в качест-

ве средства профессиональной подготовки и обучения. Модель - пре-

восходное средство подготовки операторов, которые должны научить-

ся справляться с всевозможными случайностями до возникновения ре-

альной критической ситуации в системе управления.

     Одним из наиболее важных применений моделей является прогно-

зирование поведения моделируемых объектов.  Строить сверхзвуковой

реактивный самолет для определения его летных характеристик  эко-

номически нецелесообразно,  однако  они  могут  быть  предсказаны

средствами моделирования.

     Наконец, применение моделей позволяет проводить контролируе-

мые эксперименты в ситуациях, где экспериментирование на реальных

объектах было бы практически невозможным или экономически нецеле-

сообразным. Непосредственное экспериментирование с системой  (на-

турный эксперимент)  обычно  состоит  в варьировании некоторых ее

параметров; поддерживая остальные параметры неизменными, наблюда-

ют результат эксперимента.  Когда ставить эксперимент на реальной

системе слишком дорого, используют ее модель. 2 При экспериментиро-

 2вании с моделью сложной системы мы часто можем больше узнать о ее

 2внутренних взаимодействующих факторах, чем могли бы узнать, мани-

 2пулируя реальной системой. Это становится возможным благодаря из-

 2меряемости структурных элементов модели,  благодаря тому,  что мы

 2можем полностью контролировать ее поведение, легко измерять пара-

 2метры.

       ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ

                           ЛЕКЦИЯ N 12

                   ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

     Модель может служить для достижения одной ид  двух  основных

целей:  либо  описательной,  если  модель служит для объяснения и

лучшего понимания объекта, либо предписывающей, когда модель поз-

воляет предсказывать и воспроизвести характеристики объекта,  оп-

ределяющие его поведение.  Модель предписывающего типа обычно яв-

ляется и описательной,  но не наоборот, Это означает, что предпи-

сывающая модель почти всегда является описательной по отношению к

моделируемому  объекту,  но описательная модель не всегда полезна

для целей планирования и проектирования.

     Различная степень полезности моделей,  применяемых в технике

и в социальных науках,  в значительной мере зависит от методов  и

средств,  которые использовались при построении моделей, и разли-

чий в конечных целях, которые при этом ставились. В технике моде-

ли служат в качестве вспомогательных средств при разработке новых

или более совершенных систем,  в то время как в социальных науках

модели объясняют существующие системы.  Модель, пригодная для це-

лей разработки системы, должна также и объяснять ее, но очевидно,

что  модели,  создаваемые исключительно для объяснения,  часто не

соответствуют даже своему прямому назначению.

                       2Классификация моделей

     Модели вообще и имитационные модели в частности можно  клас-

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

является полностью удовлетворительным, хотя каждый служит опреде-

ленной цели. Укажем некоторые типовые группы моделей, которые мо-

гут быть положены в основу системы классификации:

    - статические (например, поперечный разрез объекта) и динами-

      ческие (временные ряды);

    - детерминистские и стохастические;

    - дискретные и непрерывные;

    - натурные, аналоговые, символические.

                              - 2 -

     Удобно представлять  себе  имитационные модели в виде непре-

рывного спектра,  простирающегося от точных моделей  или  макетов

реальных  объектов до совершенно абстрактных математических моде-

лей.

┌────────┬───────────┬────────┬───────────┬───────────┬──────────┐

│ Физи-  │ Масштаби- │ Анало- │ Управлен- │ Моделиро- │ Матема-  │

│ ческие │ рованные  │ говые  │ ческие    │ вание на  │ тические │

│ модели │ модели    │ модели │ игры      │ ЭВМ       │ модели   │

└────────┴───────────┴────────┴───────────┴───────────┴──────────┘

Точность                                             Абстрактность

     Модели, находящиеся в начале спектра, часто называются  2физи-

 2ческими 0 или натурными, потому что они внешне напоминают изучаемую

систему.  Для  удобства  экспериментатора физическая модель может

быть  2масштабирована 0 - подвергнута уменьшению или увеличению,

      2Аналоговыми 0 моделями являются модели, в которых свойство ре-

ального  объекта представляется некоторым другим свойством анало-

гичного по поведению объекта. Задача иногда решается путем замены

одного свойства другим, после чего полученные результаты надо ис-

толковывать применительно к исходным свойствам объекта.  Аналого-

вая ЭВМ, в которой изменение напряжения в электрической схеме оп-

ределенной конфигурации может отображать поток товарок к  некото-

рой системе, является превосходным примером аналоговой имитацион-

ной модели.

     График представляет собой аналоговую  модель  другого  типа;

здесь расстояние отображает такие характеристики объекта как вре-

мя, срок службы, количество единиц и т. д. График может также по-

казывать соотношение между различными количественными характерис-

тиками и может предсказывать,  как будут изменяться некоторые ве-

личины  при изменении других величин.  Для некоторых относительно

простых случаев график может служить средством решения поставлен-

ной  задачи.  Часто  применяются  также  аналоговые модели в виде

схем, описывающих взаимосвязи между элементами объекта.

     По мере  нашего  продвижения по спектру моделей мы достигнем

                              - 3 -

тех из них, где во взаимодействие вступают люди и машинные компо-

ненты.  Такое моделирование часто называют  2играми 0 (управленчески-

ми,  военными, планировочными). Поскольку процессы принятия реше-

ний  управленческим звеном или командным составом армии моделиро-

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

попытки.  В так называемых управленческих (деловых) играх человек

взаимодействует с информацией,  поступающей с выхода вычислитель-

ной машины (которая моделирует другие свойства системы), и прини-

мает решения на основе полученной  информации.  Решения  человека

затем снова вводятся и машину в качестве входной информации,  ко-

торая используется системой.  Продолжая этот процесс  дальше,  мы

приходим  к  полностью  2машинному 0 моделированию,  которое обычно и

понимается под термином  "моделирование".  Вычислительная  машина

может  быть  компонентом  всех имитационных моделей рассмотренной

части спектра, хотя это и не обязательно.

     К  2символическим 0, или математическим, моделям относятся те, в

которых  для представления процесса или системы используются сим-

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

систем в этом случае можно считать системы дифференциальных урав-

нений.  Поскольку они представляют собой наиболее абстрактные  и,

следовательно, наиболее общие модели, математические модели нахо-

дят широкое применение в системных исследованиях. Однако примене-

ние  математических моделей таит в себе весьма реальные опасности

и ловушки. Символическая модель является всегда абстрактной идеа-

лизацией задачи, и, если хотят, чтобы эта модель позволяла решить

задачу,  необходимы некоторые упрощающие  предположения.  Поэтому

особое внимание должно быть обращено на то,  чтобы модель служила

действительным представлением данной задачи.

     При моделировании сложной системы исследователь  обычно  вы-

нужден использовать совокупность нескольких моделей. Любая систе-

ма или подсистема может быть представлена  различными  способами,

которые значительно отличаются друг от друга по сложности и дета-

лизации.  В большинстве случаев в результате системных исследова-

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

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

и  лучше  понимает проблему,  простые модели заменяются все более

                              - 4 -

сложными.

       2Достоинства и недостатки имитационного моделирования

     Все имитационные модели представляют собой модели  типа  так

называемого "черного ящика".  Это означает,  что они обеспечивают

выдачу выходного сигнала системы,  если на  ее  взаимодействующие

подсистемы поступает входной сигнал.  Поэтому для получения необ-

ходимой информации или результатов необходимо осуществлять  "про-

гон" имитационных моделей,  а не "решать" их. Имитационные модели

не способны формировать свое собственное решение в  том  виде,  в

каком это имеет место в аналитических моделях,  а могут лишь слу-

жить в качестве средства для анализа поведения системы в  услови-

ях, которые определяются экспериментатором. Следовательно, имита-

ционное моделирование - не теория, а  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 мы понимаем составные  части,  которые  при

соответствующем  объединении образуют систему.  Иногда мы считаем

компонентами также элементы системы или  ее  подсистемы.   2Система

определяется  как группа или совокупность объектов,  объединенных

некоторой формой регулярного взаимодействия или взаимозависимости

для выполнения заданной функции. Компоненты суть объекты, образу-

ющие изучаемую систему.

      2Параметры 0 суть величины, которые оператор, работающий на мо-

дели,  может выбирать произвольно, в отличие от переменных, кото-

рые  могут  принимать только значения,  определяемые видом данной

функции. Смотря на это под другим углом зрения, мы можем сказать,

что параметры,  после того как они установлены, являются постоян-

ными величинами,  не подлежащими изменению. Например, в уравнении

y=3x число 3 есть параметр.

     В модели системы мы различаем  2переменные 0 двух видов -  экзо-

генные и эндогенные. Экзогенные переменные называются также вход-

ными,  это значит,  что они порождаются вне системы или  являются

результатом  воздействия внешних причин.  Эндогенными переменными

называются переменные,  возникающие в системе  или  в  результате

воздействия внутренних причин.  Эндогенные переменные подразделя-

ются на переменные состояния (когда они  характеризуют  состояние

или условия, имеющие место в системе) и выходные переменные (ког-

да речь идет о выходах системы). Статистики иногда называют экзо-

генные переменные независимыми, а эндогенные - зависимыми.

                              - 5 -

      2Функциональные зависимости 0 описывают поведение переменных  и

параметров  в  пределах компонента или выражают соотношения между

компонентами системы.  Эти соотношения, или операционные характе-

ристики,  по  своей природе являются либо детерминистскими,  либо

стохастическими.   2Детерминистские соотношения 0 - это тождества или

определения, которые устанавливают зависимость между определенны-

ми переменными или параметрами в тех случаях,  когда  процесс  на

выходе  системы   2однозначно 0  определяется заданной информацией на

входе. В отличие от этого  2стохастические соотношения 0 представляют

собой такие зависимости,  которые при заданной входной информации

дают на выходе неопределенный  результат.  Оба  типа  соотношений

обычно выражаются в форме математического уравнения,  которое ус-

танавливает зависимость между эндогенными переменными (переменны-

ми  состояния) и экзогенными переменными.  Обычно эти соотношения

можно строить лишь на основе гипотез или выводить с помощью  ста-

тистического или математического анализа.

      2Ограничения 0 представляют собой устанавливаемые пределы изме-

нения  значений переменных или ограничивающие условия распределе-

ния и расходования тех или иных средств (энергии, запасов, време-

ни и т.  п.). Они могут вводиться либо разработчиком (искусствен-

ные ограничения),  либо самой  системой  вследствие  присущих  ей

свойств (естественные ограничения). Примерами искусственных огра-

ничений могут быть заданные максимальный и минимальный уровни за-

нятости  рабочих  или  установленная  максимальная сумма денежных

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

такого  типа,  как ракета,  искусственным ограничением может быть

заданный радиус действия или максимально  допустимый  вес.  Боль-

шинство  технических требований к системам представляет собой на-

бор искусственных ограничений.  Естественные ограничения обуслов-

лены самой природой системы.  Например, нельзя продать больше из-

делий,  нем система может изготовить, и никто не может сконструи-

ровать систему, нарушающую законы природы. Таким образом, ограни-

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

время  как ограничения другого типа,  будучи делом рук человечес-

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

помнить  об этом,  потому что в ходе своих исследований он должен

постоянно оценивать привнесенные  человеком  ограничения,  с  тем

чтобы ослабить или усилить их по мере необходимости.

                              - 6 -

      2Целевая функция 0,  или функция критерия, - это точное отобра-

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

полнения. Обычно выделяют два типа целей:  2сохранение 0 и  2приобрете-

 2ние 0.  Цели сохранения связаны с сохранением или поддержанием  ка-

ких-либо  2ресурсов 0 (временных, энергетических, творческих и т. д.)

или  2состояний 0 (комфорта, безопасности, уровня занятости н т. д.).

Цели  приобретения связаны с приобретением новых ресурсов (прибы-

ли,  персонала,  заказчиков и т. п.) или достижением определенных

состояний, к которым стремится организация или руководитель (зах-

ват части рынка и т.п.).  Выражение для  целевой  функции  должно

быть  однозначным  определением целей и задач,  с которыми должны

соразмеряться принимаемые решения.

      2Критерий 0 - это мерило оценки,  правило или вид проверки, при

помощи которых составляется правильное суждение о чем-либо.  Изб-

ранный критерий оказывает громадное влияние на  процесс  создания

модели и манипулирования с ней. Неправильное определение критерия

обычно ведет к неправильным заключениям.  Функция критерия (целе-

вая  функция) обычно является органической составной частью моде-

ли, и весь процесс манипулирования с моделью направлен на оптими-

зацию или удовлетворение заданного критерия.

       ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ

                           ЛЕКЦИЯ N 14

                   ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

                         АНАЛИЗ И СИНТЕЗ

     Даже небольшие участки реального мира слишком сложны,  чтобы

человек смог их полностью понять и описать.   2Почти все проблемные

 2ситуации чрезвычайно сложны и включают в себя  почти  бесконечное

 2число элементов, переменных, параметров, соотношений, ограничений

 2и т. д. 0 Пытаясь построить модель, мы могли бы включить в нее бес-

конечное число фактов и потратить уйму времени,  собирая мельчай-

шие факты,  касающиеся любой ситуации, и устанавливая связи между

ними.  Рассмотрим,  например,  простое действие, состоящее в том,

что вы берете лист бумаги и пишите на нем письмо. Ведь можно было

бы определить точный химический состав бумаги,  карандашного гри-

феля и резинки, влияние атмосферных условий на влажность бумаги и

влияние последней на силу трения,  действующую на острие каранда-

ша, движущегося по бумаге; исследовать статистическое распределе-

ние  букв во фразах текста и т.  д.  Однако если единственный ас-

пект,  который нас в данной ситуации интересует, это факт отправ-

ления письма,  то ни одна из упомянутых подробностей не относится

к делу.  2Следовательно, мы должны отбросить большую часть реальных

 2характеристик изучаемого события и абстрагировать из реальной си-

 2туации только те особенности, которые воссоздают идеализированный

 2вариант реального события. 0 Все модели суть упрощенные представле-

ния реального мира или абстракции.  Если они выполнены корректно,

то эти идеализации дают нам полезноё приближенное отображение ре-

альной ситуации или по крайней мере ее определенных особенностей.

     Сходство модели с объектом,  который она отображает, называ-

ется  2степенью изоморфизма 0.  Для того чтобы быть изоморфной (т. е.

идентичной или сходной по  форме),  модель  должна  удовлетворять

двум условиям.

     Во-первых, должно существовать взаимно однозначное соответс-

твие  между элементами модели и элементами представляемого объек-

та. Во-вторых, должны быть сохранены точные соотношения или взаи-

модействия  между элементами.  Степень изоморфизма модели относи-

                              - 2 -

тельна,  и большинство моделей скорее гомоморфны,  чем изоморфны.

Под   2гомоморфизмом 0 мы понимаем сходство по форме при различии ос-

новных структур,  причем имеет место лишь  поверхностное  подобие

между различными группами элементов модели и объекта. Гомоморфные

модели являются результатом процессов упрощения и абстракции.

     Для разработки идеализированной гомоморфной модели мы обычно

разбиваем систему на некоторое число более мелких частей. Это де-

лается для того, чтобы должным образом интерпретировать их, т. е.

произвести требуемый анализ задачи. Такой способ действий зависит

от наличия частей или элементов,  которые в первом приближении не

зависят друг от друга или взаимодействуют между собой относитель-

но простым образом.  Так,  мы можем проанализировать режим работы

автомашины,  проверяя последовательно двигатель, коробку передач,

привод,  систему подвески и т. д., хотя эти узлы не полностью не-

зависимы.

     С такого  рода  анализом при построении модели близко связан

процесс упрощения реальной  системы  (под  упрощением  понимается

пренебрежение несущественными деталями или принятие предположений

о более простых соотношениях).  Например,  мы часто предполагаем,

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

тя можем подозревать или даже  знать,  что  истинная  зависимость

между ними нелинейна.  Мы предполагаем, что по крайней мере в ог-

раниченном диапазоне значений переменных такое приближение  будет

удовлетворительным.  Инженер-электрик  работает с моделями цепей,

предполагая, что резисторы, конденсаторы и т. д. не изменяют сво-

их параметров;  это упрощение,  потому что мы знаем, что электри-

ческие характеристики этих компонентов изменяются  а  зависимости

от температуры, влажности, срока службы и т. д.

     Ученый, изучающий проблемы управления, для построения полез-

ных моделей также прибегает к упрощению. Он предполагает, что его

переменные либо детерминированы (чрезвычайно упрощенная трактовка

реальности), либо подчиняются законам случайных событий, описыва-

емым  известными  вероятностными функциями распределений,  таких,

как нормальное,  пуассоновское, экспоненциальное и т. д. Он также

зачастую  предполагает,  что  зависимости между переменными носят

                              - 3 -

линейный характер,  зная, что такое допущение не совсем правомер-

но.

     Другим аспектом анализа является абстракция - понятие, кото-

рое в отличие от упрощения не так легко  объяснить  и  осмыслить.

 2Абстракция 0  содержит  или сосредоточивает в себе существенные ка-

чества или черты поведения объекта,  но не обязательно в  той  же

форме  и столь детально,  как это имеет место в оригинале.  Боль-

шинство моделей - это абстракции в том смысле,  что они стремятся

представить  качества  и  поведение моделируемого объекта в форме

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

в  схеме  организации работ мы пытаемся в абстрактной форме отра-

зить трудовые взаимоотношения между различными группами  работаю-

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

подобная схема только поверхностно отображает реальные  взаимоот-

ношения, не умаляет ее полезности для определенных целей.

     После того  как  мы проанализировали и промоделировали части

или элементы системы, мы приступаем к их объединению в единое це-

лое.  Иными словами,  мы можем путем  2синтеза 0 относительно простых

частей сконструировать некоторое приближение к  сложной  реальной

ситуации.  Здесь важно предусмотреть два момента.  Во-первых, ис-

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

во-вторых,  должно  быть корректно предсказано их взаимодействие.

Если все это выполнено должным образом,  то эти процессы анализа,

абстракции, упрощения и синтеза в итоге приведут к созданию моде-

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

Необходимо помнить,  однако, что модель является только приближе-

нием,  а поэтому не будет себя вести в точности как реальный объ-

ект.  Мы  оптимизируем модель,  но не реальную систему.  Вопрос о

том,  существует ли действительно взаимосвязь между характеристи-

ками нашей модели и реальностью,  зависит от того,  2насколько пра-

 2вильно и разумно мы провели наши  процессы  анализа,  абстракции,

 2упрощения и синтеза.

.

                              - 4 -

                     ИСКУССТВО МОДЕЛИРОВАНИЯ

    Процесс, при помощи которого инженер, занимающийся системами,

или ученый, исследующий вопросы управления, создает модель изуча-

емой им системы, может быть лучше всего определен как  2интуитивное

 2искусство 0.   2Любой набор правил для разработки  моделей  в  лучшем

 2случае имеет ограниченную полезность и может служить лишь предпо-

 2ложительно в качестве каркаса будущей модели или отправного пунк-

 2та в ее построении. 0  При попытке выразить процесс моделирования в

точных терминах мы стремимся систематизировать знания, основанные

на  интуиции и опыте тех,  кто ранее занимался моделированием.  К

сожалению,  результаты всех научных исследований излагаются и со-

общаются  нам  в форме логической реконструкции событий,  имеющей

целью оправдать смысл полученных результатов.   2Эта логическая ре-

 2конструкция  имеет  мало общего со способом,  при помощи которого

 2исследования проводились в действительности. 0  Ни в одном  научном

отчете вы не найдете описаний фальстартов,  ошибочных предположе-

ний, принятых и затем отвергнутых, разочарований, вызванных ошиб-

ками, и внезапных озарений. В таких отчетах или статьях приводит-

ся только последовательность событий и объяснение  того,   2как  бы

 2теперь поступил исследователь 0,  пользуясь своими  2ретроспективными

знаниями и знанием конечного результата.

     Конечно, для  неопытного разработчика моделей опасность зак-

лючается в том, что, не находя в литературе ничего, за исключени-

ем  логически построенных ретроспективных описаний,  он принимает

их за описание процесса открытия. Затем, когда он видит, что дела

идут вовсе не так,  как говорится в книгах,  он легко теряет уве-

ренность в себе,  и его охватывает разочарование.   2Опытный разра-

 2ботчик моделей знает, что мыслительные процессы, связанные с раз-

 2работкой модели,  значительно отличаются от того, что написано об

 2этом в учебниках и литературе.

     По-видимому,  2основой  успешной методики моделирования должна

 2быть тщательная отработка моделей.  Обычно, начав с очень простой

 2модели, постепенно продвигаются к более совершенной ее форме, от-

 2ражающей сложную ситуацию более точно. 0  Аналогии и  ассоциации  с

хорошо построенными структурами,  по-видимому, играют важную роль

в определении отправной точки процесса совершенствования и  отра-

ботки деталей.  Этот процесс связан с учетом взаимодействия и об-

                              - 5 -

ратной связи между реальной ситуацией и моделью.  Между процессом

модификации модели и процессом обработки данных, генерируемых ре-

альным объектом,  имеет место непрерывное взаимодействие. По мере

проведения  испытаний  и оценки каждого варианта модели возникает

новый вариант,  который приводит к повторным испытаниям и  перео-

ценкам.

     До тех пор пока модель поддается  математическому  описанию,

аналитик  может добиваться все больших ее улучшений или усложнять

исходные предположения. Когда же модель становится "непослушной",

т.е. неразрешимой, разработчик прибегает к ее упрощению и исполь-

зованию более глубокой абстракции.

      2Таким образом, искусство моделирования состоит в способности

 2анализировать  проблему,  выделять из нее путем абстракции ее су-

 2щественные черты,  выбирать и должным образом модифицировать  ос-

 2новные предположения,  характеризующие систему, а затем отрабаты-

 2вать и совершенствовать модель до тех пор, пока она не станет да-

 2вать полезные для практики результаты. 0 Разработчику модели надле-

жит:

   - разложить общую задачу исследования  системы  на  ряд  более

     простых задач,

   - четко сформулировать цели,

   - подыскать аналогии,

   - рассмотреть специальный  численный  пример,  соответствующий

     данной задаче,

   - выбрать определенные обозначения,

   - записать очевидные соотношения,

   - если полученная модель поддается  математическому  описанию,

     расширить ее. В противном случае упростить.

     Вообще говоря,  упростить модель можно, выполнив одну из пе-

речисленных ниже операций (в то время как для  расширения  модели

требуется как раз обратное):

   - превратить переменные величины в константы;

   - исключить некоторые переменные или объединить их;

   - предположить линейную зависимость между исследуемыми величи-

     нами;

   - ввести более жесткие предположении и ограничения;

   - наложить на систему более жесткие граничные условия.

                              - 6 -

      2Эволюционный характер  процесса конструирования модели неиз-

 2бежен и желателен, 0  поэтому мы не должны думать, что этот процесс

сводится  к построению одного-единственного базового варианта мо-

дели.  По мере того как достигаются цели и решаются  поставленные

задачи, ставятся новые задачи либо возникает необходимость дости-

жения большего соответствия между моделью  и  реальным  объектом,

что  приводит  к  пересмотру  модели и все лучшим ее реализациям.

Этот процесс, при котором начинают с построения простой модели, а

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

зрения успешного завершения разработки модели. Темп и направление

эволюционного  изменения модели зависят от двух главных факторов.

 2Первый из них - это, очевидно, присущая модели гибкость, и второй

 2- взаимоотношения между создателем модели и ее пользователем. 0 При

их тесном сотрудничестве в течение всего процесса эволюции модели

ее разработчик и пользователь могут создать  атмосферу  взаимного

доверия и взаимоотношения, которые будут способствовать получению

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

и критериям.

     Искусством моделирования  могут  овладеть  те,  кто обладает

оригинальным мышлением, изобретательностью и находчивостью, равно

как и глубокими знаниями систем и физических явлений, которые не-

обходимо моделировать.

      2Не существует  твердых и эффективных правил относительно то-

 2го, как надо формулировать задачу в самом начале процесса модели-

 2рования, т.е. сразу же после первого знакомства с ней. 0 Не сущест-

вует  и магических формул для решения при построении модели таких

вопросов,  как выбор переменных и параметров, соотношений, описы-

вающих поведение системы, и ограничений, а также критериев оценки

эффективности модели.  Помните, что  2никто не решает задачу в чис-

 2том виде, каждый оперирует с моделью, которую он построил, исходя

 2из поставленной задачи. 0

       ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ

                           ЛЕКЦИЯ N 15

                   ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

                  ТРЕБОВАНИЯ К "ХОРОШЕЙ" МОДЕЛИ

     Мы определили имитацию как процесс создания модели  реальной

системы  и проведения с этой моделью экспериментов с целью осмыс-

ления поведения системы или оценки различных  стратегий,  которые

могут  использоваться  при  управлении системой.  Это определение

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

рошая имитационная модель, и устанавливает границы ее использова-

ния.  Согласно этому определению,  модель должна быть

     - связана с функционированием системы;

     - ориентирована на решение проблем реального мира;

     - построена так, чтобы служить подспорьем тем, кто управляет

системами.

     Имитация тесно связана с функционированием системы.   2Система

есть группа или совокупность  объектов,  объединенных  какой-либо

формой  регулярного  взаимодействия или взаимозависимости с целью

выполнения определенной функции.

     Примерами систем  могут быть:  система оружия,  промышленное

предприятие,  организация,  транспортная сеть,  больница,  проект

застройки города, человек и машина, которой он управляет. Функци-

онирование системы представляет собой совокупность координирован-

ных действий,  необходимых для выполнения определенной задачи.  С

этой точки зрения системам, которыми мы интересуемся, свойственна

целенаправленность. Это обстоятельство требует от нас при модели-

ровании системы обратить самое пристальное внимание на  цели  или

задачи, которые должна решать данная система. Мы должны постоянно

помнить о задачах системы и модели,  чтобы  достичь  необходимого

соответствия между ними.

     Поскольку имитация связана с  решением  реальных  задач,  мы

должны  быть уверены,  что конечные результаты точно отражают ис-

тинное положение вещей.  Следовательно, модель, которая может нам

дать  абсурдные результаты,  должна быть немедленно взята под по-

дозрение. Любая модель должна быть оценена по максимальным преде-

лам  изменений величины ее параметров и переменных.  Модель также

должна быть способна отвечать на вопросы типа "а  что,  если...",

поскольку это именно те вопросы,  которые для нас наиболее полез-

                                - 2 -

ны, так как они способствуют более глубокому пониманию проблемы и

поиску лучших способов оценки наших возможных действий.

     Наконец, всегда следует помнить  о  потребителе  информации,

которую  позволяет получить наша модель.   2Нельзя оправдать разра-

 2ботку имитационной модели,  если ее в конечном счете  нельзя  ис-

 2пользовать или если она не приносит пользу лицу, принимающему ре-

 2шения.

     Потребителем результатов  может быть лицо,  ответственное за

создание системы или за  ее  функционирование;  другими  словами,

 2всегда должен существовать пользователь модели  0- в противном слу-

чае мы попусту потратим время и силы.  Поиски знания ради  самого

знания - дело весьма благородное, но мало найдется руководителей,

которые будут в течение продолжительного времени  оказывать  под-

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

управления или системным анализом,  если результаты их работы  не

смогут найти практического применения.

     Приняв во внимание все это, мы можем сформулировать конкрет-

ные критерии,  которым должна удовлетворять хорошая модель. Такая

модель должна быть:

     - простой и понятной пользователю,

     - целенаправленной,

     - надежной в смысле гарантии от абсурдных ответов,

     - удобной в управлении и обращении,  т.  е.  общение  с  ней

должно быть легким,

     - полной с точки зрения возможностей решения главных задач,

     - адаптивной,  позволяющей легко переходить к другим модифи-

кациям или обновлять данные,

     - допускающей постепенные изменения в том смысле, что, буду-

чи вначале простой,  она может во взаимодействии с  пользователем

становиться все более сложной.

     Необходимость большинства этих критериев совершенно  очевид-

на,  но  они  будут рассмотрены более полно в последующих главах,

посвященных вопросам организации и руководства работами по  моде-

лированию.  Здесь же достаточно сказать следующее: для того чтобы

моделью можно было пользоваться,  при ее разработке  должны  быть

тщательно продуманы и потребности, и психология ее конечного пот-

ребителя. Имитационное моделирование должно быть процессом обуче-

ния  -  как  для создателя модели,  так и для ее пользователя.  И

действительно,  это может стать  самой  привлекательной  стороной

имитации при применении ее для решения сложных задач.

                                - 3 -

                        ПРОЦЕСС ИМИТАЦИИ

     Исходя из того что имитация должна применяться для  исследо-

вания реальных систем,  можно выделить следующие этапы этого про-

цесса:

     1. Определение системы - установление границ,  ограничений и

измерителей эффективности системы, подлежащей изучению.

     2. Формулирование модели - переход от реальной системы к не-

которой логической схеме (абстрагирование).

     3. Подготовка данных-отбор данных,  необходимых для построе-

ния модели, и представление их в соответствующей форме.

     4. Трансляция  модели-описание  модели на языке,  приемлемом

для используемой ЭВМ.

     5. Оценка  адекватности  -  повышение  до приемлемого уровня

степени уверенности, с которой можно судить относительно коррект-

ности выводов о реальной системе, полученных на основании обраще-

ния к модели.

     6. Стратегическое  планирование - планирование эксперимента,

который должен дать необходимую информацию.

     7. Тактическое планирование - определение способа проведения

каждой серии испытаний, предусмотренных планом эксперимента.

     8. Экспериментирование  -  процесс  осуществления имитации с

целью получения желаемых данных и анализа чувствительности.

     9. Интерпретация - построение выводов по данным,  полученным

путем имитации.

     10. Реализация - практическое использование модели и резуль-

татов моделирования.

     11. Документирование-регистрация  хода осуществления проекта

и его результатов,  а также документирование процесса создания  и

использования модели.

     Перечисленные этапы  создания и использования модели опреде-

лены в предположении,  что задача может быть решена наилучшим об-

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

отмечали,  это может быть и не самый эффективный способ. Неоднок-

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

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

сомненно,  что  в  том случае,  когда задача может быть сведена к

                                - 4 -

простой модели и решена аналитически,  нет никакой нужды в имита-

ции.  Следует  изыскивать все возможные средства,  подходящие для

решения данной конкретной задачи, стремясь при этом к оптимально-

му сочетанию стоимости и желаемых результатов. Прежде чем присту-

пать к оценке возможностей имитации,  следует  самому  убедиться,

что простая аналитическая модель для данного случая не пригодна.

     Поскольку необходимо и желательно подобрать для решения  за-

дачи  соответствующие  средства,  решение о выборе того или иного

средства или метода должно следовать за  формулированием  задачи.

Решение  об  использовании имитации не должно рассматриваться как

окончательное. По мере накопления информации и углубления понима-

ния  задачи  вопрос  о  правомерности применения имитации следует

подвергать переоценке. Поскольку для этого часто требуются мощные

ЭВМ  и большие выборки данных,  издержки,  связанные с имитацией,

почти всегда высоки по сравнению с  расходами,  необходимыми  для

решения задачи на небольшой аналитической модели.  2Во всех случаях

 2следует сопоставлять возможные затраты средств и времени, потреб-

 2ные для имитации,  с ценностью информации, которую мы ожидаем по-

 2лучить.

     Проектирование модели начинается обычно с того, что какойли-

бо сотрудник организации приходит к выводу о возникновении  проб-

лемы,  которая нуждается в изучении. Для проведения предваритель-

ных исследований выделяется соответствующий работник  (обычно  из

группы, связанной с данной проблемой). На некотором этапе призна-

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

методы исследования,  и тогда на сцене появляется математик.  Так

начинается этап определения и постановки задачи.

           ПОСТАНОВКА ЗАДАЧИ И ОПРЕДЕЛЕНИЕ ТИПА МОДЕЛИ

     Эйнштейн как-то сказал, что правильная постановка задачи да-

же более важна,  чем ее решение.  Для того чтобы найти приемлемое

или оптимальное решение задачи,  необходимо сначала знать,  в чем

она состоит. Как это ни покажется странным, слишком много ученых,

занимающихся проблемами управления,  полностью игнорируют очевид-

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

изящные и хитроумные ответы на некорректно поставленные вопросы.

      2В отличие от примеров,  приводимых в учебниках,  большинство

 2практических задач сообщается руководителям научно-исследователь-

                                - 5 -

 2ских подразделений в недостаточно четкой, неточной форме. 0 Во мно-

гих  случаях руководство не может или не способно правильно выра-

зить суть своих проблем,  0но знает, что некая проблема существу-

ет, но не может точно сформулировать, какая это проблема.  2Поэтому

 2анализ системы обычно начинается с  поискового  изучения  системы

 2под  руководством ответственного лица,  уполномоченного принимать

 2решения.  Исследовательская группа должна понимать и четко форму-

 2лировать ряд подходящих к данному случаю задач и целей. 0  Опыт по-

казывает,  что  2постановка задачи есть непрерывный процесс 0, прони-

зывающий  весь ход исследования.  Это исследование непрерывно по-

рождает новую информацию, касающуюся ограничений, задач и возмож-

ных альтернативных вариантов. Такая информация должна периодичес-

ки использоваться в целях обновления  формулировки  и  постановки

задачи.

      2Важной частью постановки задачи является определение  харак-

 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купности  существует  жизненно  важное  меньшинство и тривиальное

 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%_на .реализацию.

     Документирование близко связано с реализацией.  Тщательное и

полное  документирование процессов разработки и экспериментирова-

ния с моделью может значительно увеличить срок ее жизни и вероят-

ность успешной реализации. Хорошо организованное документирование

облегчает модификацию модели и обеспечивает  возможность  ее  ис-

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

больше не существует.  Кроме этого, тщательная документация может

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

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

снова использованы в будущих проектах.