Тестирование планарности графа с помощью матрицы его циклов

Известия ТРТУ

Тематический выпуск

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

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

УДК 519.1.

Павлов Б.И., Гладков Л.А.

Тестирование планарности графа с помощью матрицы его циклов.

Задача определения планарности графа относится к числу важнейших задач САПР и состоит в нахождении такого представления графа, при котором ребра рассматриваемого графа не пересекаются между собой. Существует множество методов тестирования графов. Самые известные из них: методы, основанные на критериях Уитни, Куратовского, метод Лина, метод Фишера- Винга. В этом сообщении будет описан метод тестирования графа с помощью матрицы его циклов. Метод базируется на следующей известной теореме Чена и Дана:

Для графа с е рёбрами V вершинами можно показать, что существование матрицы циклов диной е-у+2, содержащей ровно две «1» в каждом столбце, является необходимым и достаточным условием для утверждения, что граф планарен.

Ниже кратко будет описан предлагаемый алгоритм. Итак, основной задачей данного

алгоритма является поиск части матрицы циклов (В). Назовём эту подматрицу- Вт Для

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

Искать матрицу Вт мы, конечно, будем не полным перебором, а используя

определённый метод, описанный ниже. Пусть к примеру мы нашли достаточное для начала тестирования количество циклов (е-у+2 и более). Выберем первые е-у+2 цикла, которым будет соответствовать вектор К (11111100000). Введём также другую матрицу Е, в которой будут описаны длины циклов. Произведение двух матриц будет давать число р. Если р<2*е, то продолжается «полный» перебор (вектор К изменяется следующим образом: вначале до конца перемещается одна единица, затем пара (единиц), тройка, и т.д.). Когда р стало равно 2*е, то проверяется, в каждом ли столбце матрицы содержится ровно две единицы (в этом случае граф планарен). Если р превысило 2*е и если К будет простым вектором (вектор К- простой, если между первой и последней единицей не более одного нуля), то граф - не планарен, иначе изменение К продолжается. Итак, до тех пор пока не будет определена планарность, либо непланарность графа.

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