Научная статья на тему 'ШКОЛА МОДЕЛИРОВАНИЯ-2003. ЗАНЯТИЕ 4. МОДЕЛИРОВАНИЕ СИСТЕМ, или может ли компьютер моделировать собачью радость?'

ШКОЛА МОДЕЛИРОВАНИЯ-2003. ЗАНЯТИЕ 4. МОДЕЛИРОВАНИЕ СИСТЕМ, или может ли компьютер моделировать собачью радость? Текст научной статьи по специальности «Математика»

CC BY
85
11
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Макарова Наталья Владимировна, Сениченков Юрий Борисович, Титова Юлияна Францевна

Статья продолжает материалы номеров 1, 2 и 3 за 2003 год. Авторы рассматривают статью как методические указания по созданию и использованию виртуальных лабораторий, разработанных на базе пакета Model Vision Studium. Эти лабораторные работы направлены не только на компьютерное моделирование, но и на межпредметные связи.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ШКОЛА МОДЕЛИРОВАНИЯ-2003. ЗАНЯТИЕ 4. МОДЕЛИРОВАНИЕ СИСТЕМ, или может ли компьютер моделировать собачью радость?»

Макарова Наталья Владимировна, Сениченков Юрий Борисович, Титова Юлияна Францевна

ШКОЛА МОДЕЛИРОВАНИЯ-2003. ЗАНЯТИЕ 4. МОДЕЛИРОВАНИЕ СИСТЕМ,

или может ли компьютер моделировать собачью радость?

г-;.г-"" ■ ■ у Окружающий нас мир

очень сложен. Можно сказать, что все объекты в нем взаимосвязаны. Состояние и поведение одних объектов изменяется при воздействии на них других объектов. Чрезвычайно распространенным приемом изучения окружающего мира является выделение из него отдельных элементов. Если мы рассматриваем только один элемент, мы говорим, что изучаем изолированный объект. Конечно же, это идеализация, но очень полезная, позволяющая нам сосредоточиться только на свойствах конкретного объекта. При этом связь этого объекта с окружающей средой выражается в использовании некоторых параметров, характеризующих эту связь. Так в задаче о падении лестницы [3] мы изучали объект «ступенька». Но ступенька была частью системы «лестница», и это отражалось в задаче включением параметров «длина лестницы» и «число ступенек». А связь лестницы с окружающим миром, в свою очередь, отражалась с помощью координат концов лестницы хА = 0, ув = 0, а также расчетными формулами. Учет этих связей позволил получить адекватную картину движения ступеньки.

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

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

Опорными понятиями при изучении систем являются «отношение», «связь», «система», «элемент системы», «информационная модель системы», которые подробно рассмотрены в учебнике [1].

На этом занятии мы рассмотрим, как с помощью среды MVS можно создать и исследовать компьютерную модель системы, состоящей из нескольких объектов, находящихся во взаимосвязанном движении на примере задачи 3.10 стр. 82 из задачника [2].

1 ЭТАП. ПОСТАНОВКА ЗАДАЧИ ОПИСАНИЕ ЗАДАЧИ

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

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

ЦЕЛЬ МОДЕЛИРОВАНИЯ

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

Определить путь, пройденный собакой.

ФОРМАЛИЗАЦИЯ ЗАДАЧИ

Проведем формализацию задачи в виде поиска ответов на следующие вопросы:

Что моделируется? Процесс изменения состояния системы, состоящей из подвижных объектов - хозяина и собаки - и неподвижных объектов - дома и автобусной остановки.

Что известно о неподвижных объектах системы? Расстояние от остановки до дома.

Что известно о подвижном объекте «собака»? Скорость движения собаки.

Что известно о подвижном объекте «человек»? Скорость движения хозяина.

Как изменяется состояние системы? Изменяется расположение подвижных объектов и расстояние между объектами.

Какие параметры характеризуют процесс движения? Время движения. Время движения собаки от человека до дома. Время встречи собаки с хозяином. Путь, пройденный собакой до очередной встречи с человеком. Суммарный путь, пройденный собакой. Путь, пройденный человеком. Расстояние от человека до дачи в момент встречи.

