WWW.DISUS.RU

БЕСПЛАТНАЯ НАУЧНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА - Авторефераты, диссертации, методички

 

Pages:     || 2 |

«Ю. И. БРОДСКИЙ РАСПРЕДЕЛЕННОЕ ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ СИСТЕМ ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР ИМ. А.А. ДОРОДНИЦЫНА РОССИЙСКОЙ АКАДЕМИИ НАУК МОСКВА 2010 УДК 519.876 Ответственный редактор член-корр. РАН Ю.Н. Павловский ...»

-- [ Страница 1 ] --

УЧРЕЖДЕНИЕ РОССИЙСКОЙ АКАДЕМИИ НАУК

ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР

ИМ. А.А. ДОРОДНИЦЫНА РАН

Ю. И. БРОДСКИЙ

РАСПРЕДЕЛЕННОЕ ИМИТАЦИОННОЕ

МОДЕЛИРОВАНИЕ СЛОЖНЫХ СИСТЕМ

ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР ИМ. А.А. ДОРОДНИЦЫНА

РОССИЙСКОЙ АКАДЕМИИ НАУК

МОСКВА 2010 УДК 519.876 Ответственный редактор член-корр. РАН Ю.Н. Павловский Делается попытка ввести формализованное описание моделей некоторого класса сложных систем. Ключевыми понятиями этой формализации являются понятия компонент, которые могут образовывать комплекс, и комплекса, состоящего из компонент, но на некотором более высоком уровне абстракции могущем восприниматься как единая компонента.

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

Монография издается в авторской редакции.

Ключевые слова:

имитационное моделирование, распределенные вычисления, сложные системы, метакомпьютинг, GRID-технологии, распределенные вычисления в Интернете.

Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований, грант 10-07-00176-а.

Рецензенты: Ю.А. Флеров, Б.А. Суслаков Научное издание © Учреждение Российской академии наук Вычислительный центр им. А.А. Дородницына РАН, Предисловие В книге делается попытка ввести формализованное описание моделей некоторого класса сложных систем, постепенно сложившееся в результате многолетнего опыта моделирования таких систем в отделе «Имитационные системы» ВЦ РАН, начиная с 80-х гг. прошлого века. Ключевыми понятиями этой формализации являются понятия компонент, которые могут образовывать комплекс и комплекса, состоящего из компонент, но на некотором более высоком уровне абстракции могущем восприниматься как единая компонента. В результате сложную систему можно рассматривать, начиная с одной компоненты на самом высоком уровне абстракции, и кончая фракталом компонент, на уровне максимально подробного моделирования. Степень подробности ограничивается лишь желанием разработчика модели.

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

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

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

Автор благодарен всем, без кого эта работа не могла бы состояться. Прежде всего – безвременно ушедшему Владимиру Юрьевичу Лебедеву, в плодотворном сотрудничестве и соавторстве с которым она начиналась.

Многолетнее постоянное общение с Юрием Николаевичем Павловским, обсуждение с ним различных подходов к построению имитационных моделей сложных систем, было определяющим в формировании предлагаемой в этой книге концепции моделирования.

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

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

Автор благодарен своим коллегам по ВЦ РАН Николаю Вадимовичу Белотелову, Виктору Александровичу Горелику, Николаю Николаевичу Оленеву, Елене Ивановне Туголуковой за многолетнее плодотворное сотрудничество и всестороннюю поддержку.

Автор также благодарен своей семье, которая мужественно и стойко терпела его погруженность в эту работу.

Введение. Моделирование сложных систем: искусство, наука, технология Большая Советская энциклопедия (статья Н.П. Бусленко) дает следующее определение сложной системы: «Сложная система – составной объект, части которого можно рассматривать как системы, закономерно объединенные в единое целое в соответствии с определенными принципами или связанные между собой заданными отношениями» [39].





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

В настоящее время моделирование такого сорта чаще всего называют агентным, однако во времена, когда автор начинал заниматься моделированием сложных систем [32 – 34], этого термина еще не было, и мы называли свои модели объектными или объектно-событийными.

Зачем моделировать сложные системы Давным-давно, за двести с лишним лет до нашей эры, первый китайский император Цинь Шихуанди захотел раз и навсегда решить проблему постоянных набегов северных кочевников на оседлых китайцев, и приказал построить Великую Китайскую Стену. Стену построили довольно быстро – за десяток с небольшим лет, однако это было сопряжено со столь значительными жестокостями властей и трудностями для народа, что до сих пор, через две с лишним тысячи лет, воспевается в китайских песнях и эпосе. Примерно понятно, какие соображения в пользу проекта были у императора, также понятно, что опыта боевого применения подобных сооружений не было ни у кого – Великая Китайская Стена до сих пор уникальна. Не было тогда и средств научного анализа уникальных проектов таких, как например, имитационное моделирование.

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

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

В марте 1983 Р. Рейган выдвинул Стратегическую Оборонную Инициативу (СОИ) – долгосрочную программу создания системы противоракетной обороны (ПРО) с элементами космического базирования, позволяющую поражать стартующие баллистические ракеты а также наземные цели из космоса.

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

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

Приведенный выше пример интересен еще и тем, что причина неэффективности СОИ кроется в законе сохранения момента количества движения – законе известном многим еще со школы. Однако непосредственно, без имитации, увидеть проявление этого закона в данной предметной области, насколько известно автору, не сумел никто из тогдашних ее исследователей. Имитационные же эксперименты достаточно быстро вывели на упомянутый закон – нужно было как-то объяснять поведение модели, достаточно странное и неожиданное для ее создателей. Например, почему решение задачи целераспределения удара по космической группировке противника всегда отдает подавляющее преимущество наземным, а не космическим ударным средствам. Или почему если все-таки принудительно сделать основным ударным средством космическую группировку (ведь столько было тогда говорено именно о «звездных войнах»), то нанесение удара по космическим объектам противника иногда начинается лишь через несколько часов(!), после отдания соответствующего приказа. Причина этих «странностей» в том что энерговооруженность ракет, стартующих с боевой станции космического базирования весьма невелика в сравнении с имеющимся у них моментом количества движения (станции движутся по орбите с первой космической скоростью). В результате эти ракеты не могут всерьез вырваться из плоскости орбиты станции и способны оперировать лишь в некоторой окрестности этой плоскости.

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

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

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

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

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

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

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

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

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

А безупречное с математической точки зрения обоснование математического анализа в исходных формулировках, с использованием инфинитезимальных (неархимедовых) чисел, появилось вообще во второй половине ХХ века. Все это время математическим анализом активно пользовались – он стал основой естественных наук.

Возникает вопрос, а столь ли важно формальнологическое обоснование интуитивных постижений? Вряд ли Ньютон с Лейбницем понимали суть матанализа хуже, чем Коши с Вейерштрассом. По-видимому (см., например, [11]), если бы Ньютону с Лейбницем показали современный учебник матанализа, они бы сказали, что вообще-то и они все это прекрасно знали и понимали, и кроме того, знали и умели еще многое, что не вошло в этот учебник.

На взгляд автора, формально-логические обоснования и учебники нужны в первую очередь не адептам искусства и интуиции (хотя бывают полезны и им: интуиция всегда нуждается в проверке, чтобы Беркли потом не очень приставали), а следующим за ними поколениям студентов науки. Формализация – язык науки, благодаря чему передача научных знаний – технология, по времени занимающая семестры. У искусства и интуиции нет такого языка, поэтому передача искусства – таинство, и занимает десятилетия (если вообще происходит).

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

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

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

Цель данной работы – попробовать внести в тему моделирования сложных систем начала формализации и затем довести эти начала до практической реализации в виде инструментальной системы распределенного имитационного моделирования сложных систем.

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

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

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

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

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

Наконец, третья глава посвящена технологии моделирования. Рассматривается компьютерная реализация концепции моделирования, описанной во второй главе – инструментальная система распределенного имитационного моделирования, предназначенная стать инструментом этой технологии.

