Научная статья на тему 'Теория объектно-событийных моделей последовательных и параллельных программ. Основные положения'

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

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Пекунов В.В.

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

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

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

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

Литература

1. Kimball R. The Data Warehouse Toolkit: Practical Techniques for Building Dimensional Data Warehouses / John Wiley & Sons, New York, 1996. - 324р;

2. Правительство Российской Федерации, «Основные положения функционирования розничных рынков электрической энергии», Постановление Правительства РФ № 442 от 4 мая, Москва 2012 г.;

3. Фомин И. Н., Методика поэтапного автоматизированного расчёта стоимости потреблённой электроэнергии // Труды Академэнерго, Москва, 2013 № 3, с. 103-115;

4. Фомин И. Н., Учётные и расчётные функциональные характеристики автоматизированной системы для расчёта цены и стоимости электроэнергии // Проблемы управления в социальноэкономических и технических системах ИЦ "Наука", Саратов, 2013. с. - 135-138;

5. Минский М., Фреймы для представления знаний / М. Минский. - М.: Мир, 1979 - 234с.;

6. Codd E. F., Relational Completeness of Data Base Sublanguages, Database Systems, 1970. p. 65-98;

7. Тиори Т., Фрай Дж., Проектирование структур баз данных, / Т. Тиори, Дж. Фрай. - М.: Москва, Мир, 1, 1985, с.18-19;

8. Буч Г., Объектно-ориентированное проектирование с примерами применений, / Г. Буч, М.: Диалектика, Киев & И.В.К., Москва, 1992;

9. Хаггарти Р., Дискретная математика для программистов / Р. Хаггарти - М.: Техносфера, 2003. -320 с.;

10. Фомин И. Н., Интегральный и интервальный метод расчёта энергопотребления в информационных биллинговых системах // Наука и образование, Межотраслевой институт «Наука и образование», Екатеринбург, 2015 г., № 1(8), с. 11-14.

УДК 004.045:519.681

ТЕОРИЯ ОБЪЕКТНО-СОБЫТИЙНЫХ МОДЕЛЕЙ ПОСЛЕДОВАТЕЛЬНЫХ И ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ОСНОВНЫЕ ПОЛОЖЕНИЯ

Пекунов Владимир Викторович, д.т.н., Россия, Иваново, pekunov@mail.ru

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

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

Второй подход, несомненно, позволяет строить более компактные модели. Помимо классических блок-схем, UML-диаграмм деятельности (Activity diagram) и иных схожих формализмов отметим возможность применения ряда имитационных моделей, описывающих структуру и поведение программ (кусочно-линейные агрегаты Бусленко [1], событийные

17

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

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

Лемма А1. В процессе исполнения любой последовательной или параллельной программы любая вычислительная система (машина) осуществляет серию переходов между звеньями обработки (узлами системы, выполняющими чтение, анализ, синтез и сохранение данных), отображаемую трассой исполнения (см. рис. 1, где толстыми линиями обозначены выполненные в процессе функционирования переходы, отображенные трассой, а тонкими линиями — прочие возможные переходы). Одноименным, однозначно идентифицируемым по имени, элементам трассы исполнения соответствует факт прохождения системы через одно и то же звено обработки. Каждому этапу трассы соответствует один или несколько (обрабатываемых параллельно на одном и том же интервале времени) элементов. Любое звено реализует параметризованный алгоритм, обрабатывающий внутренние переменные своего состояния и/или внешние данные. Его исполнение определяется комплексом: а) глобальных данных вычислительной системы, б) параметров вызова, которые могут быть реализованы в рамках глобальных данных, в) значений внутренних переменных. Иных побочных эффектов нет.

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

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

Доказательство. Вытекает из A1.

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

Доказательство. Непересекаемость интервалов следует из A1, поскольку этапы трассы исполняются последовательно. Строгий порядок событий следует из отношения строгого порядка интервалов времени.