Какое движение совершают объекты? Равномерное.

2 ЭТАП. РАЗРАБОТКА МОДЕЛИ ИНФОРМАЦИОННАЯ МОДЕЛЬ

Результаты формализации сведем в таблицу 1.

Таблица 1.

Объект Параметры Действия

Название Значение

Человек Скорость движения человека (Уч) Путь, пройденный человеком (Хч) Время движения человека (/ч) Исходные данные Расчетные данные Идет от остановки к дому

Собака Скорость движения собаки (Ус) Путь, пройденный собакой до очередной встречи с хозяином (Хс) Суммарный путь, пройденный собакой (5) Число встреч с хозяином (к) Исходные данные Расчетные данные Расчетные данные Расчетные данные Бегает от человека к даче и обратно

Система Расстояние от остановки до дома (с[) Место встречи собаки и человека Исходные данные Расчетные данные Собака прибегает к дому Встреча хозяина и собаки Изменяется положение подвижных объектов и расстояние до неподвижных объектов

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ

На первый взгляд, задача кажется не очень сложной. Она явно разбивается на простые подзадачи -рассчитаем точку первой встречи. Это очень просто. Расстояние между домом и остановкой известны, скорости тоже. Сначала собака и человек двигаются в одинаковом направлении, к дому. Если скорость собаки больше скорости человека, она добежит первой и повернет назад. Теперь они двигаются навстречу друг другу и естественно встретятся. В точке встречи задача сводится к исходной, но расстояние до дома сократилось на путь, пройденный за это время человеком. Собака же успела пробежать исходное расстояние от дома до остановки плюс расстояние от дома до точки первой встречи. Зная новое расстояние, можно просто повторить все расчеты. Нарисуем остановку, дом, хозяина и собаку (рисунок 1) и будем наблюдать за ними, подсчитывая количество встреч и путь, проделанный собакой.

Составим математическую модель задачи. Так как дом и остановка расположены на одной прямой, будем считать ее координатной осью X. Разместим остановку в начале прямой (X = 0), а дом на расстоянии й = 100 (единицы условные). Зададим скорости собаки и скорость хозяина: Уе = 2, Уч =1 (единицы условные). Сначала собака и человек двигаются к дому (в положительном направлении) и их положение (координаты) определяется формулами Хч = Уч*г и Хе = Уе*г.

В момент гд = —, когда собака первый раз Уе

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

законом Хе = й -(г - —)Уе. Так происходит Уе

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

Уч*гв = й-(гв - —)Уе, Уе

следовательно,

гв = -

. А потом все повторяется

Уч + Уе

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

й, = й--

-Ух = й

Уе -Уч

Уч + Уе Уч + Уе Этот же процесс взаимосвязанного движения объектов можно описать и по-другому.

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

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

Событие «пришел домой», соответствующее окончанию движения человека, описывается соотношением Хч > 100.

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

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

До начала движения (исходные данные) к =0 (число встреч) Хв = 0 (координата места встречи соответствует начальному положению собаки на остановке)

5 = 0 (Суммарный путь)

Хч

Ус

Остановка

Дом

Рисунок 1. Система «хозяин-собака».

d

Длительное действие «бегу домой»

Хе = Хв + Уе*гс

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

Событие «достигла дома» описывается соотношением Хс > 100. Как видно, это событие можно описать, не используя параметр «время», а только используя координаты собаки и дома. При наступлении этого события отсчет времени движения собаки к дому прекращается и изменяется значение параметра «суммарный путь»: к предыдущему значению добавляется расстояние до дома й минус координата последней встречи Хв.

Длительное действие «бегу к хозяину»

Хе = й-Уе*ге

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

Событие «встретилась с хозяином» описывается соотношением Хс < Хч. При наступлении этого события фиксируется новая координата места встречи Хв = Хч, число встреч увеличивается на 1 и изменяется значение суммарного пути, пройденного собакой: к предыдущему значению добавляется расстояние до дома й минус координата новой встречи Хв. Это событие также описывается не с помощью параметра «время» а с помощью координат человека и собаки.

Затем цикл движения собаки повторяется.

Таким образом, взаимосвязанное движение человека и собаки обеспечивается наступлением события «встретилась с хозяином», которое учитывает соотношение координат этих объектов. С точки зрения описания системы, мы можем сказать, что выходной параметр «координата человека» объекта «человек» является входным параметром для объекта «собака».

КОМПЬЮТЕРНАЯ МОДЕЛЬ

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

При построении компьютерной модели одним из первых шагов является выбор программной среды. В задачнике [2] предлагается использовать среду табличного процессора. Рассмотрим, как эта модель строится и исследуется в среде MVS. Здесь необходимо отметить, что для решения задачи может быть построена не одна математическая модель. В некоторой степени выбор той или иной математической модели ориентируется и на среду, в которой в дальнейшем ее придется реализовывать. При реализации компьютерной модели мы будем использовать второй вариант математической модели, рассмотренный выше.

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

Рассмотрим, как строится модель системы в среде MVS (рисунок 2).

Шаг 1. Создание нового про-

Рисунок 2. Компьютерная модель.

if, екта и описание системы в целом.

Запустите среду MVS, создайте новый проект «Собачья радость» и в нем классы «Человек» и «Собака» (рисунок 3). Создайте виртуальный стенд и

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

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

Вы можете придерживаться другой стратегии создания системы. Проектируйте систему непосредственно на виртуальном стенде. Для этого сначала достаточно создать только будущие классы в окне «Проект» или, другими словами, переименовать уже присутствующий там класс с именем проекта в класс «Человек» и добавить новый -«Собака». Далее разместите эти заготовки (у них нет ни входов, ни выходов, ни параметров) на виртуальном стенде. Щелкните правой кнопкой мыши на изображении класса, и откроется окно, позволяющее его редактировать. Введите переменные состояния, входы, выходы, задайте параметры, и вы придете к той же модели.

Шаг 2. Описание классов

На рисунке 4 три окна показывают описание класса «Человек», его карту поведения и систему уравнений. При описании класса в разделе «Параметры» задаем начальные значения параметров, которые не меняются в течение процесса движения конкретного экземпляра: скорость и расстояние до дома.

Рисунок 3. Классы «Человек», «Собака», и система «Человек-Собака», размещенная на виртуальном стенде.

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

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

Проект Математическая модель

координата человека Хч

скорость человека Уч

расстояние до дома а

Координата человека объявлена как выходная переменная, и это понятно, так как она «нужна» собаке для определения момента их встречи.

Рисунок 4. Описание класса «Человек».

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

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

На рисунке 5 показано описание класса «Собака». Мы видим, что «Собака» содержит также два параметра - свою скорость и расстояние до дома, а также пять переменных: входную (координата_человека), выходную (координата_собаки) и вспомогательные переменные, позволяющие нам вычислять координату места встречи, число встреч и общее расстояние, которое преодолела собака.

Клм ■: - [СЫнл |

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

' СйПШй

# йдпрр^пнгс -]-,.L.ri.

kVnH-.Eh'iaC'L-S

- ^ ГЧрвийгуу

в ШфОСПщтЕпН Oj.t'i -£ / piLkTuflhHi- Дй .мигчд. diiiikv -13]

- О

4 юпгймнл-« чвлйави.'ЙСИЫВ -Ч:

- ^ Вь"вдь>

i- »эйЕШМ1в.-а_соэЕК|1 dDubto -U

■ B-fyTf-^4HI ЧН| i-Г

i- мсстгп.к-'речл cbiftt ■ D i■ Р. ^-Л' irrJ.it -i.

... ■jvenn prTpfu H I IITCJ-'TCI О r(>jjf ^"VfJli н Ij.rj-K|j.--H

■lij rVoca.?hkic

ij Гл«н5Лч^)тв™1#ац»ннй О ГмаЛЛ» KB(llli ГО*»ШМТЧ

■ CKilTunavp-Sii-iT-lr-i'

J4 barvj

ii]