Глава I. Распределенное моделирование сложных систем: проблемы и решения 1.1. Проблемы имитационного моделирования сложных систем Коль скоро мы заявили, что предметом этой книги в первую очередь будут модели таких сложных систем, про которые достаточно хорошо известно, из каких компонент они состоят, что эти компоненты умеют делать, по каким правилам они взаимодействуют друг с другом, – здравый смысл сразу же подсказывает основой принцип организации вычислений в такой модели – дать возможность каждой из компонент проявить себя в полной мере, и наблюдать затем, что будет происходить при этом со всем многокомпонентным комплексом.

В самом деле, как мы убедимся далее, большинство систем моделирования основывается именно на этом принципе.

Однако воплотить его в жизнь оказывается не так-то просто:

при синтезе компонент в сложную систему возникает ряд проблем. Одна из таких важных и нетривиальных проблем – управление модельным временем.

1.1.1. Управление временем в имитационных системах Простейший способ такого взаимодействия – дискретная модель с постоянным шагом моделирования, примеры таких моделей приводятся в первых главах. Однако постоянный шаг моделирования не всегда удобен, особенно при моделировании сложных, многокомпонентных явлений: различные компоненты модели имеют свои собственные характерные масштабы времени. Например, мы хотим моделировать взаимодействие двух военных блоков, находящихся на пороге войны и затем начинающих воевать. Тогда в мирное время, характерным временем изменения экономических и военных характеристик сторон будет квартал, а то и год, если в странах проводится всеобщая мобилизация и перегруппировка войск – характерным временем будет неделя, если же начались боевые действия, счет пойдет на дни, если в боевых действиях участвует авиация – на часы, а если произведен пуск баллистических ракет и работают системы ПРО – уже на секунды, т.е, характерный масштаб измерения времени сложной модели в ходе имитационного эксперимента может изменяться на несколько порядков. Поэтому достаточно «серьезные» инструментальные системы имитации должны предоставлять средства для моделирования с переменным шагом времени.

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

Возникает далеко не тривиальная проблема обеспечить правильное течение модельного времени всего комплекса.

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

Относительно этой и подобных связанных с управлением временем проблем существует немало решений. Мы не будем здесь их предварять, укажем лишь литературу, так или иначе посвященную этой теме: [3], [4], [6], [7], [8], [43], и в дальнейшем обратим внимание на то, как они решаются в приводимых ниже примерах.

1.1.2. Управление данными и ходом имитационных вычислений в системах моделирования Кроме обмена сообщениями, параллельно протекающие процессы обычно обмениваются и данными (впрочем, сообщения – тоже данные). Здесь тоже может быть ряд серьезных проблем, связанных, например, с попытками нескольких параллельных процессов одновременно модифицировать одни и те же данные, или же попыткой процесса ознакомиться с данными в момент, когда их кто-то модифицирует, – тогда в его восприятии может возникнуть такой набор данных, который, например, в принципе невозможен по логике данной модели. С подобными проблемами почти всегда сталкиваются даже опытные программисты, которым раньше не приходилось писать параллельного кода, и вдруг почему-то пришлось.

Часто эту проблему решают введением дисциплины модификации данных: в любой момент времени любой набор данных имеет право менять лишь кто-то один в системе – все остальные должны ждать, пока это право не придет к ним. Однако эта дисциплина не дает универсального решения проблемы. Придуманы примеры, когда в ее результате А ждет В, В ждет С, а С ждет А, и стало быть, все они будут ждать вечно, если в ситуацию никто не вмешается извне.

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

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

Приведем лишь один пример. Организация вычислительного процесса имитации состоит в том, что инструментальная система, в соответствии с описаниями структуры и логики модели, сделанными пользователем, создает списки вызываемых программ, описывающих функциональности компонент модели, и также написанных пользователем на тех или иных языках программирования. Затем она организует выполнение этих программ – это и есть процесс имитационных вычислений.

Заметим, что место в этих списках хотя и не случайно (скорее всего, оно зависит от того, кого первым описали, или создали, или активизировали), но скрыто от пользователя, недокументировано и поэтому неуправляемо им.

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

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

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

1.2. Решения. Примеры инструментальных средств моделирования В данном параграфе мы рассмотрим несколько реализаций средств моделирования. Автор заранее отгораживается известным афоризмом К. Пруткова от обвинений в неполноте предлагаемого обзора. В настоящее время и в самом деле немало средств моделирования, в том числе и сложных систем, в том числе и распределенных.

Из не вошедших в обзор этого параграфа, упомянем ряд открытых систем агентного моделирования: система с красивым названием MASON (Multi-Agent Simulator of Neighborhoods – разработка Университета Джорджа Мейсона, Вирджиния), SeSAm (Shell for Simulated Agent Systems) – визуальная система мультиагентного моделирования с UML-подобным интерфейсом.

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

Очень интересная разработка, на взгляд автора предвосхитившая некоторые идеи модных сейчас «облачных вычислений», много лет ведется в ВЦ РАН группой А.В. Воротынцева [42].

Однако, как учит К. Прутков, – нельзя объять необъятное!

Основная цель автора – не перечислить всех игроков данного поля, а проиллюстрировать на приведенных примерах, которые иногда представляются ему наиболее яркими, а иногда и просто, как в случае с системой MISS, более близкими, как на практике решаются обозначенные в предыдущем параграфе проблемы моделирования сложных систем. На взгляд, автора для иллюстрации наиболее распространенных решений в области построения моделей сложных систем, вполне достаточно рассматриваемых примеров.

Данный параграф по своему жанру является обзором.

Поэтому, кроме пункта 1.2.2, оригинальным в нем может быть только отношение автора к описываемым программным продуктам, некоторые оценки и выводы. Описания инструментальных систем моделирования приводятся в основном в порядке появления этих систем на свет, все они основаны на публикациях, ссылки на которые приводятся.

1.2.1. Система GPSS (General Purpose Simulation System) Система имитационного моделирования общего назначения GPSS была разработана сотрудником фирмы IBM Джеффри Гордоном в 1961 году. За 10 лет, к 1971г были созданы версий языка GPSS. В настоящее время, почти через полвека после создания первой версии, система GPSS – несомненно один из редко встречающихся действующих ветеранов в области инструментальных средств моделирования.

На нашу почву система GPSS была занесена в процессе реализации в СССР недоброй памяти проекта внедрения клонов компьютеров серии IBM 360/370, известных как ЕС ЭВМ.

Среди программного обеспечения ЕС ЭВМ система получила название ПМДС (Пакет Моделирования Дискретных Систем).

Популярности системе GPSS в нашей стране несомненно добавила изданная в те годы обстоятельная монография Т. Дж.

Шрайбера [61]. В ней была рассмотрена одна из ранних версий языка – GPSS/360, а также основные особенности более мощной V-й версии, поддерживаемой в то время компанией IBM.

В середине 80-х компания IBM прекратила поддержку проекта GPSS.

В 1984 году появилась первая версия GPSS/PC для персональных компьютеров с операционной системой DOS, разработанная компанией Minuteman Software.

Наконец, в 1993 та же компания выпустила, повидимому, наиболее популярную за все времена версию системы – GPSS World. За сравнительно небольшой период времени было выпущено несколько ее подверсий, при этом возможности системы в каждой из них все время расширялись.

