- •1. Автоматизированное проектирование эвм
- •1.1. Этапы жизненного цикла промышленных изделий
- •1.2. Сапр эвм и их место среди других автоматизированных систем
- •1.3. Проектирование технического объекта
- •1.4. Этапы проектирования сложных систем
- •2. Общие сведения о сапр
- •2.1. Блочно-иерархический подход к проектированию
- •2.2. Классификация сапр
- •2.4. Виды обеспечения сапр
- •3. Математическое обеспечение сапр
- •2.3. Структура сапр
- •3.1. Требования к математическому обеспечению
- •3.2. Требования к математическим моделям
- •3.3. Классификация математических моделей
- •3.4. Формализация проектных задач
- •3.5. Математические методы описания моделей конструкций эвм
- •3.3.1. Понятия теории множеств
- •3.5.2. Элементы теории графов
- •3.5.3. Деревья
- •3.5.4. Способы задания графов
- •3.5.5. Характеристические числа графов
- •3.6. Математические модели электрических схем
- •Модель схемы в виде двудольного графа g(e, u, p)
- •Модель схемы в виде гиперграфа h(e, u)
- •Модель схемы в виде мультиграфа g(e, u)
- •4. Алгоритмы автоматизированного проектирования эвм
- •4.1. Основные свойства алгоритмов
- •4.2. Элементы теории сложности
- •5. Алгоритмы компоновки
- •5.1. Алгоритм покрытия
- •5.2. Последовательный алгоритм компоновки
- •5.3. Итерационный алгоритм компоновки
- •5.4. Смешанный алгоритм компоновки
- •6. Алгоритмы размещения элементов
- •6.1. Постановка задачи
- •6.2. Математическая модель задачи размещения
- •6.3. Метод ветвей и границ
- •6.4. Конструктивные алгоритмы начального размещения
- •6.5. Алгоритм обратного размещения
- •6.6. Итерационные алгоритмы улучшения начального размещения
- •6.7. Алгоритм групповых перестановок
- •6.8. Непрерывно-дискретные методы размещения
- •6.9. Размещение разногабаритных элементов
- •7. Алгоритмы трассировки межсоединений
- •7.1. Алгоритмы построения минимальных связывающих деревьев
- •7.1.1. Алгоритм Прима
- •7.1.2. Алгоритм Краскала
- •7.1.3. Кратчайшие пути
- •7.1.4. Задачи, близкие к задаче о кратчайшем пути
- •7.1.5. Алгоритм Франка – Фриша
- •7.1.6. Задача Штейнера
- •7.2. Алгоритмы раскраски графа
- •7.2.1. Алгоритм Вейссмана
- •7.2.2. Алгоритм, использующий упорядочивание вершин
- •Порядок проведения проводников
- •Трассировка соединений
- •Волновой алгоритм трассировки
- •7.4.2. Волновой алгоритм с кодированием по mod 3
- •7.4.3. Метод путевых координат
- •7.4.4. Метод Акерса
- •7.4.5. Оптимизация пути по нескольким параметрам
- •7.4.6. Методы повышения быстродействия волнового алгоритма
- •7.4.7. Многослойная трассировка
- •7.5. Лучевые алгоритмы трассировки
- •7.5.1. Алгоритм Абрайтиса
- •7.6. Канальные алгоритмы трассировки
- •7.7. Программа автоматической трассировки specctra
- •8. Графо-теоретический подход к синтезу топологии
- •Разбиение графа на планарные суграфы
- •8.1.1. Построение графа пересечений g’
- •8.1.2. Нахождение максимальных внутренне устойчивых множеств
- •8.1.3. Выделение из g' максимального двудольного подграфа h'
- •8.2. Нахождение гамильтонова цикла. Алгоритм Робертса-Флореса
- •Нахождение гамильтонова цикла
- •8.2.2. Построение графа пересечений g'
- •8.2.3. Построение семейства ψg '
- •9. Верификация. Основные понятия
- •9.1. Место верификации при проектировании вычислительных систем
- •9.2. Изоморфизм графов
- •10. Нахождение эйлерова цикла
- •10.1. Алгоритм Флери
- •10.2. Сравнение эйлеровых и гамильтоновых циклов
- •11. Эволюционные алгоритмы оптимизации
- •11.1. Генетические алгоритмы
- •11.2. Биоинспирированные методы в оптимизации
- •11.2.1. Муравьиные методы и алгоритмы
- •11.2.2. Пчелиные методы и алгоритмы
- •Заключение
- •Список литературы
- •Законы Мэрфи для программистов. Теория ошибок
- •Алгоритмы конструкторского проектирования эвм Учебное пособие по дисциплине «Конструкторско-технологическое обеспечение производства эвм»
9.2. Изоморфизм графов
Вопрос о том, изоморфны ли два данных графа, в общем случае оказывается сложным.
Для изоморфизма двух n-вершинных графов теоретически безукоризненный способ проверки состоит в проверке всех n! взаимно однозначных соответствий между множествами вершин и установлении, совмещаются ли полностью ребра графа хотя бы при одном соответствии. Однако даже весьма грубая оценка показывает, что такое решение «в лоб» практически непригодно: уже при n=20 перебор всех n! вариантов потребовал бы десятки лет машинного времени.
Подобная ситуация, естественно, толкнула многих математиков на попытки найти такой инвариант (число или систему чисел), который бы, с одной стороны, легко вычислялся по заданному графу, а с другой – обладал свойством полноты, т.е. определял граф однозначно с точностью до изоморфизма.
Инвариантом графа G(X, U) называется параметр, имеющий одно и то же значение для всех графов, изоморфных графу G.
Вначале естественно поставить вопрос: какие характеристики графов инвариантны относительно изоморфизма?
Среди самых очевидных инвариантов отметим следующие:
1. Число вершин |X| = m.
2. Число ребер |U| = k.
3. Число компонент связности р(G).
4. Последовательность степеней вершин, т.е. список степеней всех вершин в невозрастающем порядке значений xi.
5. Плотность f(G) – число вершин клики графа G.
6. Число внутренней устойчивости (G).
7. Хроматическое число (G).
8. Число Хадвигера (G).
Эвристики для решения задач изоморфизма обычно состоят в попытках показать, что два рассматриваемые графа не изоморфны. Для этого составляется список различных инвариантов в порядке, определяемом сложностью вычисления инварианта. Затем последовательно сравниваются значения параметров графов. Как только обнаруживаются два различных значения одного и того же параметра, приходят к заключению, что данные графы не изоморфны.
Множество инвариантов, которое позволило бы этой процедуре установить изоморфность графов за полиномиальное время, называется кодом графа. К сожалению, на сегодняшний день такое множество не найдено.
По существу, эвристический алгоритм рассматриваемого типа сводится к сравнению неполных кодов двух графов. Конечно, рассмотрение большого числа инвариантов увеличивает вероятность правильного заключения об изоморфизме при совпадении всех значений параметров, но в общем случае ничего не гарантирует.
Пример. Для графов на рис. 9.1 определим значения инвариантов.
Рисунок 9.1. Графы G1 и G2
-
Инвариант
G1
G2
Совпадение
m
6
6
+
k
6
6
+
р(G)
1
1
+
Список x
3, 2, 2, 2, 2, 1
3, 2, 2, 2, 2, 1
+
f(G)
2
2
+
(G)
3
3
+
(G)
2
3
-
(G)
3
3
+
Хроматические числа рассматриваемых графов разные. Это позволяет сделать вывод, что графы G1 и G2 не изоморфны.
Для изоморфизма графов необходимо совпадение инвариантов, однако достаточным это условие не является.
Первые четыре инварианта относятся к группе «легко вычислимых». Наиболее «богатый» из них – упорядоченный список степеней вершин. Не будучи идеальным средством распознавания изоморфизма, список может, тем не менее, во многих случаях оказать существенную помощь.
Во-первых, если списки не совпадают, то отсюда сразу следует не изоморфизм графов G1 и G2.
Во-вторых, если списки совпали, то для проверки графов G1 и G2 на изоморфизм требуется перебор не всех n! соответствий между вершинами, а лишь тех, при которых сопоставляются вершины с одинаковой степенью. Так, в рассмотренном примере надо перебрать лишь 4! = 24 соответствия вместо 6! = 720.
Пример. Проверить на изоморфизм графы G1 и G2 (рис. 9.2)
|
|
х1 |
х2 |
х3 |
х4 |
х5 |
х6 |
х7 |
ρ(x) |
|
х1 |
0 |
1 |
1 |
1 |
|
|
|
3 |
|
х2 |
1 |
0 |
1 |
|
1 |
|
1 |
4 |
|
х3 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
6 |
R(G1)= |
х4 |
1 |
|
1 |
0 |
1 |
1 |
1 |
5 |
|
х5 |
|
1 |
1 |
1 |
0 |
1 |
|
4 |
|
х6 |
|
|
1 |
1 |
1 |
0 |
1 |
4 |
|
х7 |
|
1 |
1 |
1 |
|
1 |
0 |
4 |
|
|
y1 |
y2 |
y3 |
y4 |
y5 |
y6 |
y7 |
ρ(y) |
|
y1 |
0 |
1 |
1 |
1 |
|
1 |
|
4 |
|
y2 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
6 |
|
y3 |
1 |
1 |
0 |
1 |
1 |
|
|
4 |
R(G2)= |
y4 |
1 |
1 |
1 |
0 |
|
1 |
1 |
5 |
|
y5 |
|
1 |
1 |
|
0 |
1 |
1 |
4 |
|
y6 |
1 |
1 |
|
1 |
1 |
0 |
|
4 |
|
y7 |
|
1 |
|
1 |
1 |
|
0 |
3 |
Рисунок 9.2. Графы G1 и G2 и их матрицы соединений
Для графа G1 Σρ(x)=30. Список Ρ(x) = {6, 5, 4, 4, 4, 4, 3}.
Для графа G2 Σρ(y)=30. Список Ρ(y) = {6, 5, 4, 4, 4, 4, 3}.
Разобьем вершины обоих графов на классы по их степеням.
|
ρ(x)= ρ(y)=6 |
ρ(x)= ρ(y)=5 |
ρ(x)= ρ(y)=4 |
ρ(x)= ρ(y)=3 |
X |
x3 |
x4 |
x2, x5, x6, x7 |
x1 |
Y |
y2 |
y4 |
y1, y3, y5, y6 |
y7 |
Из таблицы сразу видно соответствие вершин графов:
-
X
Y
x3
y2
x4
y4
x1
y7
Для определения соответствия вершин с ρ(x)= ρ(y)=4 попробуем связать вершины из классов с ρ(x)= ρ(y)=5 и ρ(x)= ρ(y)=3 с неустановленными вершинами.
-
X
Y
x
3x2
x5
x6
x7
y
1y3
y5
y6
y2
x
4y4
x1
y7
Анализ связей вершин показывает соответствие вершин x2 и y5 (соединены с установленными вершинами х3y2 и х1y7. С учетом этого
X |
Y |
||
x |
x5 x6 x7 |
y |
y2 |
x 4 |
y4 |
||
x |
y7 |
||
x2 |
y5 |
||
Анализ связей вершин показывает соответствие вершин x6 и y1 (единственные имеют одну связь с классом вершин ρ(x)= ρ(y)=5. С учетом этого
X |
Y |
||
x3 |
x5
x7 |
y |
y2 |
x |
y4 |
||
x1 |
y7 |
||
x |
y5 |
||
x6 |
y1 |
||
Анализ связей вершин показывает, что существует две пары соответствий оставшихся вершин: вершины x5 и y3 и вершины x7 и y6, или x6 и y3 и вершины x7 и y3. Это соответствует действительности, т.к. вершины x5 и x7 в графе G1 и вершины y3 и y6 в графе G2 смежны с одними и теми же вершинами.
Из сказанного можно сделать вывод, что графы G1 и G2 изоморфны.

3
1
y3
y6
1
y3
6
4
2