Следствие У2.1. Априорно можно считать параллельным исполнение этапов трассы, соответствующих одному событию. Для установления последовательности их исполнения необходимы дополнительные средства, устанавливающие очередность прохождения.

18

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

Доказательство.

1. Возможность сопоставления события отдельному методу следует из A1, У2 и определения метода в рамках объектно-ориентированного подхода. Метод интерпретируется как фрагмент алгоритма звена обработки, активный в контексте данного события.

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

3. Внутреннее состояние алгоритма A и производных от него алгоритмов представляется полями класса C.

4. Параметризация вызовов исходного алгоритма A, таким образом, сводится к параметризации эквивалентных им по действию вызовов методов класса C.

5. Возможность использования полиморфизма и наследования не противоречит ни одному из введенных утверждения и вытекает из идеи применения ООП.

Рис. 1 - Вычислительная система, обладающая трассой исполнения Базовая теорема ОСМ ^М1).

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

19

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

В. Граф должен быть связным и ациклическим.

На рис. 2 показан пример графово-событийной схемы с календарем событий, который к текущему моменту уже включал четыре спланированных события работы с неким ресурсом («Размещение», «Инициализация», «Вызов» и «Освобождение»), причем объект номер 2 в одном из своих методов планирует новое событие «Событие» между «Вызовом» и «Освобождением», подписывая на него (понятие подписки вводится далее теоремой ТМ3) объект 4.

Рис. 2 - Модель фрагмента программы в виде графово-событийной схемы

Доказательство.

A. Следует из У1, У2, Л1

Б. Следует из самого утверждения.

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

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

Доказательство. Если следующие узлы некоторых исходящих ветвей

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

20

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

Доказательство. Аналогично доказательству Л2.

Теорема об интерпретации связей (ТМ2). В ходе реакции на одно событие методы объектов, соответствующих узлам, исполняются в порядке, соответствующем идеологии сетевого графика работ (см. рис. 2), если отсутствие реакции объекта на событие смоделировать реакцией, состоящей в вызове пустого или предопределенного метода.

Доказательство. При реакции на одно событие узлы модели активизируются по входам и активизируют выходы в соответствии с И-логикой, это следует из ТМ1, Л2, Л3 с учетом допущения о моделировании отсутствия реакции. Это логика сетевого графика работ.

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

Теорема о планировании событий (ТМ3). Модель программы, трасса исполнения которой заранее неизвестна или меняется в зависимости от внешних данных, реализуется путем условного планирования (генерации) событий и подписки на события в методах объектов-узлов модели. В остальных случаях может использоваться безусловное планирование событий. Начальный КС содержит как минимум одно событие, на которое реагирует как минимум один объект.

Каждый объект A имеет возможность включить в КС новое событие. Планирование события является атомарной транзакцией.

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

На любое событие объект реагирует только в одном методе. Это либо метод, указанный при проектировании модели, либо последний из указанных по подписке, либо пустой/предопределенный метод.

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

Следствие. КС должен относиться к глобальным данным.

Теорема ТМ4. Событие удаляется из календаря сразу же после его наступления.

Теорема будет доказываться совместно с теоремой ТП1.

Утверждение У3. Объектно-событийная модель процесса/программы/алгоритма должна удовлетворять определениям, данным теоремами ТМ1, ТМ2, ТМ3, ТМ4.

Теорема о самодостаточности ОСМ (ТМ5). Объектно-событийная модель является самодостаточной в смысле реализации.

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

Теорема об абстрактной предельной ОСМ (ТП1). Предельной абстрактной (атомарной) объектно-событийной моделью назовем модель, включающую единственный

21

узел и обладающую календарем, вмещающим не более одного события. Такая модель равномощна машине Тьюринга (МТ).