Несмотря на более чем солидный возраст, система моделирования продолжает развиваться. Помимо основных версий, постоянно появляются новые, например, учебная версия Micro-GPSS, разработанная в Швеции (Ингольф Сталл, Стокгольмская Школа Экономики), там же разработана WebGPSS, предназначенная для разработки учебных имитационных моделей в сети Интернет. На Украине разработан интересный проект – Object GPSS [45], где классический язык GPSS погружен в современную среду программирования, например, Delphi. В общем, проект GPSS продолжает активно жить, включается в вузовские курсы моделирования [55], имеет достаточно широкий круг приверженцев (см., например, http://www.gpss.ru).

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

Как всегда – концепция инструментальной системы это одновременно и ее сила, и ее слабость. К примеру, можно ли на инструментальной системе MISS, которая будет описана в следующем пункте, моделировать процессы массового обслуживания? Да, и автор это делал. Однако, придется программировать самому и генераторы заявок, и очереди, и обслуживающие устройства, и статистику тоже самому придется набирать и обрабатывать. Может оно и не слишком хитро, тем не менее, программируя даже самые простые вещи всегда есть где ошибиться. А в GPSS все это дается в готовом виде и главное – при этом все уже давно отлажено и правильно работает!

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

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

Это на самом деле – достаточно тонкий момент, и поэтому нуждается в пояснении. Например, в 1983г. Р. Рейган и его консультанты навязали в определенной мере свою концепцию всему мировому сообществу. Эту концепцию вкратце можно сформулировать так: «можно сбивать стартующие баллистические ракеты противника противоракетными средствами космического базирования». И ведь нельзя сказать, чтобы эта концепция уж совсем была бы неверна – их и в самом деле можно сбивать. Только вот для этого упомянутые противоракетные средства космического базирования должны быть в нужный момент в нужном месте и в достаточном количестве.

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

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

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

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

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

1.2.2. Инструментальная система MISS (Multilingual Instrumental Simulation System) Многоязыковая инструментальная система имитационного моделирования MISS была создана в конце 80-х гг. в ВЦ АН СССР [33]. С помощью этой системы в те годы было проведено несколько имитационных экспериментов по исследованию возможностей предложенной Р. Рейганом СОИ.

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

Концепция моделирования лежащая в основе инструментальной системы MISS [32 – 34] базируется на объектном подходе, однако проработанном более детально. Инструментальная система гораздо более четко конкретизирует механизмы анализа и синтеза модели, и кроме того, дает набор средств, инструментов для их осуществления, поясним это на примере конкретизации основных понятий объектного анализа: объект – характеристики – методы – события.

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

Поэтому, одноранговое понятие объекта было детализировано следующим образом: вводится понятие группы, которая может состоять из групп и/или объектов. Объекты являются терминальными элементами этого рекурсивного определения иерархии. Таким образом, порождается дерево, отражающее иерархическое строение системы. Группа, являющаяся корнем этого дерева, называется головной группой. В концепции моделирования MISS головная группа может быть либо локальной моделью, либо частью распределенной модели, реализованной на одном компьютере. Далее, объекты сложных систем часто одновременно участвуют в нескольких процессах. Например, самолет летит, наблюдает, а может еще стрелять, бомбить, выбрасывать парашютистов и т.д. Для отражения участия объектов в различных процессах вводится понятие прибора – материального носителя этого процесса. Можно сказать, что объект оснащен рядом приборов, которые отражают его участие в тех или иных процессах, и все что ни делает объект, на самом деле выполняется одним из его приборов. Здесь следует заметить, что не всегда у прибора может быть прототип в реальности. Например, Земля вращается вокруг Солнца в силу закона тяготения, а вокруг своей оси, – по инерции, в силу закона сохранения момента количества движения, и специальных двигательных установок ей для этого не нужно. Однако при моделировании этих процессов при помощи MISS, или же каким-либо другим способом, необходимо выполнять определенные действия, например, интегрировать уравнения Кеплера, чем и должен в концепции моделирования MISS заниматься соответствующий прибор. Таким образом, мы видим, что классическое понятие объект в концепции моделирования инструментальной системы MISS реализовано тройкой понятий: группа – объект – прибор. Иерархическое строение модели иллюстрируется следующим рисунком:

Схема иерархического строения модели.

Следующее понятие – характеристики объектов. Для эффективности хранения данных, в концепции моделирования MISS, различаются константы – характеристики общие для всего типа групп, объектов или приборов (например, тактикотехнические характеристики определенной модели самолетов), и фазовые переменные – характеристики экземпляров групп, объектов и приборов (например, координаты и скорость конкретного самолета). Здесь следует заметить, что «константы»

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

Следующее понятие объектного анализа – методы. В MISS все методы групп, объектов и приборов можно разделить на два класса: служебных методов и элементов, при этом, элементы могут быть только у приборов (у которых есть также и служебные методы), а с группами и объектами могут быть связаны только служебные методы. Служебные методы – это стандартные процедуры работы с характеристиками групп, объектов и приборов, планирования событий, работы с базой данных, отображения результатов моделирования. Служебные методы входят в состав MISS, и поэтому не требуют программирования, их просто нужно знать и применять. Имеется также возможность пользователю дописывать свои собственные служебные методы. Элементы – это алгоритмы функционирования приборов, алгоритмически неделимые элементы их деятельности. Функционирование прибора постулируется как чередование выполнения его элементов из некоторого их конечного заранее известного (обусловленного конструкцией прибора) набора. Задается некий начальный элемент, далее смена элементов определяется автоматной функцией прибора, входами которой являются завершившийся элемент и наступившее событие. Алгоритмы элементов и, быть может, какие-то собственные служебные методы – вот все, что необходимо запрограммировать пользователю в рамках концепции моделирования MISS. В качестве возможных языков программирования разрешены С, С++ и МОДУЛА-2 (в принципе, в этот список мог быть включен практически любой язык программирования). Таким образом, с каждым типом или классом групп, объектов и приборов, во-первых, связан стандартный, встроенный в MISS набор служебных методов. Во-вторых, при описании типа или класса приборов, определяется набор его элементов, начальный элемент и автоматная функция переходов между элементами.

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

С точки зрения современных информационных технологий, можно было бы расширить служебные методы и на удаленные объекты, воспользовавшись, например, технологией CORBA или же.Net Framework (функциональный аналог реализаций спецификации CORBA от фирмы Microsoft, которая первоначально не входила в комитет OMG), или быть может даже более простыми средствами RMI/ROA (Remote Method Invocation / Remote Object Activation – вызов удаленного метода / активизация удаленного объекта) современных языков программирования высокого уровня. Однако во времена создания MISS ничего из перечисленных выше средств еще не существовало.

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

По-видимому, этот механизм так или иначе реализовывался во многих системах моделирования, например, о сигналах и сообщениях говорит Н.П. Бусленко в работах [39 – 40], весьма похожий механизм впоследствии вошел в спецификацию HLA [8]. По-видимому, это объясняется тем, что в жизни, при построении сложных технических систем часто поступают именно так, поэтому здравый смысл подсказывает разработчикам использовать этот механизм в своих моделях.

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

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

Схема коммутации сигналов на уровне объекта.

Рис.3.

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

На уровне прибора также остается открытым вопрос, куда попадают его исходящие сигналы, и откуда берутся сигналы, входящие в него. Эти вопросы решаются на уровне охватывающей этот объект группы. Пример коммутации сигналов на уровне группы, содержащей в себе две входящих в нее группы, показан на рисунке. Отметим еще, что в MISS кроме коммутации сигналов «один к одному», возможна коммутация сигналов «один ко многим», т.е., один исходящий сигнал может поступать на несколько входящих (но не наоборот), что также отражено на рисунке ниже.

Схема коммутации сигналов на уровне группы.

Рис.4.

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

Головная группа также может иметь входные и выходные сигналы. Факт наличия у головной группы сигналов однозначно свидетельствует, что эта группа описывает часть распределенной модели, реализованной на одном компьютере.

Если же головная группа не имеет сигналов, то это локальная модель. Считается что в распределенной модели компьютеры, на которых реализованы распределенные компоненты модели, соединены кольцом, и сигналы с сообщениями ходят по этому кольцу все время в одном направлении, например, по часовой стрелке. (Дело в том, что в 80-х сетевые технологии были развиты еще достаточно слабо, поэтому разработчикам MISS пришлось соорудить нечто подобное сети Token Ring, соединив несколько PC XT в кольцо через их последовательные порты.) В связи с чем у головной группы, помимо коммутации входных и выходных ее сигналов с соответствующими сигналами ее компонент, могут быть еще и «транзитные» сигналы, т.е., проходящие через эту группу «не задевая ее», дальше по кольцу распределенной модели к своим адресатам (т.к. другого пути к ним, кроме как через эту группу нет). Транзитный сигнал – это просто коммутация некоторого входящего в группу сигнала с неким исходящим, так как это может быть у прибора, посылающего сигнал самому себе, и так как никогда не может быть у обычных групп и объектов.

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

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

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

Например, в приведенном выше примере «про войну» таким элементом будет взрыв боеголовки баллистической ракеты (мы ведь не собирались в этой модели имитировать сам процесс взрыва). Результат работы такого элементы также появляется сразу, мгновенно (бомба взорвалась – считайте радиусы поражения). Такие мгновенные элементы в MISS называются сосредоточенными. Какие элементы будут сосредоточенными, а какие нет, зависит в конечном итоге от того, какие процессы мы хотим имитировать в данной модели. Например, если мы хотим моделировать само явление ядерного взрыва, то в такой модели это будет продолжающийся во времени процесс, возможно, состоящий из нескольких продолжающихся во времени стадий. Тем не менее, опыт показывает, что если система достаточно сложна, при любом выборе масштаба времени, какие-то достаточно важные, чтобы быть отраженными в модели элементы оказываются сосредоточенными.

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

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

Распределенные элементы вместе с условно-распределенными называются медленными элементами, в отличие от быстрых сосредоточенных.

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

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

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

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

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

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

2. системные часы переводятся на время окончания такта;

3. вызываются основные алгоритмы тех выполняемых условно-распределенных элементов, чьи таймеры запланировали их завершение на момент, совпавший с найденным временем окончания такта; если шаг по времени оказался ненулевым, вызываются основные алгоритмы всех выполняемых распределенных элементов;

4. для каждого прибора, завершившего выполнение элемента (либо потому, что он – сосредоточенный, либо потому, что заказанное таймером время завершения совпало с моментом окончания такта), в соответствии с правилами его функционирования (см. ниже) определяется, к какому элементу он должен перейти в текущей ситуации; на этом такт имитации завершается.

Для того чтобы сформулированная схема приобрела четкость рабочего алгоритма, осталось уточнить, что подразумевается в пункте 4) под правилами функционирования приборов.

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

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

