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

А.В. Скворцов, Д.С. Сарычев

ТЕХНОЛОГИЯ ПОСТРОЕНИЯ И АНАЛИЗА ТОПОЛОГИЧЕСКИХ СТРУКТУР ДЛЯ ГЕОИНФОРМАЦИОННЫХ СИСТЕМ И СИСТЕМ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ

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

Одной из основных задач, решаемых средствами геоин-формационных систем (ГИС) и систем автоматизированного проектирования (САПР), является поиск и анализ топологических связей территориально-распределенных объектов на карте или чертеже. Одним из средств такого анализа является теория графов. К классическим задачам, решаемым средствами теории графов в ГИС и САПР, относятся сетевые, транспортные и многие другие инженерные задачи [1, 2].

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

После перехода к хранению графики в СУБД перед идеологами ГИС встала проблема пространственных ограничений целостности. В отличие от классических транзакций, выполняемых за очень незначительный промежуток времени, геоинформационные транзакции могут занимать очень продолжительный период времени, например дни и недели, когда кем-то выполняется редактирование картографических данных. В связи с этим пришлось ввести понятие долгой (длинной) транзакции, когда ограничения целостности проверяются не во время редактирования данных, а только по специальной команде пользователя [3]. База может находиться в некорректном состоянии в любое время.

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

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

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

Виды и топологические отношения объектов чертежей и карт

Авторами выполнялись многочисленные инженерные проекты по тематике ГИС и САПР, включая разра-

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Построение графовой модели

В разработанной авторами технологии работу с графовыми моделями предполагается вести в следующем порядке.

Шаг 1. Определение типов объектов и отношений на графе. Указание списка требуемых атрибутов для каждого типа объекта. Задание атрибутного условия включения объектов в граф.

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

Шаг 3. Геометрический анализ графа, отсекаются ненужные части графа.

Шаг 4. Загрузка запрошенных атрибутов элементов графа.

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

Наиболее сложным в алгоритмическом плане является второй шаг построения графа. Остановимся на нем.

Алгоритм построения графа по карте или чертежу

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

Шаг 1. Определяем область интересов по элементам типа «область интересов». Если областей нет ни одной, то считаем областью интересов всю плоскость. В дальнейшем в граф будут попадать только те элементы, которые попали внутрь полученной области.

Шаг 2. Вставляем в граф все элементы типа «сплошные вершины» в качестве узлов графа.

Шаг 3. Вставляем в граф элементы типов «точечные объекты», «линии», «линии с присоединениями», «сложные объекты», «переключатели», «соединительные линии».

Шаг 4. Разбиваем граф на части элементами типа «барьеры».

Шаг 5. Классифицируем все вершины графа по попаданию в элементы типа «регион».

Шаг 6. Добавляем к элементам построенного графа в виде дополнительных атрибутов все элементы карты (чертежа) типа «маркеры», «полочки», «повороты» и «ассоциации». Конец алгоритма.

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

Реализация в системе ГрафИн

Описываемая технология была разработана авторами в рамках системы ГрафИн, которая имеет обширный ActiveX-интерфейс, состоящий из 235 классов, включая несколько специализированных классов для построения и анализа графов. Для использования этих классов можно написать макрос на языке VBA прямо внутри системы ГрафИн либо использовать любой другой внешний язык программирования, поддерживающий ActiveX-управление (VB, VC, Delphi и др.). Например, на языке VBA работа с графом начинается следующим образом.

Private Sub ProjectMap_CustomMouseDown

Dim G As Graph

Set G = Editor.MapContainer.CreateGraph End Sub

Далее необходимо выполнить определение используемых типов элементов графа. Например, определим ребрами графа все элементы некоторого слоя Layerld, причем укажем, что нам потребуются два атрибута и что полочки для ребра можно будет расставлять отдельно на концах ребер и в середине:

Dim SD As SourceDef

Set SD = G.AddDef

SD.AddLayerDefId SD.AddField

SD.AddField

SD.RibShelfMode = rskRibAndEnds

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

G.Precision = 5 G.Build

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

Для решения ряда стандартных задач класс Graph имеет множество специальных методов. Приведем некоторые из них.

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

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

Skeletize. Выделяет минимальный остов в графе.

AddNode, AddRib. Эти команды позволяют модифицировать построенный граф, например, заменяя ребра с арностью больше 2 на более простые комбинации по некоторой схеме замещения. Ранее существующие элементы можно удалить из графа, вызывая метод Delete этих элементов.

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

К настоящему времени на базе рассмотренной технологии авторами реализованы несколько специальных приложений. Часть из них уже были описаны ранее в [6].

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

Графовая технология широко применяется для построения схемы инженерных сетей в задачах расчета режимов и проектирования сетей, в различных аналитических задачах, например, в подсистеме де-

Рис. 1. Коммуникации на плане местности

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

б Ї«** 1ч« С#* 0*асм*р (мм Jw Ірттгя 0« С««* Ом 2 .Iffl *1 If# " 2*4*^ V Г f es fi йЬ« Г m * > V в Kl dl • О j ,ой Ö X X 31 2J nn-s«

BD-a jumnumt (сім і-  -і mn ШИ • 80^ іммаюш В И iJ Джинн со» И^^Н»ЧИ«' * 1 1 -лы — вИВ ШШТІЛЩ

Рис. 3. Зоны обслуживания разных фидеров

И 1"1 - 1-І

$ 2«* Ь*»» С#* t««» Dpoowv Е*—». M« ІРвся*» fr« Саде Qu« 2 -Itfl Kl

ff rsesbs м*> . я.' г іівікі"- ач • о . а А'- >г \ ,uui>fr яа»; < axil дш

Рис. 2. Оперативная схема электрических сетей

Рис. 4. Ввод атрибутивных данных по подстанциям

ЛИТЕРАТУРА

1. Кошкарёв А.В., Тикунов В.С. Геоинформатика. М.: Картгеоцентр-Геодезиздат, 1993. 213 с.

2. Цветков В.Я. Геоинформационные системы и технологии. М.: Финансы и статистика, 1998. 288 с.

3. ArcInfo 8 user’s guide. NY: ESRI, 2001. 568 p.

4. Скворцов А.В. Система ГрафИн // Геоинформатика: Теория и практика. Вып. 1. Томск: Изд-во Том. ун-та, 1998. С. 181-192.

5. Скворцов А.В. Инструментальная геоинформационная система ГрафИн: новая версия // Труды межд. науч.-практ. конф. «Геоинформатика-2000». Томск: Изд-во Том. ун-та, 2000. С. 90-96.

6. Жихарев С.А., Скворцов А.В. Построение и анализ графовых структур в ГИС и САПР // Геоинформатика: Теория и практика. Вып. 1. Томск: Изд-во Том. ун-та, 1998. С. 139-152.

Статья представлена кафедрой теоретических основ информатики факультета информатики Томского государственного университета, поступила в научную редакцию номера 3 декабря 2001 г.