Научная статья на тему 'Имитационное моделирование с использованием системно-объектного подхода на примере транспортных и технологических процессов'

Имитационное моделирование с использованием системно-объектного подхода на примере транспортных и технологических процессов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
349
113
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМНО-ОБЪЕКТНЫЙ ПОДХОД "УЗЕЛ-ФУНКЦИЯ-ОБЪЕКТ" / СИСТЕМНО-ОБЪЕКТНЫЙ МЕТОД ПРЕДСТАВЛЕНИЯ ЗНАНИЙ / ВИЗУАЛЬНОЕ ГРАФОАНАЛИТИЧЕСКОЕ МОДЕЛИРОВАНИЕ / ИСЧИСЛЕНИЕ ОБЪЕКТОВ / ТРАНСПОРТНЫЙ ПОТОК / ТЕХНОЛОГИЧЕСКИЙ ПРОЦЕСС

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Маторин С.И., Жихарев А.Г., Зайцева Н.О.

В докладе представлены результаты исследований в области компьютерного имитационного моделирования с использованием оригинального системно-объектного подхода «Узел-Функция-Объект», на основе которого разработан системно-объектный метод представления знаний. Описан способ формализации системно-объектных моделей с помощью алгебраических средств исчисления объектов. На примерах транспортного и технологического процессов показана возможность имитации функционирования этих процессов на их формализованных системно-объектных моделях.

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

Текст научной работы на тему «Имитационное моделирование с использованием системно-объектного подхода на примере транспортных и технологических процессов»

УДК 519.876.5

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ СИСТЕМНООБЪЕКТНОГО ПОДХОДА НА ПРИМЕРЕ ТРАНСПОРТНЫХ И ТЕХНОЛОГИЧЕСКИХ ПРОЦЕССОВ10

Маторин Сергей Игоревич, д.т.н., профессор, кафедра информационных систем и технологий, Белгородский университет кооперации экономики и права, Россия, Белгород, matorin@softconnect.ru Жихарев Александр Геннадиевич, к.т.н., старший преподаватель, кафедра информационных систем управления, Белгородский государственный национальный исследовательский университет, Россия,

Белгород, zhikharev@bsu.edu.ru

Зайцева Наталья Олеговна, ассистент, кафедра прикладной математики и информатики, Белгородский государственный национальный исследовательский университет, Россия, Белгород,

zaitseva n o@bsu.edu.ru

В настоящее время одним из основных направлений исследования и проектирования сложных систем в различных прикладных областях является использование имитационного моделирования. Уже общепринятой является точка зрения, что имитационное моделирование должно сопровождать процессы управления динамическими системами с самой начальной стадии их становления, развития и внедрения [1].

