Реферат
На  главнуюСтарая версия сайта

Автореферат к выпускной работе магистра

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

Актуальность темы:

Сетевые объекты распространены в различных отраслях техники как класс объектов исследования, проектирования и управления. Реальные сети, будь то шахтные вентиляционные сети или же подземные коммунальные коммуникации, имеют большое количество элементов, сильное взаимодействие управляющих элементов, нелинейность и распределение параметров. Большой размер сетей (узлов более 100), вызывает значительные трудности и возможные ошибки во время их формального описания, решения задач расчета, проектирования систем управления, оптимизации динамических процессов. Моделирование сетевых объектов является мощным фактором получения современных технических и технологических решений и осуществляется в рамках проблемно ориентированных параллельных моделирующих сред (ПОПМС).
Будучи новой формой системной организации работы параллельных вычислительных ресурсов, ПОПМС являются актуальным объектом исследований и разработок в современном моделировании [3]. Уровень автоматизации формирования моделей определяет качество моделирующей среды и зависит от функциональных возможностей средств, объединяемых в топологический анализатор (ТА) сложных динамических объектов моделирования. Последовательные алгоритмы получения условных топологических матриц предложены в [1, 2] при построении аналоговых, аналого-цифровых и цифровых моделей сетевых объектов. В статье предлагается таблично ориентированный подход к полнофункциональной разработке и реализации топологического анализатора параллельной модели сетевого объекта. Создание эффективного ТА позволит ускорить решение проблемы построения параллельных моделирующих средств для сетевых объектов с сосредоточенными и распределенными параметрами.
Средства моделирования интенсивно используются в реальных проектах для проверки правильности проектных решений и выступают тем самым как важнейший фактор, гарантирующий качество проектирования, сокращение сроков внедрения проектов и освоения управляемых динамических систем обслуживающим персоналом. Играя столь важную роль в техническом и технологическом прогрессе, моделирование как метод исследования выдвигает ряд требований к вычислительным системам и их программному обеспечению как средствам реализации моделей.

Цель и задачи исследования:

Целью данной работы является разработка, отладка и экспериментальные исследования объекта, ориентированного для проверки новых методов моделирования динамических объектов с сосредоточенными параметрами, балансировки загрузки процессов. В работе решаются следующие задачи:
  1. Рассмотрение современных методов моделирования динамических систем.
  2. Разработка алгоритмов топологического анализатора, генератора и решателя уравнений.
  3. Параллельное моделирование СО с применением библиотеки MPI.
В процессе создания модели СО предусмотрено использование теории графов, численных методов решения дифференциальных уравнений, методы параллельного программирования, экспериментальная проверка программ последовательных и параллельных алгоритмов моделирования на тестовых объектах.

Рассмотрение имеющихся решений:

Было найдено несколько программ для построения графов, в том числе и ориентированных. Наиболее интересная - это библиотека для работы с графами разработанная Алексеем Черобаевым (http://www.caravan.ru/~alexch/AGraph/algorithms.htm). Библиотека представляет широкие возможности по работе с графами различной структуры и сложности, однако невозможности использовать эту библиотеку заключается в несовпадении представления графа, так как для топологического анализатора необходимы 2 матрицы определенной структуры (приведены ниже)

Cтруктура матриц описывающих объектрис 1. Cтруктура матриц описывающих объект


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

Так на данный момент существует довольно много последовательных и параллельных алгоритмов (геометрические, спектральные, многоуровневые) разбиения графов, которые были реализованы в конкретных программных продуктах. Самыми распространенными программными продуктами из этой серии являются METIS и ParMETIS, которые были разработаны в университете Миннесоты в 1998-2003 годах. В этих программных продуктах реализован класс так называемых многоуровневых алгоритмов, которые показали довольно хорошие результаты по скорости работы и качеству создаваемых разделов. Рассмотрим их подробнее. Многоуровневый алгоритм разбиения состоит из трех этапов:
  1. Минимизация графа до нескольких сотен вершин (coarsening-стадия);
  2. Разбиение графа на заданной количество частей;
  3. Развертывание разбитого графа до первоначального размера (uncoarsening - стадия) с одновременной минимизацией связей между разделами.
  Минимизация графа. Во время минимизации графа последовательно получают из графа Gi=(Vi-1,Ei-1) меньший производный граф Gi=(Vi,Ei), причем |Vi|<|Vi-1|, где i – уровень минимизации, а |Vi| и |Vi-1| - множество вершин графа на одном из этапов минимизации. Принцип минимизации графа заключается в следующему: набор инцидентных вершин объединяется в одну при следующем уровне минимизации. Причем вес минимизированной вершины равняется сумме весов вершин, которые объединились в минимизированную. Связность минимизированной вершины тоже равняется сумме связностей первоначальных вершин. Минимизация графа завершается, когда количество вершин |Vi| в производном графе достигает значения, меньше 100.
  Разбиение графа. Для разбиения минимизированного графа разработчиками предусмотрено четыре различных алгоритма разбиения на части: спектрального деления пополам (spectral bisection), деления пополам Кернигана-Лина (Kernighan-Lin bisection), роста регионов в ширину (breadth-first region growing) и "жадного" роста регионов (greedy region growing).
  Развертывание графа. В процессе данного этапа выполняется последовательное развертывание вершин в разделах до первоначальных размеров. При этом на каждом этапе увеличения используется один из алгоритмов локального улучшения, которые базируются на алгоритме Кернигана-Лина (Kernighan-Lin Refinement). Пары вершин, которые имеют больше внешних связей с противоположным разделом, чем внутренних (внутри раздела), обмениваются местами. На этом улучшение на i-м уровне заканчивается, и выполняется переход на следующий i-1 уровень, и т.д.

Найдена программа Dot которая , выполняет построение графа по заданному шаблону. Dot - свободно распространяемая программа компании Graphviz, которая служит для построения графов, используя информацию про топологию графа [4].
В качестве выходных данных программы могут быть разные файлы, как рисунки в форматах *.jpg, *.bmp, *.gif, *.png, так и в файлах формата PostScript и др.
Выходные рисунки исходного графа и полученного из него графа алгоритма приведены ниже.
Исходный граф рис 2. Исходный граф.
Полученный граф рис 3. Полученный граф

Результаты на данный момент:

На данный момент решена задача построения генератора объектов и топологического анализатора. Генератор объекта должен создавать граф, который и является сетевым динамическим объектом, результатом его работы являются матрицы формального описания графа - это матрица инцидентности и матрица смежности. Второй ступенью разработки являлась создание топологического анализатора, который по результатам генератора должен создать представление объекта удобное для его анализа и численного решения.
Ниже представлена иллюстрация работы алгоритма генератора объекта.
Иллюстрация работы алгоритма генератора объекта рис 5. Работы генератора объектов
Краткий алгоритм действий по построению ориентированного графа.
  1. Выбор количества узлов графа.
  2. Случайное распределение количества подсоединяемых ветвей к каждой вершине.
  3. Построение цепи охватывающей все узлы.
  4. Переход на вершину, и просмотр имеется ли у нее свободный "порт"для подсоединения очередного ребра, если да то подсоединяем эту вершину к другой со свободным портом.
  5. Остались свободные "порты"? ДА то переход на 4. НЕТ, переход на 6.
  6. Выход.
Для последующей работы необходимо разбить граф на дерево и антидерево. Пусть ветви относящиеся к дереву будут входитьт в вектор X, а верви антидерева в Y. И после этого необходимо получить матрицы A и S в таком виде A = (Ax Ay), S = (Sx Sy). Для этой цели разработан топологический анализатор.
Топологический анализатор – это составная часть проблемно ориентированной параллельной моделирующей среды, которая должна выполнять следующие функции :
  1. дружественное к пользователю графическое представление топологии исследуемого сетевого объекта с возможностью выделения фрагментов и оперативного изменения состава и связей между элементами фрагментов;
  2. кодирование топологии сетевого объекта в форме, сочетающей формализацию связей, задание параметров и вербальное описание существенных для данной предметной области компонент;
  3. автоматизированное построение дерева и антидерева графа сетевого объекта с возможностью выбора вариантов, предпочтительных для разработчика параллельной модели;
  4. автоматическая перекодировка топологии в соответствии с выбранным вариантом дерева и антидерева;
  5. автоматическое генерирование топологических матриц инциденций А и независимых контуров, соответствующих выбранному дереву и антидереву графа сети;
  6. диалоговая поддержка всех функций, исчерпывающая визуализация и документирование результатов топологического анализа, интеграция со всеми компонентами моделирующей среды.
Структура ТА. рис 6. Структура ТА.
Сетевой объект рассматривается как граф G(U, Q) с n = |U| узлами и m = |Q| ветвями и кодируется следующей таблицей TABUR
Предлагаются таблично ориентированные алгоритмы построения дерева (антидерева), матриц инциденций А и контуров S. Они ориентированы на возможное распараллеливание при реализации в ПОПМС [3] и являются модификациями алгоритмов, описанных в [1, 2].
Алгоритм построения дерева включает следующие операции :
  1. ввод и инициализация исходных данных;
  2. определение части дерева относительно первой строки. Из таблицы TABUR выполняется анализ строк (строка – элемент данных, хранящий в себе начальный узел, конечный узел и номер ветви), у которых совпадают начальные узлы и не совпадают конечные. Эти строки заносятся в таблицу дерева BAUMTAB;
  3. основной этап формирования дерева. Выбирается первая строка из BAUMTAB. Затем в BAUMTAB включаются те строки, у которых начальный узел совпадает с конечным узлом строк, уже занесенных в BAUMTAB и не совпадает конечный узел с начальным соответственно;
  4. анализ конца построения дерева. Если число строк BAUMTAB станет равным n-1, то на этом процесс построения закончен, иначе повторяется предыдущий пункт относительно следующей строки BAUMTAB.
Для поиска таблицы антидерева ANTIBAUMTAB необходимо из таблицы TABUR выбрать те строки, которые не входят в BAUMTAB.


Имеющиеся такие результаты: Файлы с матрицами A, S, Ax, Ay, Sx, Sy, A_arch, Ax_arch, Ay_arch, Sx_arch, Sy_arch. Файлы в именах, которых присутствует - "_arch" являются оптимизированными копиями больших матриц, потому как для большего объекта с параметрами 1000 узлов, 8000 ребер, размер файлов примерно такой: А-15Мб, Ах-1,9Мб, S-109Mb, Sx - 19Mb, Sy - 90Mb, а упакованные они составляют: A_arch - 650Kb, Sx_arch - 750Kb, Sy_arch - 1.4Kb соответственно.
Общие время работы ГО и ТА составляет около 3 минут (большой СО), для небольших объектов время генерации не превышает 1 секунды.

Направления продолжения работы:

Направления для продолжения работы это разработка генератора уравнений, решателя уравнений и непосредственное параллельное моделирование сетевого объекта.
Решатель уравнений должен представлять собой программу, реализующую циклический алгоритм численного решения матрично-векторных систем уравнений. Воспользуемся численным методом Адамса-Бошфорта, который реализован в существующих последовательных языках моделирования.
Сделаем попытку унифицировать процессы решателя уравнений в дополнение к тому, что они структурированы матрично-векторной формой записи.
По-видимому, есть смысл этот этап делать в таком порядке:
  1. схема решателя
  2. анализ подходов к распараллеливанию программы РУ
  3. расcмотрение SPMD - принципа
  4. организация связи между процессами

Заключение:

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

Список литературы:

  1. Святний В.А. Проблемы параллельного моделирования сложных динамических систем. Випуск 29:-Донецк, ДонНТУ, 2001. - С.229 - 234.
  2. Цой С., Цхай С.М. Прикладная теория графов. - Алма-Ата: Наука, 1971, 500 с.
  3. Svjatnyj V.A., Rasinkov V.V., Braeunl T., Reuter A., Zeitz M. Problemorientierte massiv parallele Simulationsumgebung fuer dynamische Netzobjekte. Simulationstechnik, 10. Symposium, Dresden, 1996, S.515-518.
  4. Gansner E., Koutsofious E., North S. "Drawing graphs with dot" 2002. [1-40]

Наверх

created by Davletchanov Dmitry aka dr_zlo
английская |библиотека | результаты поиска | индивидуальное задание | список ссылок | сайт ДонНТУ