Данное положение формализуется введением автоматных функций приборов. Аргументов у каждой автоматной функции два: номер завершенного элемента и еще одно целое число, которое будем называть "номером старшего реализовавшегося события". Второй аргумент требует разъяснения.

Суть в том, что для каждого прибора естественно разбить всевозможные комбинации значений булевых величин {есть сигнал, нет сигнала} на классы и считать, что при выборе очередного элемента роль играет не то, какая именно комбинация реализовалась, а то, к каким классам она принадлежит. Соответственно, для каждого элемента определяется свой набор алгебрологических функций от булевых индикаторов наличия входных сигналов, причем – такой набор, что хотя бы одна функция принимает значение "истина" при любой реализации значений аргументов. Эти функции, именуемые впредь событиями, ранжируются (нумеруются) и вторым аргументом автоматной функции служит номер старшего среди принявших значение "истина" событий.

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

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

2. просмотром в порядке убывания ранга (увеличения номера) определяется номер старшего реализовавшегося 3. номера завершившегося элемента и старшего реализовавшегося события подставляются в автоматную функцию прибора, и она дает номер следующего элемента.

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

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

Принципы синхронизации процессов.

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

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

Результатом обработки системой программирования описаний групп, объектов и приборов является либо выявление в этом описании синтаксических или же логических ошибок и указание на них, либо, если ошибок нет, можно приступить к сборке модели. Входом сборщика является откомпилированное описание головной группы, выходом – некий костяк модели, локальной, если головная группа не имела сигналов в своем описании, или же компоненты распределенной модели, функционирующей на отдельном компьютере. Сборщик строит иерархическое дерево модели, находя по операторам описания компонент головной группы сами эти оттранслированные компоненты, затем ищет компоненты этих компонент, останавливая эту рекурсию на терминальных приборах. Если какие-либо компоненты модели отсутствуют в базе откомпилированных – выдается соответствующая диагностика. Тщательно проверяется коммутация сигналов: сигнал, выйдя из прибора, не имеет права «зависнуть», он обязательно должен, в конце концов, быть может, пройдя всю иерархию модели снизу вверх и обратно сверху вниз, прийти в какой-либо прибор (может быть в несколько приборов). Кроме того, если сигнал сопровождается сообщением, необходимо, чтобы типы сообщений, описанные в приборе, посылающем сигнал и приборе его принимающем, совпали. В случае нарушения этих требований, сборщиком выдается соответствующая диагностика.

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

Обратим теперь внимание на то, как в системе MISS решались общие проблемы моделирования сложных систем, поставленные в первом параграфе этой главы.

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

Судьба системы MISS поначалу складывалась весьма удачно. Так на рубеже 80-х – 90-х гг. было инициировано создание крупного центра моделирования, идеологической основой которого была выбрана концепция моделирования MISS.

Дело всерьез шло к созданию стандарта распределенного, в том числе и полунатурного моделирования, каким в настоящее время мы знаем HLA. Была замечена система MISS и за рубежом, в 1990г. она получила первый приз в категории профессиональных программ в конкурсе программных продуктов, который проводила в СССР японская фирма ASCII Corporation – в то время один из крупных разработчиков компьютерных игр. Однако тогда реализации многих планов помешало вхождение в 1991г. нашей страны на десяток с лишним лет в «зону турбулентности». Авторам реализации MISS пришлось отложить свои разработки, одному на несколько лет, – другому, к сожалению, навсегда.

Второй подход автора к теме распределенного имитационного моделирования сложных систем произошел в середине ASCII Corporation, с 2008г. – ASCII Media Works – в настоящее время крупное японское издательство. Специализируется на публикации книг, манга (японских комиксов), журналов развлекательной и околокомпьютерной тематики, и распространении видеороманов и компьютерных игр в стиле аниме. Компания выделилась в 80-х гг. из японского отделения корпорации Microsoft, ради продвижения стандарта MSX для бытовых компьютеров на базе 8-разрядного процессора Zilog Z80. К концу 80-х стала крупным разработчиком компьютерных игр для этой платформы. На рубеже 90-х гг. планировала развернуть ряд зарубежных филиалов (США, СССР, Китай), ориентированных на разработку компьютерных игр. Реально лишь один из них, ASCII Entertainment, был создан в США в 1991г.

первого десятилетия уже нового века. Естественно, при этом хотелось учесть накопившийся в мире опыт в этой области, преодолеть недостатки предыдущей разработки и попробовать разобраться, а как вообще нужно делать такие системы. Насколько это удалось – должно показать содержание второй и третьей глав этой книги.

1.2.3. Спецификация HLA (High Level Architecture) Следует сразу отметить, что в отличие от всех остальных инструментальных средств моделирования рассматриваемых в этом параграфе, высокоуровневая архитектура распределенного моделирования HLA является спецификацией, а не инструментальной системой. Это означает, что в ней четко прописаны правила, по которым должна создаваться и работать распределенная модель. Эта спецификация открыта, что означает, что всякий может взять ее за основу, или реализовать полностью в своей собственной инструментальной системе распределенного моделирования, или в отдельно взятой модели или в части модели. Точное следование спецификации должно обеспечить разработке совместимость с другими подобными разработками. При этом, любая реализация спецификации HLA, вообще говоря, может перестать быть открытой, став коммерческим продуктом – это зависит от намерений ее разработчика.

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

Сделаем еще одну оговорку. Спецификация HLA существенно объемнее и сложнее большинства остальных приводимых в этом параграфе примеров инструментальных средств моделирования. Поэтому здесь будут отражены лишь самые важные на взгляд автора ее характеристики. Более подробно познакомиться с этой архитектурой можно, например, в работах [8], [43]. Большая подборка различных материалов на эту тему имеется на сайте Центра Грид-технологий и распределенных вычислений ИСА РАН по адресу: http://dcs.isa.ru.

Архитектура HLA для распределенного моделирования была разработана во второй половине 90-х, в интересах и при финансовой поддержке Министерства обороны США в целях обеспечения возможности взаимодействия всех типов моделей и поддержки их многоразового использования Хотя создание HLA было инициировано Министерством обороны США, с самого начала и до сих пор эта архитектура является открытым стандартом, который развивается и поддерживается подразделением DMSO (Defence Modelling & Simulation Office) Министерства Обороны США.