Авторами проводятся исследования в области графоаналитического компьютерного, в том числе имитационного, моделирования. В основе этих исследований лежит оригинальный системно-объектный подход «Узел-Функция-Объект» (УФО-подход: http://ru.wikipedia.org/ wiki/Узел-Функция-Объект). Суть подхода сводится к следующему [2, 3].

Любая система представляется в виде трехэлементной конструкции «Узел-Функция-Объект», т.е. в виде УФО-элемента. При этом «Узел» - это точка пересечения входных и выходных связей (потоков) в структуре разрабатываемой системы, «Функция» - процесс преобразования входа в выход, т.е. процесс, обеспечивающий баланс «втекающих» и «вытекающих» потоков по связям данного узла, «Объект» - субстанция, реализующая данную функцию в данном узле. УФО-элементы, собранные в различные конфигурации, образуют диаграммы взаимодействия элементов, которые позволяют визуализировать функциональность элементов и состав системы более высокого уровня. Таким образом, моделируемая система представляется в виде иерархии УФО-элементов. Данное представление позволяет учесть различные характеристики системы в одной системнообъектной модели - УФО-модели: структурные с учетом потоков взаимодействия; функциональные, т.е. выполняемые процессы; субстанциальные, т.е. характеристики объектов). При этом УФО-элемент, определенный только как «узел» или как «узелфункция», описывает класс систем, определенный же со всех трех точек зрения представляет собой конкретный объект, т.е. экземпляр упомянутого класса. Соответствие понятия УФО-элемента классу UML показано в работе [4]. В целях автоматизации применения УФО-подхода спроектирован и реализован CASE-инструментарий UFO-toolkit (свидетельство Роспатента №2006612046, http://www.ufo-toolkit.ru/).

На основе УФО-подхода авторами разработан «Системно-Объектный Метод Представления Знаний» (СОМПЗ) как инструмент создания универсальных моделей знаний о системах произвольной природы. Суть метода сводится к следующему [5].

Во-первых, в концепцию УФО-подхода введено понятие «потоковый объект», которое дополняет существующее понятие об объекте, реализующем функциональный узел в рамках УФО-элемента. Т.е. в СОМПЗ рассматривается два вида объектов: узловой объект в рамках

10 Исследование поддержано грантами РФФИ: 13-07-00096, 13-07-12000, 14-47-08003

51

УФО-элемента (далее обозначается заглавными латинскими буквами) и потоковый объект в рамках потока\связи (далее обозначается строчными латинскими буквами).

Во-вторых, для формального описания УФО-элементов использован алгебраический аппарат исчисления объектов Абади-Кардели [6], разработанного для формализации объектно-ориентированного программирования. В исчислении объектов абстрактный объект представляет собой набор полей и методов. Использование метода объекта - это вызов метода, изменение метода - это переопределение. Поле - частный случай метода (константный метод). Изменение значения поля является частным случаем переопределения метода. Методы выполняются в контексте некоторого объекта (имеют ссылку на объект). Таким образом, любой абстрактный объект «о» формально в исчислении объектов представляется в следующем виде: о = [li = bi;ie1v.n, lj = o(xj)bj,je1,„m], где li - поля объекта, в которых записаны характеристики объекта о; lj - методы объекта, в которых в скобках указаны их аргументы, а за скобками результаты их работы; о € O, bi € O, bj € O (где O -множество термов исчисления объектов). Вычисление в исчислении объектов - это последовательность вызовов и переопределения методов, для чего определены правила редукции. Для нас наибольший интерес представляет правило вызова следующего вида (вызов метода lj объекта о): o.lj ^ bj{xj о}.

Используя приведенные выше определения можно поставить в соответствие УФО-элементу специальный класс объектов исчисления Абади-Кардели, который содержит специально выделенные поля и методы (узловой объект), как показано на рисунке 1 и в приведенном ниже выражении.

a?ii

*1 Узел

1 a\j 1—>■

Рис. 1 - УФО-элемент в обозначениях исчисления объектов

G = [l?i = a?i, l!j = aj ln = F(l?i)l!j; lm bm], где:

• G - узловой объект;

• l?i - поле узлового объекта (может представлять собой набор или множество), которое содержит значение входных потоковых объектов a?i и, соответственно, имеет такой же тип данных;

• l!j - поле узлового объекта (может представлять собой набор или множество) которое содержит значения выходных потоковых объектов a!j и имеет такой же тип данных;

• ln -метод узлового объекта (может представлять собой набор или множество), преобразующий входные потоковые объекты узла в выходные;

• lm - поле узлового объекта (может представлять собой набор или множество), которое содержит основные характеристики данного объект (bm).

Нетрудно видеть, что представленное формальное описание УФО-элемента учитывает и структурную, и процессную, и субстанциальную его характеристики. И, таким образом, может рассматриваться как способ формального описания систем как УФО-элементов.

52

Действительно, во-первых, имена полей l?i и l!j могут рассматриваться как имена потоков, связывающих УФО-элемент с другими элементами, т.е. как его структурная характеристика. Во-вторых, метод ln = F(l?i)l!j представляет собой процессную (функциональную) характеристику данного УФО-элемента. В-третьих, поле lm = bm, а также значения входных и выходных потоков (потоковых объектов) a?i и a!j представляют собой объектную характеристику данного УФО-элемента.

Средствами исчисления объектов можно формально описать не только узловые объекты (УФО-элементы в целом), но и потоковые. Потоковый объект в рамках потока\связи можно представить как объект, обладающий только набором полей, содержащих основные характеристики объекта, т.е. методы объекта в данном случае не учитываются. Такой объект (также представляющий собой еще один специальный класс абстрактных объектов) формально представляется с помощью следующего выражения: ai = [lj = bj], где:

ai - потоковый объект; lj = bj - поля потокового объекта с некоторыми значениями bj.

Если для хранения и обработки знаний о каких-либо процессах представлять их в виде УФО-элементов, то, с учетом формального их описания средствами исчисления объектов, манипулирование этими знаниями, в частности имитацию динамики процессов, можно обеспечить путем организации цепочки вызовов методов узловых объектов со стороны соответствующих потоковых объектов. Цепочка организуется на уровне декомпозиции УФО-элемента. В данном случае вызов узлового объекта можно записать следующим образом:

G.ln l!j{l?i ^ G}.

Подобный вызов метода (например, метода ln) узлового объекта (например, объекта G) будет иметь место в том случае, если на вход узлового объекта поступает поток, наименование объектов которого (потоковых) совпадает со значением поля узлового объекта, которое содержит значение входных потоковых объектов (например, поля l?i). Старт процедуры имитационного моделирования осуществляется путем инициализации некоторого контекстного потокового объекта, после чего значение контекстного потокового объекта попадает в соответствующее поле интерфейсного узлового объекта, после чего вызывается метод этого узлового объекта, который выполнив некоторые действия, вызывает метод следующего узлового объекта и так пока не достигается конец модели. Формально с учетом описания УФО-элементов средствами исчисления объектов упомянутая процедура вывода может быть представлена следующим образом:

ai [lm bm]• ai a?i l?i ^ Gkln ^ l!jfl?il ^ Gk} \ ^ ai+1 [lm+1 bm+1]: ai+1