Pi jvi

Рисунок 5. Описание класса «Собака»

Проект Математическая модель

координата собаки Хс

скорость собаки Ус

расстояние до дома d

место встречи Хв

всего S

число встреч к

На рисунке 6 показана карта поведения собаки. Видно, что поведение циклично, а внутри цикла два состояния (длительные действия) «Бегу домой» и «Бегу к хозяину». Первое действие заканчивается, когда

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

На рисунке 7 приведены формулы, описывающие длительные действия «Бегу домой» и «Бегу к хозяину».

Обратите внимание: в этих формулах используется переменная ЬоеаШше (локальное время). Она отсчитывает время не с на-

Рисунок 6. Карта поведения класса «Собака»

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

Сравнив наши подготовительные действия и их запись на языке МУЬ, вы видите, что имеете дело с языком высокого уровня, синтаксические конструкции которого очень близки к естественному языку.

Рисунок 7. Системы уравнений класса «Собака»

3 ЭТАП.

КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ

Перед проведением компьютерного эксперимента необходимо откомпилировать модель. После компиляции модели откроется окно «Визуальная модель». Откройте дополнительно окна «Карта поведения» для класса «Человек» и «Собака» и окно «Временная диаграмма» и поместите в последнее переменные «координата человека» и «ко-ордината_собаки». Выполните команду СТАРТ. И вы увидите на графике то, что показано на рисунке 8. Когда наступит событие, соответствующее приходу человека домой, построение графиков закончится.