HLA быстро стала стандартом «де факто» для тренажеров и симуляторов в военных приложениях, поскольку Министерство обороны США неукоснительно требовало их совместимости с HLA. В 2000 г. версия 2.3 HLA была принята в качестве стандарта IEEE 1516.

Модель в HLA рассматривается как набор подмоделей различного уровня агрегирования. Также как в MISS, выделяются три основных уровня иерархии. На нижнем уровне расположены объекты, из которых может состоять федерат – средний уровень иерархии – элементарная законченная и самостоятельная модель (в том числе, быть может, выполненная «в железе», или наоборот, – живой участник человекомашинного эксперимента) в концепции моделирования HLA.

Наконец, несколько федератов, в том числе и распределенных, объединенных некоторой общей задачей, могу образовывать федерацию – третий уровень иерархии.

Функционирование федерации обеспечивает специально разработанная инфраструктура времени выполнения RTI (RunTime Infrastructure). В более простых инструментальных средствах моделирования, особенно в игровых, функционально аналогичную компоненту системы обычно называют «движком». В случае HLA, – по масштабу это скорее распределенная операционная система, обеспечивающая обработку стандартных запросов компонент модели, в первую очередь – согласованное продвижение модельного времени федерации и всех федератов, а также поддержку информационных обменов в рамках федерации между федератами. RTI предоставляет федератам множество системных сервисов, которые разбиваются на шесть групп:

1. Управление федерацией.

2. Управление декларациями.

3. Управление объектами.

4. Управление владением.

5. Управление временем.

6. Управление распределением данных.

Как уже можно видеть, структура модели в HLA весьма непроста, и для успешной реализации нуждается в формальном описании. Для такого описания архитектурой предусмотрены специальные средства. Это шаблон объектных моделей OMT (Object Model Template), которому следуют описания объектов, федератов и федераций.

В соответствии с шаблоном объектных моделей описываются объектная модель федерации FOM (Federation Object Model) и объектная модель имитации – SOM (Simulation Object Model) – на уровне федератов. В SOM прописывается все взаимодействие федерата с федерацией.

В соответствии с описанием SOM, федерат может иметь право изменять атрибуты объектов (не обязательно своих).

Через специальный сервис RTI это изменение передается другим федератам. В этом случае говорят, что первый федерат обновил атрибут, а получившие измененное значение – отобразили атрибут. Что касается чтения атрибутов объектов, в HLA это осуществляется снова через RTI, посредством механизма публикации/подписки, и опять же должно быть отражено в SOM.

Также в соответствии с описанием SOM федерат может посылать и принимать сообщения. Содержательно – это некоторые данные, генерируемые одним объектом, способные изменить состояния других объектов (аналогично, например сигналам/сообщениям MISS).

В HLA определены 10 правил, которым должны подчиняться федерации и федераты, по 5 правил для федераций и федератов.

Правила для федераций:

1. Каждая федерация должна иметь свою объектную модель FOM, задающую описание и взаимосвязи классов всех потенциально возможных в данной федерации объектов. FOM должна быть документирована в соответствии с эталоном OMT.

2. В каждой федерации все объекты должны находиться только в ее федератах, но не в RTI.

3. Во время «исполнения» федерации обмены данными напрямую между федератами запрещены; все обмены осуществляются только через RTI.

4. Федераты должны взаимодействовать с RTI только в соответствии со спецификацией интерфейсов HLA.

5. Во время работы федерации федераты могут изменять значения атрибутов различных (не обязательно своих) объектов модели. Право на такие изменения они получают от RTI. В любой заданный момент времени право изменения любого атрибута должен иметь только один Правила для федератов:

1. Каждый федерат должен иметь свою объектную модель SOM, документированную в соответствии с OMT HLA.

2. Каждый федерат должен уметь обновлять и/или отображать значения атрибутов объектов, равно как посылать и/или получать сообщения, в соответствии с тем, как это сформулировано в его модели SOM.

3. Каждый федерат должен уметь динамически во время исполнения федерации получать и отдавать право изменения атрибутов объектов в соответствии с описанием, содержащимся в его модели SOM.

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

5. Модельное время у каждого федерата в общем случае свое. Чтобы синхронизировать обмен данными с другими членами федерации, федераты должны иметь возможность управлять локальным временем своих моделей.

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

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

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

Кроме того, в спецификацию HLA кроме обычной прогонки «так быстро как возможно», включены возможности прогонки в реальном и масштабируемом времени. В результате система управления временем в HLA, как утверждается, например в [43], уникальна тем, что по-видимому, объединяет в себе возможности всех когда-либо рассматривавшихся в моделировании сложных систем схем управления модельным временем.

Поэтому автор даже не пытается дать здесь ее полное описание, тем более что это и не обязательно в контексте данной работы, а отсылает интересующихся к литературе на эту тему [3], [4], [6], [7], [8], [43], или же к упоминавшемуся уже сайту Центра Грид-технологий и распределенных вычислений ИСА РАН: http://dcs.isa.ru, где приводится быть может не самое полное, зато достаточно краткое и понятное описание.

Подведем некоторые итоги. Несомненно, из всех известных автору средств моделирования – концепция HLA намного превосходит все остальные по универсальности и широте охвата всего, что только может встретиться в моделировании сложных систем и всего, что только может совместно работать в сети.

Однако, как всегда, недостатки – оборотная сторона достоинств. Концепция HLA на взгляд автора, слишком сложна и тяжеловесна. Чтобы ее изучить, нужно никак не меньше учебного семестра, а чтобы развернуть практикум и дать возможность попробовать сделать что-то хоть самое простое своими руками, а тем более овладеть ею как своим рабочим инструментом – боюсь, что намного больше.

Вспоминается детская сказка А.М. Волкова про Урфина Джюса. В ней Джюс захватив Изумрудный город придумал себе красивый, длинный и пышный титул, вот только его новые невольные подданные, дрожа от страха, ни разу не смогли его воспроизвести, не переврав.

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