a?i+1 = l?i+1 — Gk+l.ln+1 — l!j+l{l?i+l\—Gk+l} — ai+2 = [lm+2 = bm+2]• ai+2 = a?i+2 = l?i+2 \— Gk+2• ln+2 —l!j+2{l?i+2 — Gk+2} — ai+3 = [lm+3 = bm+3]•' ■■■

Для системно-объектного имитационного моделирования транспортных потоков города предлагается рассматривать полосу для движения на дороге как потоковый объект, а любые разветвления (расширения или сужения) полос для движения и перекрестки - как узловые объекты. При этом потоковый объект будет иметь следующий вид: flow[distance, number, forward, right, left, back], где:

• flow - идентификатор транспортной полосы;

• distance - протяженность транспортной полосы в метрах;

• number - количество автомобилей в полосе на текущий момент времени;

• forward - возможность движения прямо в конце полосы;

• right - возможность движения направо к конце полосы;

• left - возможность движения налево в конце полосы;

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

53

Поля транспортной полосы: forward, right, left и back представляют собою логические переменные и могут принимать значение true или false. Поле хранит истинное значение, если разрешено движение в данном направлении, иначе поле - ложное. Остальное поля транспортной полосы принимают любые числовые значения больше нуля.

Узловой объект, характеризующий, например, расширение или сужение полосы будет иметь следующий вид:

extension[flows?, flows!, F(flows?)flows!], где:

• extension - идентификатор узлового объекта;

• flows? - поля узлового объекта, соответствующие входным потокам;

• flows! - поля узлового объекта, соответствующие выходным потокам;

• F(flows?)flows! - метод узлового объекта, описывающий процедуру преобразования входных потоков в выходные.

Например, в случае расширения дороги на две полосы обозначим входную полосу inband, а две выходных соответственно - outband1, outband2. Для них можно установить некоторые начальные значения полей потоковых объектов:

• inband[distance=322,4, number=17, forward=true, right=false, left=false,

• back=false];

• outband2[distance=24, number=2, forward=false, right=true, left=false,

• back=false];

• outband1[distance=24, number=1, forward=true, right=false, left=false,

• back=true].

Узловой объект, характеризующий данное расширение дороги будет иметь следующий

вид:

extension[inband?; outband1!; outband2!; F(inband?)outband1!,outband2!].

Метод данного узлового объекта можно описать следующим образом:

F(inband?)outband1!,outband2!

{

if(inband?.number>=1)

{

inband?.number = inband?.number-1; outband1!.number = outband1!.number + 0,5; outband2!.number = outband2!.number + 0,5;

}

}

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

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

Например, производственно-технологический цикл переработки и хранения зерна на ОАО "Прохоровский элеватор" начинается с процесса отбора проб поступившего сырья. Этим занимается лаборатория организации, здесь определяются количественно-

54

качественные показатели зерна, такие как: влажность, сорная примесь, зерновая примесь, заражения, фактуры и т.п. После определения показателей поступившего сырья, заведующий лабораторией принимает решения о дальнейшей переработке зерна. Перед непосредственной переработкой зерно проходит взвешивание на автомобильных весах (АИ-60). После взвешивания, зерно направляется на приемку.

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

зерно = [вид, вес, влажность, сорная примесь, зерновая примесь, трудноотделимая примесь].

Узловой объект, например, «Зерносушильные комплексы» (Целинная-30):

ЦЕЛИННАЯ-30 = [Зерно_на_сушку?; Зерно_на_гречзавод!,

Зерно_на_подработку!; Сушка = F(Зерно_на_сушку?)Зерно_на_гречзавод!, Зерно_на_подработку!; Пропускная_способность = 30 т/ч, Время_работы = 0 ч., Мощность = 5,2%,].