Доказательство. Определим соответствие. Множество команд вида qiai—>q_jajdj любой программы (qi и q — исходное и следующее состояние, ai и aj — символы алфавита в текущей ячейке ленты до и после исполнения команды, dj — направление перемещения головки), исполняемой МТ, может быть разбито на группы относительно qi. Если рассматривать переход в qi как событие с идентификатором qi в текущем контексте, то указанные группы команд являются методами некоего класса, реагирующими на такое событие. Метод включает условное планирование (условием является наличие ai в текущей ячейке, при его истинности планируется новое события с идентификатором qj), выполнение элементарных действий по замене ai на aj в текущей ячейке и перемещение головки в направлении dj. Лента МТ рассматривается как блок глобальных данных, положение головки — внутреннее состояние (поле класса). МТ всегда обладает начальным состоянием, эквивалентным начальному событию в календаре.

Предельная ОСМ не реализует подписку на события, аналог которой отсутствует в МТ. Это не противоречит ТМ3, поскольку предельная ОСМ включает лишь один узел.

Все требования У3 для МТ удовлетворены.

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

Таким образом, доказана не только текущая теорема, но и теорема ТМ4.

Теорема о вычислимости алгоритма (ТВ1). 1. Если алгоритм вычислим по Тьюрингу, то он реализуем с помощью ОСМ. 2. Если алгоритм реализуем с помощью ОСМ, то он вычислим по Тьюрингу.

Доказательство.

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

2. Согласно ТМ5 и ТП1 реализация алгоритмов на ОСМ с очевидностью сводится к исполнению эквивалентных им программ МТ (с точностью до передач управления) на серии абстрактных предельных ОСМ, равномощных МТ. Передача управления может быть элементарной командой или набором команд МТ. Доказано.

Теорема о реальной предельной ОСМ (ТП2). Предельной реальной (неатомарной) ОСМ назовем процедуру с планированием повторного входа (111111В) [4]. Это модель, состоящая из одного узла-объекта, обладающего единственным методом реакции на все события. Планирование события ограничивается планированием в начало и конец календаря. Такая модель в пределе позволяет реализовать любой алгоритм.

Доказательство.

Описательные возможности такой ОСМ покрывают все возможности предельной атомарной ОСМ, эквивалентной машине Тьюринга. Следовательно, предельная неатомарная ОСМ также позволяет описать любой алгоритм.

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

22

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

Следствие ТП2.1.

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

Утверждение о цепи процедур (УЦП1). Для реализации как векторного, так и конвейерного видов параллелизма необходимо ввести понятие цепи 111111В [4], то есть вектора ПППВ, в котором план каждой 111111В может полностью или частично генерироваться как самостоятельно, так и в ходе работы предыдущей ИЛВ.

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

Доказательство.