1.2.4. Инструментальная система моделирования AnyLogic Инструментальная система имитационного моделирования AnyLogic – уникальный пример отечественной и притом коммерчески успешной разработки на рынке профессиональных средств моделирования [20], [48]. Система разработана компанией XJ Technologies (http://www.xjtek.ru), первая ее версия появилась в 2000 г. Система AnyLogic изначально не позиционировалась, как распределенная, однако она открыта для создания различных надстроек, и известен опыт [60] создания надстройки, позволяющей с помощью AnyLogic осуществлять распределенное моделирование в стандарте HLA.

Система AnyLogic, представляет собой комплексный инструмент, охватывающий основные в настоящее время направления имитационного моделирования: системную динамику, системы массового обслуживания, агентное моделирование. Нас, в основном, будет интересовать последнее.

Система моделирования AnyLogic основана на объектноориентированной концепции. Эта концепция позволяет простым и естественным образом организовать и представить структуру сложной системы. Второй основной концепцией AnyLogic является представление модели как набора взаимодействующих параллельно функционирующих активностей.

Такой подход к моделированию интуитивно понятен и естественен во многих приложениях, поскольку мы с детства привыкли воспринимать окружающую действительность объектно. Активный объект AnyLogic – это объект со своим собственным функционированием, взаимодействующий с окружением. Он может включать в себя любое количество экземпляров других активных объектов. Активные объекты могут динамически порождаться и исчезать в соответствии с законами функционирования системы.

AnyLogic базируется на языке программирования Java – одном из самых мощных и в то же время простых для изучения современных объектно-ориентированных языков. Объекты, определенные пользователем при разработке модели на AnyLogic с помощью его графического интерфейса, транслируются в конструкции языка Java, которые затем компилируются в исполняемый код модели.

Хотя при построении модели на AnyLogic разработчик использует конструкции языка Java, он не разрабатывает полные программы, а лишь вставляет фрагменты кода в специально предусмотренные для этого поля окна «Код» и окон свойств объектов модели. Написанные разработчиком Java-фрагменты выражают логику тех или иных действий происходящих в модели. Эти фрагменты кода должны быть синтаксически правильными конструкциями Java, потому пользователь AnyLogic должен иметь определенное представление об этом языке.

Интеграция инструментальной системы с универсальным языком программирования – достаточно естественное решение при моделировании по-настоящему сложных систем. Такое же решение мы видим в HLA, и еще раньше в MISS.

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

Таймеры имеют примерно тот же смысл, что в MISS, их можно взводить на определенный интервал времени и по окончании этого интервала произойдет событие. Стейтчарты аналогичны автоматным функциям перехода MISS, они определяют смену состояний модели под воздействием тех или иных событий или условий. Любая сложная логика поведения объектов модели в AnyLogic может быть выражена с помощью комбинации стейтчартов, дифференциальных и алгебраических уравнений, переменных, таймеров и программного кода на Java.

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

Система AnyLogic также имеет весьма богатые средства визуализации и анимации результатов имитационных экспериментов. Кроме того в ней имеются средства соотнесения модельного времени с реальным, например, можно запустить имитационный эксперимент в реальном масштабе времени, или, например, в 4 раза быстрее реального, ну и, конечно же в обычном режиме – «так быстро, как возможно».

В целом, по мнению автора, AnyLogic – очень качественный продукт, единственный существенный недостаток которого – высокая цена лицензии, в том числе и академической. Однако и это автор готов простить, понимая, что инструментальная система имитационного моделирования не может быть массовым продуктом, как например, операционная система, и поэтому должна отрабатывать затраты на разработку.

Компания XJ Technologies динамично развивается, в настоящее время имеет Европейское и Североамериканское отделения. Отечественная IT-отрасль вполне может ею гордиться, – пожелаем же ей дальнейших успехов!

1.2.5. Системы ABMS (Agent-Based Modeling and Simulation) Системы ABMS мультиагентного моделирования начали появляться с конца 90-х, по-видимому, вначале испытав значительное влияние со стороны клеточных автоматов. В настоящее время несколько таких систем, в основном разработанных и поддерживаемых американскими университетами, стали популярными среди разработчиков биологических, социологических моделей, а также в обучении информатике.

Система Swarm (рой, толпа) – одна из первых по времени подобных систем моделирования, первоначально разработанная в Университете Санта-Фе, Нью-Мексико. В настоящее время эту разработку поддерживает группа разработчиков SDG (Swarm Development Group, http://www.swarm.org).

Программное обеспечение Swarm представляет собой набор библиотек, обеспечивающих имитационные вычисления моделей, написанных на языках программирования С++ и Java. Такие библиотеки имеются для широкого набора компьютерных платформ. Ядро системы запускает код, написанный разработчиком на языке программирования высокого уровня (С++, Java).

Основа архитектуры Swarm – моделирование набора конкурентно взаимодействующих агентов. Планировщик времени Swarm позволяет моделировать только с постоянным шагом времени. Ведутся разработки по созданию распределенной версии Swarm.

Программное обеспечение Swarm распространяется свободно. Группа SDG позиционирует Swarm как экспериментальное программное обеспечение, т. е., могущее принести определенную пользу, однако находящееся в постоянном процессе разработки.

NetLogo – система моделирования, разработанная Ури Виленским из Северо-Западного университета, родившаяся из языка программирования Logo (язык графики черепашек), предназначенного для первого знакомства детей с началами программирования (http://ccl.northwestern.edu/netlogo/).

Система NetLogo – распределенная. Так как она часто применяется в учебном процессе, обычно распределенность в ней, это совместная работа учитель – класс.

В настоящее время доступна четвертая версия NetLogo, распространяемая свободно и действующая на различных платформах. Важной особенностью этой версии языка NetLogo является появление нового типа агентов. К черепашкам (turtles) и пятнышкам (patches) добавились связи (links). Агенты нового типа открывают новые возможности для моделирования сетевых отношений. Связь в NetLogo это – агент связывающий две черепашки или два узла.

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

Язык NetLogo достаточно прост и ученики, и учителя могут создавать в этой среде свои собственные авторские модели. В то же время это достаточно мощный язык и среда для построения не слишком сложных учебных моделей.

Repast (Recursive Porous Agent Simulation Toolkit) – система моделирования первоначально разработанная в Чикагском Университете, в настоящее время разработка поддерживается некоммерческой добровольной организацией ROAD (Repast Organization for Architecture and Development), http://repast.sourceforge.net.

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

Планировщик времени позволяет моделирование с переменным шагом модельного времени. Система включает богатую библиотеку моделей и развитые средства визуализации. Система моделирования Repast первоначально не позиционировалась распределенной, однако имеются ее версии способные взаимодействовать по стандарту HLA (проект HLA_RePast), с которым можно познакомиться по адресу: http://www.cs.bham.ac.uk/research/projects/hlarepast, а также интегрированный с этим проектом проект для Grid HLA_GRID_REPAST, информацию о котором можно найти по адресу: http://www.cs.bham.ac.uk/research/projects/dsgrid.

Основой концепции моделирования являются понятия агентов – действующих сущностей модели. Иерархия вложенных контекстов (contexts) является моделью окружения агентов. Контексты могут динамически изменяться, оказывая влияние на поведение агентов. С каждым контекстом связан набор типов взаимодействия агентов (projections), которые определяют возможные отношения между агентами. В результате поведение агента в этой системе чувствительно к контексту (Context-Sensitive Behavior). К примеру, агентсолдат в «гражданском» контексте будет сидя говорить:

«Привет!», всем входящим в комнату. В «военном» же контексте он при входе старшего по званию обязан встать и отдать честь.

Система моделирования Repast – свободно распространяемая.

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

1.3. Некоторые выводы и открытые вопросы Анализ приведенных примеров реализаций инструментальных средств моделирования показывает, что авторы этих разработок в разное время, и по всей видимости независимо друг от друга (во всяком случае автору почти не приходилось видеть ссылок, свидетельствовавших бы об обратном!), приходили к весьма сходным решениям относительно способов организации вычислительного процесса имитации.

Назовем основные из этих решений:

1. Объектная декомпозиция модели.

2. Моделирование с переменным шагом времени. Декомпозиция модельного времени на события и промежутки 3. Планирование или прогнозирование событий.

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

5. Определение правил перехода между элементарными алгоритмами, как функции состояния и характеристик 6. Взаимодействие компонент модели через механизм сигналов/сообщений.

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

8. Интеграция инструментальной системы с одним или несколькими языками программирования высокого Естественно, возникает вопрос, действительно ли это набор наилучших решений из всех возможных в данной области?

Или же среди них есть случайно попавшие в список, без которых вполне можно было бы обойтись?

Кроме этого, нерешенным остается ряд проблем, связанных с моделированием сложных систем. Перечислим некоторые из них:

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

Возникает вопрос: а не можем ли мы в результате все уменьшающегося шага моделирования получить сходящуюся последовательность, наподобие знаменитой апории Зенона про Ахиллеса и черепаху? И вообще, какой способ управления временем выбрать,– их много хороших и разных [3], [4], [6], [7], [43]?

3. Большинство разработчиков описанных выше систем соглашаются, что активность сложных моделей естественно декомпозировать на ряд параллельно выполняющихся процессов. Это было бы очень выгодно с точки зрения повышения эффективности вычислительного процесса – параллельность в настоящее время магистральный и далекий до исчерпания путь повышения эффективности вычислений. Как тогда быть с взаимодействием параллельно выполняющихся компонент? Разрешать ли всем желающим доступ ко всем характеристикам и организовывать очередность доступа к ним?

Или лучше подписки? Или сигналы/сообщения? Или все вместе? Или что-то еще?

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

На поставленные выше вопросы автор попытается найти ответы в следующих главах.

Глава II. Концепция моделирования В предыдущей главе был дан обзор современного состояния концепций и средств распределенного моделирования сложных систем. Из этого обзора можно сделать следующие выводы:

1. Задача синтеза сложной системы весьма нетривиальна, однако разрешима, причем может быть решена различными способами.

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

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

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

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

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

Предположим, что мы измеряем и изучаем численные характеристики X 1, X 2,..., нашего явления. Наконец, на некотором X n нам начинает казаться, что выбранных нами характеристик уже достаточно, чтобы описать данное явление полностью, или же с интересующей нас точностью, или хотя бы только то, что интересует нас в этом явлении. Например, в ставшей классической в области глобального моделирования работе [59], Дж. Форрестеру хватило пяти внутренних переменных, для описания в некотором устраивавшем его и его заказчиков приближении всей мировой динамики.

Утверждение о том, что выбранных характеристик X 1, X 2,..., X n достаточно, чтобы полностью описать то, что интересует нас в изучаемом явлении, и есть гипотеза о замкнутости нашей модели. Из нее непосредственно следует, что если теперь нас интересует изменение выбранных нами внутренних переменных, например во времени, – то ему просто не от чего больше зависеть, кроме как от самих этих переменных (в виртуальном мире, образуемом нашей замкнутой моделью, больше просто ничего нет).

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

Если кроме изменения во времени нас интересует распределение одних внутренних переменных относительно других – получим систему дифференциальных уравнений в частных производных.

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

Гипотеза о замкнутости являет собой некий аналог неконструктивных теорем о существовании и единственности таких математических объектов, как например, решения дифференциальных уравнений. Провозглашается существование зависимостей вида (2.1)-(2.2), но ничего не говорится о том, как их найти – вид правых частей (2.1)-(2.2), вообще говоря, неизвестен.

Задача разработчика модели – найти эти правые части в виде некоторых аналитических зависимостей, или же реализовать их некоторым однозначным и детерминированным вычислительным алгоритмом.

2.1.2. Уточнение гипотезы о замкнутости, внешние переменные Выдвинутое гипотезой о замкнутости предположение о том, что мы можем рассматривать наше явление изолировано от всего остального мира (изменения внутренних переменных зависят лишь от самих этих переменных), несомненно, является определенным упрощением: на самом деле все в этом мире взаимосвязано. С этими связями разработчик модели обычно сталкивается, когда начинает придумывать и реализовывать неизвестные, но постулируемые гипотезой о замкнутости правые части уравнений (2.1)-(2.2).



Pages:     || 2 |

Похожие работы:

«Министерство образования Республики Беларусь УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ ГРОДНЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ ЯНКИ КУПАЛЫ И.И.Веленто ПРОБЛЕМЫ МАКРОПРАВОВОГО РЕГУЛИРОВАНИЯ ОТНОШЕНИЙ СОБСТВЕННОСТИ В РЕСПУБЛИКЕ БЕЛАРУСЬ И РОССИЙСКОЙ ФЕДЕРАЦИИ Монография Гродно 2003 УДК 347.2/.3 ББК 67.623 В27 Рецензенты: канд. юрид. наук, доц. В.Н. Годунов; д-р юрид. наук, проф. М.Г. Пронина. Научный консультант д-р юрид. наук, проф. А.А.Головко. Рекомендовано Советом гуманитарного факультета ГрГУ им....»

«В.Т. Смирнов И.В. Сошников В.И. Романчин И.В. Скоблякова ЧЕЛОВЕЧЕСКИЙ КАПИТАЛ: содержание и виды, оценка и стимулирование Москва Машиностроение–1 2005 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ В.Т. Смирнов, И.В. Сошников, В.И. Романчин И.В. Скоблякова ЧЕЛОВЕЧЕСКИЙ КАПИТАЛ: содержание и виды, оценка и стимулирование Под редакцией доктора экономических наук, профессора В.Т. Смирнова Москва...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ И ФИНАНСОВ КАФЕДРА ЦЕНООБРАЗОВАНИЯ И ОЦЕНОЧНОЙ ДЕЯТЕЛЬНОСТИ Т.Г. КАСЬЯНЕНКО СОВРЕМЕННЫЕ ПРОБЛЕМЫ ТЕОРИИ ОЦЕНКИ БИЗНЕСА ИЗДАТЕЛЬСТВО САНКТ-ПЕТЕРБУРГСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА ЭКОНОМИКИ И ФИНАНСОВ ББК 65. К Касьяненко Т.Г. К 28 Современные проблемы теории оценки бизнеса / Т.Г....»

«Федеральное государственное бюджетное учреждение науки Северо-Осетинский институт гуманитарных и социальных исследований им. В.И. Абаева ВНЦ РАН и Правительства РСО–А И.Т. Цориева НАУКА И ОБРАЗОВАНИЕ В КУЛЬТУРНОМ ПРОСТРАНСТВЕ СЕВЕРНОЙ ОСЕТИИ (вторая половина 1940-х – первая половина 1980-х гг.) Владикавказ 2012 ББК 72.4(2 Рос.Сев)–7 Печатается по решению Ученого совета СОИГСИ Ц 81 Ц 81 Цориева И.Т. Наука и образование в культурном пространстве Северной Осетии (вторая половина 1940-х – первая...»

«Межрегиональные исследования в общественных науках Министерство образования и науки Российской Федерации ИНО-центр (Информация. Наука. Образование) Институт имени Кеннана Центра Вудро Вильсона (США) Корпорация Карнеги в Нью-Йорке (США) Фонд Джона Д. и Кэтрин Т. Мак-Артуров (США) Данное издание осуществлено в рамках программы Межрегиональные исследования в общественных науках, реализуемой совместно Министерством образования и науки РФ, ИНО-центром (Информация. Наука. Образование) и Институтом...»

«ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ УЧЕБНО-МЕТОДИЧЕСКИЙ ЦЕНТР ПО ОБРАЗОВАНИЮ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ “УЧЕБНО-МЕТОДИЧЕСКИЙ ЦЕНТР ПО ОБРАЗОВАНИЮ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ” в г. Новосибирске ПРАЙС-ЛИСТ 2013 • УЧЕБНИКИ И УЧЕБНЫЕ ПОСОБИЯ • УЧЕБНЫЕ ИЛЛЮСТРИРОВАННЫЕ ПОСОБИЯ (АЛЬБОМЫ) • ЭЛЕКТРОННЫЕ АНАЛОГИ ПЕЧАТНЫХ ИЗДАНИЙ • КОМПЬЮТЕРНЫЕ ОБУЧАЮЩИЕ ПРОГРАММЫ • ВИДЕОФИЛЬМЫ СЛАЙД-ФИЛЬМЫ • • ПЛАКАТЫ •...»

«РОССИЙСКАЯ АКАДЕМИЯ ОБРАЗОВАНИЯ ИНСТИТУТ ПЕДАГОГИКИ И ПСИХОЛОГИИ ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Лаборатория психологии профессионального образования ЦЕННОСТИ И СОЦИАЛЬНЫЕ УСТАНОВКИ СОВРЕМЕННЫХ СТУДЕНТОВ: СТРУКТУРА И ДИНАМИКА КОЛЛЕКТИВНАЯ МОНОГРАФИЯ Казань Издательство Данис ИПП ПО РАО 2010 УДК 15 : 377 Рекомендовано в печать ББК 88.4 : 74.5 Ученым советом ИПП ПО РАО Ц 37 Ц 37 Ценности и социальные установки современных студентов: структура и динамика: коллективная монография / отв. ред. Б.С....»

«Министерство образования и науки Российской Федерации Московский государственный университет экономики, статистики и информатики (МЭСИ) Е.В. Черепанов МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ НЕОДНОРОДНЫХ СОВОКУПНОСТЕЙ ЭКОНОМИЧЕСКИХ ДАННЫХ Москва 2013 УДК 519.86 ББК 65.050 Ч 467 Черепанов Евгений Васильевич. Математическое моделирование неоднородных совокупностей экономических данных. Монография / Московский государственный университет экономики, статистики и информатики (МЭСИ). – М., 2013. – С. 229....»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН КОМИТЕТ НАУКИ ИНСТИТУТ ФИЛОСОФИИ И ПОЛИТОЛОГИИ КАЗАХСТАН В ГЛОБАЛЬНОМ МИРЕ: ВЫЗОВЫ И СОХРАНЕНИЕ ИДЕНТИЧНОСТИ Посвящается 20-летию независимости Республики Казахстан Алматы, 2011 1 УДК1/14(574) ББК 87.3 (5каз) К 14 К 14 Казахстан в глобальном мире: вызовы и сохранение идентичности. – Алматы: Институт философии и политологии КН МОН РК, 2011. – 422 с. ISBN – 978-601-7082-50-5 Коллективная монография обобщает результаты комплексного исследования...»

«Современная генетика MODERN GENETICS Francisco J. Ayala John A. Kiger, Jr. University of California, Davis SECOND EDITION Ф. АЙАЛА, Дж.КАЙГЕР генетика Современная В трех томах Том 1 Перевод с английского канд. физ.-мат. наук А. Д. Базыкина под редакцией д-ра биол. наук Ю. П. Алтухова МОСКВА МИР 1987 ББК 28.04 А37 УДК 575 Айала Ф., Кайгер Дж. Современная генетика: В 3-х т. Т. 1. Пер. с англ.:-М.: А37 Мир, 1987.-295 с, ил. Учебное издание по генетике, написанное известными американскими учеными...»

«Редакционная коллегия В. В. Наумкин (председатель, главный редактор), В. М. Алпатов, В. Я. Белокреницкий, Э. В. Молодякова, И. В. Зайцев, И. Д. Звягельская А. 3. ЕГОРИН MYAMMAP КАЪЪАФИ Москва ИВ РАН 2009 ББК 63.3(5) (6Ли) ЕЗО Монография издана при поддержке Международного научного центра Российско-арабский диалог. Отв. редактор Г. В. Миронова ЕЗО Муаммар Каддафи. М.: Институт востоковедения РАН, 2009, 464 с. ISBN 978-5-89282-393-7 Читателю представляется портрет и одновременно деятельность...»

«1 Центр системных региональных исследований и прогнозирования ИППК при РГУ и ИСПИ РАН Лаборатория проблем переходных обществ и профилактики социальных девиаций ИППК при РГУ Южнороссийское обозрение Выпуск 18 А.М. Ладыженский АДАТЫ ГОРЦЕВ СЕВЕРНОГО КАВКАЗА Подготовка текста и комментарии И.Л.Бабич Под общей редакцией А.С. Зайналабидова, В.В. Черноуса Ростов-на-Дону Издательство СКНЦ ВШ 2003 ББК 63. Л Редакционная коллегия серии: Акаев В.Х., Арухов З.С., Волков Ю.Г., Добаев И.П. (зам. отв.ред.),...»

«1 А. А. ЯМАШКИН ПРИРОДНОЕ И ИСТОРИЧЕСКОЕ НАСЛЕДИЕ КУЛЬТУРНОГО ЛАНДШАФТА МОРДОВИИ Монография САРАНСК 2008 2 УДК [911:574](470.345) ББК Д9(2Р351–6Морд)82 Я549 Рецензенты: доктор географических наук профессор Б. И. Кочуров; доктор географических наук профессор Е. Ю. Колбовский Работа выполнена по гранту Российского гуманитарного научного фонда (проект № 07-06-23606 а/в) Ямашкин А. А. Я549 Природное и историческое наследие культурного ландшафта Мордовии : моногр. / А. А. Ямашкин. – Саранск, 2008....»

«Vinogradov_book.qxd 12.03.2008 22:02 Page 1 Одна из лучших книг по модернизации Китая в мировой синологии. Особенно привлекательно то обстоятельство, что автор рассматривает про цесс развития КНР в широком историческом и цивилизационном контексте В.Я. Портяков, доктор экономических наук, профессор, заместитель директора Института Дальнего Востока РАН Монография – первый опыт ответа на научный и интеллектуальный (а не политический) вызов краха коммунизма, чем принято считать пре кращение СССР...»

«ЦЕНТР МОЛОДЁЖЬ ЗА СВОБОДУ СЛОВА ПРАВА МОЛОДЁЖИ И МОЛОДЁЖНАЯ ПОЛИТИКА В КАЛИНИНГРАДСКОЙ ОБЛАСТИ Информационно-правовой справочник Калининград Издательство Калининградского государственного университета 2002 УДК 347.63 ББК 67.624.42 П 685 Авторский коллектив А.В. Косс, кандидат юридических наук – отв. редактор (введение; раздел I, гл. 2; разделы II-III), И.О. Дементьев (раздел I, гл. 4), К.С. Кузмичёв (раздел I, гл. 3), Н.В. Лазарева (раздел I, гл. 1, 2; разделы II-III), Н.В. Козловский (раздел...»

«ИНСТИТУТ СОЦИАЛЬНО-ПОЛИТИЧЕСКИХ ИССЛЕДОВАНИЙ РОССИЙСКОЙ АКАДЕМИИ НАУК ЦЕНТР СОЦИАЛЬНОЙ ДЕМОГРАФИИ И ЭКОНОМИЧЕСКОЙ СОЦИОЛОГИИ УНИВЕРСИТЕТ ТОЯМА ЦЕНТР ДАЛЬНЕВОСТОЧНЫХ ИССЛЕДОВАНИЙ Сергей Рязанцев, Норио Хорие МОДЕЛИРОВАНИЕ ПОТОКОВ ТРУДОВОЙ МИГРАЦИИ ИЗ ЦЕНТРАЛЬНОЙ АЗИИ В РОССИЮ Трудовая миграция в цифрах, фактах и лицах Москва-Тояма, 2010 1 УДК ББК Рязанцев С.В., Хорие Н. Трудовая миграция в лицах: Рабочие-мигранты из стран Центральной Азии в Москвоском регионе. – М.: Издательство Экономическое...»

«ТЕХНОГЕННЫЕ ПОВЕРХНОСТНЫЕ ОБРАЗОВАНИЯ ЗОНЫ СОЛЕОТВАЛОВ И АДАПТАЦИЯ К НИМ РАСТЕНИЙ Пермь, 2013 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ О.З. Ерёмченко, О.А. Четина, М.Г. Кусакина, И.Е. Шестаков ТЕХНОГЕННЫЕ ПОВЕРХНОСТНЫЕ ОБРАЗОВАНИЯ ЗОНЫ СОЛЕОТВАЛОВ И АДАПТАЦИЯ К НИМ РАСТЕНИЙ Монография УДК 631.4+502.211: ББК...»

«РОССИЙСКИЙ УНИВЕРСИТЕТ ДРУЖБЫ НАРОДОВ В. Д. Бордунов МЕЖДУНАРОДНОЕ ВОЗДУШНОЕ ПРАВО Москва НОУ ВКШ Авиабизнес 2007 УДК [341.226+347.82](075) ББК 67.404.2я7+67ю412я7 Б 82 Рецензенты: Брылов А. Н., академик РАЕН, Заслуженный юрист РФ, кандидат юридических наук, заместитель Генерального директора ОАО Аэрофлот – Российские авиалинии; Елисеев Б. П., доктор юридических наук, профессор, Заслуженный юрист РФ, заместитель Генерального директора ОАО Аэрофлот — Российские авиалинии, директор правового...»

«Академия наук Грузии Институт истории и этнологии им. Ив. Джавахишвили Роланд Топчишвили Об осетинской мифологеме истории Отзыв на книгу Осетия и осетины Тбилиси Эна да культура 2005 Roland A. Topchishvili On Ossetian Mythologem of history: Answer on the book “Ossetia and Ossetians” Редакторы: доктор исторических наук Антон Лежава доктор исторических наук Кетеван Хуцишвили Рецензенты: доктор исторических наук † Джондо Гвасалиа кандидат исторических наук Гулдам Чиковани Роланд Топчишвили _...»

«Д. В. Зеркалов ПРОДОВОЛЬСТВЕННАЯ БЕЗОПАСНОСТЬ Монография Электронное издание комбинированного использования на CD-ROM Киев „Основа” 2012 УДК 338 ББК 65.5 З-57 Зеркалов Д.В. Продовольственная безопасность [Электронний ресурс] : Монография / Д. В. Зеркалов. – Электрон. данные. – К. : Основа, 2009. – 1 электрон. опт. диск (CD-ROM); 12 см. – Систем. требования: Pentium; 512 Mb RAM; Windows 98/2000/XP; Acrobat Reader 7.0. – Название с тит. экрана. ISBN 978-966-699-537-0 © Зеркалов Д. В. УДК ББК 65....»










 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.