Рис. 2 - Технологический процесс по переработке и хранению зерна

При этом метод узлового объекта «ЦЕЛИННАЯ-30» может быть описан следующим образом:

Сушка = F(3epHO на сушку?)Зерно на гречзавод!, Зерно на подработку!

{

This-Время работы=0;

Зерно на хранение!.Влажность=Зерно на сушку?.Влажность; while Зерно на хранение!.Влажность>14 do {

This.Время работы=This.Время работы+Зерно на сушку?.Вес /

55

This-Пропускная способность;

Зерно на хранение!.Влажность=Зерно на хранение!.Влажность - 4;

}

if Зерно на сушку.сорная примесь<3 and Зерно на сушку.зерновая примесь<1 and Зерно на сушку.трудноотделимая примесь< 1 then

ГРЕЧЗАВОД.Переработка(); else {

if Зерно на сушку.сорная примесь>3 then БЛС16.Очистка();

if Зерно на сушку.зерновая примесь>1 then А1БИС-100.Очистка();

if Зерно на сушку.трудноотделимая примесь>1 then А1БДЗ-6.Очистка();

}

}

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

• вид зерна = "ячмень";

• вес зерна =27540 кг;

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

• влажность=18,7%

• сорная примесь=0,2%;

• зерновая примесь=0,4%;

• трудноотделимая примесь=0,1%;

Тогда для данного случая цепочка вызова методов узловых объектов будет следующая: ЛАБОРАНТ.Анализ()^АВТОВЕСЫ.Взвесить()^ПОДЪЕМНИК№5.Разгрузить() ^ДСП-32.Сушка()^СИЛОСНЫЙ_КОРПУС. Хранение().

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

Рис. 3 - Визуализация результата вывода (имитации) в СОМПЗ

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

56

В перспективе планируется выпуск новой версии программного инструментария UFO-toolkit, где будут автоматизированы все описанные возможности системно-объектного моделирования.

Литература

1. Емельянов А. А., Власова Е. А. Имитационное моделирование экономических процессов / Имитационное моделирование. Теория и практика. Четвертая всероссийская научнопрактическая конференция по имитационному моделированию и его применению в науке и промышленности (ИММОД-2009), Санкт-Петербург, 2009.

2. Маторин С.И., Попов А.С., Маторин В.С. Моделирование организационных систем в свете нового подхода «Узел-Функция-Объект» // Научно-техническая информация. Сер. 2. - 2005. -№1.-С. 1-8.

3. Маторин С.И., Зимовец О.А., Жихарев А.Г. О развитии технологии графоаналитического моделирования бизнеса с использованием системного подхода «Узел-Функция-Объект» // Научно-техническая информация. Сер. 2. - 2007. - №11. - С. 10-17.

4. Маторин С.И. О новом методе системологического анализа, согласованном с процедурой объектно-ориентированного проектирования. Часть 2 // Кибернетика и системный анализ. -2002. -№1.-С. 118-130.

5. Жихарев А.Г., Маторин С.И., Маматов Е.М., Смородина Н.Н. О системно-объектном методе представления организационных знаний // Научные ведомости Белгородского государственного университета. Сер. История. Политология. Экономика. Информатика. -2013. - № 8 (151). - Выпуск 26/1. - С. 137-146.

6. Abadi Martin and Luca Cardelli A Theory of Objects. Springer-Verlag, 1996.

УДК 004.43:378.09

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЛЯ ВЕДЕНИЯ БЛОГА

Мясникова Нелли Александровна, доцент, Южно-Российский государственный политехнический университет (Новочеркасский политехнический институт) имени М.И. Платова, Россия,

Новочеркасск, mnela@list.ru

Курин Николай Дмитриевич, студент, Южно-Российский государственный политехнический университет (Новочеркасский политехнический институт) имени М.И. Платова, Россия,

Новочеркасск, kurin,kolvan@,vandex.ru

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

От обычных дневников блоги отличаются своей публичностью: блоги предполагают сторонних читателей, которые могут оставлять комментарии как непосредственно под записью, так и в своих собственных блогах. Можно выделить еще одну особенность -простоту добавления новых записей. Пользователь просто обращается к веб-серверу, происходит идентификация, после чего пользователь просто добавляет еще одну запись. Сервер представляет информацию как последовательность сообщений, помещая самые свежие сообщения вверху [1].

Можно выделить следующие функции блогов:

• коммуникативная функция;

• функция самопрезентации;

57

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