1. Реализуемость и механизмы порождения и слияния параллельных ветвей следуют из Л2, Л3. Целесообразно планировать соответствующие события порождения A1 и слияния A2. Урождаемые процессы планируют прочие события, необходимые для описания логики их работы, на промежутке ]A1,A2[. Механизмы представления точек барьерной синхронизации и взаимного исключения ветвей тривиальны и здесь не приводятся.

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

2. Лроизвольный последовательный процесс может быть запущен планированием нового события, обрабатываемого или отдельным узлом, методы которого описываются некоторыми, например, предельными ОСМ, реализующими произвольные алгоритмы согласно Т11, или комплексом таких узлов, не порождающих параллельных по событиям ветвей. Согласно Л2 и Л3 в таком комплексе можно описать условное исполнение. Согласно ТМ3 можно представить произвольный переход, в том числе замыкающий цикл.

Теорема об абстрактной предельной параллельной ОСМ (ТП3).

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

Доказательство. Для описания k независимых параллельно работающих ветвей программы необходимо наличие k параллельно работающих (в пределах одного события) узлов, что следует из У2.1. Между ними не определено отношение следования, согласно ТМ1. Работа каждого процесса ограничивается выполнением алгоритма, обеспечивающего обработку единственного события, то есть единственного метода. Таким методом может быть предельная ОСМ, как очевидно из Т11 и Т12, равномощная или покрывающая возможности МТ, способная реализовать произвольный алгоритм. Стартовый узел может не иметь методов и выполнять роль точки порождения параллельных процессов. ОСМ должна быть связной, согласно ТМ1, следовательно должен сосуществовать хотя бы один узел,

23

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

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

Доказано.

Утверждение о реальной предельной параллельной ОСМ (ТП4). Предельной реальной параллельной ОСМ будет являться такая разновидность процедуры с планированием повторного входа (параллельная ПППВ), в которой событию соответствует группа параллельно исполняемых процедурой этапов плана обработки, причем параметры этапа плана хранятся в глобальных данных. При исполнении группы этапов плана логичным представляется применение формализма «портфеля задач» [6].

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

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

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

Литература

1. Бусленко Н.П. Лекции по теории сложных систем / Н.П. Бусленко, В.В. Калашников, И.Н. Коваленко. — М.: Сов. радио.— 1973.— 440 с.

2. Востокин С.В. Графический метод проектирования и исследования свойств параллельных программ с использованием асинхронной событийной модели вычислений / С.В. Востокин. — Электронный журнал «Исследовано в России». — 2004.— 54.— С. 613—627. — http://zhumal.ape.relam.ru/articles/2004/054.pdf

3. Пекунов В.В. Новые методы параллельного моделирования распространения загрязнений в окрестности промышленных и муниципальных объектов: дис. ... докт. техн. наук / В.В. Пекунов. — Иваново, 2009. — 274 с.

4. Пекунов В.В. Процедуры с планированием повторного входа в языках высокого уровня при традиционном и параллельном программировании / В.В.Пекунов // Информационные технологии.— 2009. — №8. — С.63-67.

5. Шалыто А. А. Программирование с явным выделением состояний / А. А. Шалыто, Н. И. Туккель // Мир ПК.— 2001.— №8.— С.116—121; №9.— С.132—138.

24

6. Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования / Г.Р. Эндрюс. — М.: Издательский дом «Вильямс», 2003. — 512 с.

УДК 004.023 + 004.424

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

АЛГОРИТМОВ

Матренин Павел Викторович, аспирант, Кафедра автоматизированных систем управления, Новосибирский государственный технический университет, Россия, Новосибирск,

pavel.matrenin@gmail.com

Введение

В настоящее время во многих областях необходимо решать задачи дискретной или непрерывной глобальной оптимизации. Такие задачи часто нелинейны, недифференцируемы, имеют множество локальных экстремумов, характеризуются высокой вычислительной сложностью [1]. Для них часто невозможно составить аналитическое выражение, потому что модель имеет сложную структуру и многочисленные взаимосвязи между элементами, что приводит также к высокой трудоемкости вычислений и сложной топологии области допустимых значений. Для подобных задач оптимизации наиболее эффективны стохастические методы, такие как методы эволюционной оптимизации, методы роевого интеллекта, алгоритмы имитации отжига. Первые две группы относятся к так называемым популяционным методам, поскольку используют системы, состоящие из агентов. Как правило, под агентом понимается некоторая точка в пространстве поиска решений задачи, а процесс оптимизации заключается в перемещении агентов в этом пространстве с помощью некоторых правил [2, 3], либо в создании на каждом шаге новых популяций агентов с учетом опыта, полученного предыдущими популяциями [4]. Таким образом популяционные методы могут автоматически исследовать область решений независимо от ее размерности и топологии. Наиболее важными преимуществами методов являются гибкость и возможность относительно быстро получать решения, близкие к оптимальным [5].

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

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

В рамках объектно-ориентированного программирования каждый алгоритм оптимизации можно рассматривать как класс. Полезно использовать единые интерфейсы таких классов, чтобы применение того или иного алгоритма выполнялось единообразно. В этом случае можно применить шаблон проектирования «Template method», который задает общую структуру поведения связанных классов [7]. При этом детали поведения отдельного алгоритмов задаются в реализации дочерних классов. Общими для дочерних классов будут методы управления алгоритмами, настройки, инициализации, перемещения агентов и возвращения результатов работы. Пример базового класса на языке программирования C++ приведен ниже.

class Optimizator {

public:

25

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