На временной диаграмме строятся графики движения человека и собаки как функций от времени. Горизонтальная ось -время, вертикальная - координата X. Построение этой кривой и является целью моделирования.

На рисунке 8 показан простейший эксперимент с системой. Хорошо видно, что движение человека происходит по прямой, в то время как траектория собаки -ломаная линия. Каждый зубец этой ломаной соответствует одному циклу. Верхние острия зубцов все заканчиваются на одной линии, что соответствует коорди-

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

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

Одновременно с началом отсчета переменной Time начинается отсчет и переменной LocalTime, которая участвует в описании поведения собаки. Для каждого ее значения вычисляется координата собаки в блоке «Хозяин_Дом» в соответствии с системой уравнений «бегу домой» и проверяется условие наступления события «достигла дома».

Рисунок 8. Результаты компьютерного эксперимента

Когда условие выполнится, вычисляется новое значение суммарного пути, пройденного собакой, и осуществляется переход к новому блоку действий «Дом_Хозяин». При этом переменная ЬосаТПше опять начинает отсчет от нуля. Теперь для каждого нового значения координаты собаки проверяется условие встречи с человеком, и, как только оно выполнится, счетчик числа встреч увеличива-

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

ДОМАШНЕЕ ЗАДАНИЕ

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

Литература.

1. Информатика. 7-9 класс. Базовый курс. Теория. / Под ред. Н.В. Макаровой. СПб: Питер, 2001.

2. Информатика. 7-9 класс. Базовый курс. Практикум-задачник по моделированию. / Под ред. Н.В. Макаровой. СПб: Питер, 2000-2003.

3. Н.В. Макарова, Ю.Б. Сениченков, Ю.Ф. Титова «Использование среды VMS для моделирования движения одного объекта» / Компьютерные инструменты № 2, 2003.

Макарова Наталья Владимировна, доктор пед. наук, канд. техн. наук, проректор МБИ (СПб), зав. каф. информационных систем и технологий,

Сениченков Юрий Борисович, доцент кафедры1 Распределенные вы1числений и компьютерные сетей Санкт-Петербургского Политехнического Университета,

Титова Юлияна Францевна, канд. пед. наук, доцент кафедры1 информационные систем и технологий Международного Банковского Института.

© Наши авторы, 2003. Our authors, 2003.

i Надоели баннеры? Вы всегда можете отключить рекламу.