Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Алгоритм, использующий упорядочивание вершин
Алгоритм состоит из следующих операций: 1. Положить j = 1; 2. В матрице R подсчитываем число ненулевых элементов ri; 3. Упорядочим вершины графа в порядке невозрастания ri.; 4. Просматривая последовательность слева направо, красить в цвет j каждую неокрашенную вершину, не смежную с уже окрашенными в этот цвет; 5. Если остались неокрашенные вершины, то удалить из матрицы R строки и столбцы, соответствующие окрашенным вершинам. Положить j = j + 1 и перейти к п. 2, иначе, задача решена. Пример.Раскрасить вершины графа рис.7.20.
Рисунок 7.20. Исходный граф и его матрица соединений 1. Положим j = 1; 2. Упорядочим вершины графа в порядке невозрастания ri. x1, x2, x3, x4, x5, x6, x7, x8; 3. Красим в первый цвет вершины x1 и x3. Вершины x4, и x8 смежны вершине x3, остальные – смежны вершине x1; 4. Остались неокрашенные вершины, поэтому удалим из матрицы R строки и столбцы, соответствующие вершинам x1 и x3. Положим j = j + 1 = 2. 5. Упорядочим вершины графа в порядке невозрастания ri: x2, x4, x5, x6, x7, x8; 6. Красим во второй цвет вершины x2, x4 и x8. Вершины x5 и x7, смежны вершине x4, вершина x6 смежна вершине x2; 7. Остались неокрашенные вершины, удалим из матрицы R строки и столбцы, соответствующие вершинам x2, x4 и x8. Положим j = j + 1 = 3. 8. Упорядочим вершины графа в порядке невозрастания ri : x5, x6, x7. 9. Красим в третий цвет вершины x5 и x7. Вершина x6 смежна вершине x5; 10. Осталась неокрашенная вершина, удалим из матрицы R строки и столбцы, соответствующие вершинам x5 и x7. Положим j = j + 1 = 4. 11. В четвертый цвет окрашиваем вершину x6. Все вершины окрашены. Достоинство алгоритма – быстродействие. Недостаток – не оптимальность. Для раскраски вершин графа приближенным алгоритмом потребовалось четыре цвета. А хроматическое число графа c(G) = 3. Действительно, если в первый цвет окрасить вершины x1, x4 и x8, во второй – x2 и x5, то в третий можно окрасить оставшиеся вершины x3, x6 и x7. Это связано с тем, что алгоритм рассматривает только количественные характеристики вершин, и не рассматривает качественные. Так, степени вершин x3 и x4 одинаковые, но вершина x3 смежна висячей вершине x8, а вершина x4 – сильносвязным вершинам x5 и x7. С. На третьем этапе определяется последовательность проведения соединений, т. е. указывается, когда каждый проводник будет проведен. Порядок проведения проводников Трассировка цепей выполняется последовательно, и каждая проложенная трасса является препятствием для еще не проведенных. В связи с этим большое значение приобретает задача нахождения последовательности проведения соединений в каждом слое. Порядок трассировки оказывает значительное влияние на качество трассировки. Рассмотрим пример (рис. 7.21 (а)). Необходимо соединить одноименные контакты. Если первыми соединять контакты а, то контакты b можно соединить с небольшим обходом (рис. 7.21 (б)). Если же первыми соединять контакты b, то соединение контактов a значительно увеличит длину проводника (рис. 7.21 (в)).
Рисунок 7.21. Зависимость качества трассировки от порядка проведения проводников Еще один пример (рис. 7.22 (а)). Задача та же. Если первыми соединять контакты b, то и контакты а легко соединяются (рис. 7.22 (б)). Если же первыми соединять контакты а, то контакты b окажутся заблокированными (рис. 7.22 (в)).
а б в Рисунок 7.22. Влияние порядка проведения проводников Идея алгоритмов определения порядка проведения соединений заключается в том, что первыми проводятся проводники, меньше «мешающие» другим проводникам. Метод прямоугольников 1. Для всех пар контактов строятся минимальные охватывающие прямоугольники; 2. Для каждого прямоугольника подсчитывается число контактов других соединений, попавших в данный прямоугольник; 3. Соединения упорядочиваются по неубыванию этих чисел; 4. Получен порядок проведения соединений. Пример. Определить порядок проведения соединений (рис. 7.23 (а)). Рисунок 7.23. Определение порядка проведения проводников 1. Строим минимальные охватывающие прямоугольники (рис. 7.23 (б)); 2. Число контактов других соединений, попавших в данный прямоугольник 1 – 0; 2 – 1; 3 – 2; 4 – 4; 3. Упорядочим соединения 1, 2, 3, 4; 4. Проведем соединения в найденном порядке (рис. 7.23 (в)). В пакетах автоматизированного проектирования заложена возможность редактирования стратегии трассировки, а именно, выбрать порядок проведения проводников (RouteOrder): Short – Long – сначала короткие, потом длинные, или Long -Short- сначала длинные, потом короткие. Анализируя результаты работы метода, можно сделать вывод, что первыми следует проводить короткие проводники. Но в этом случае автоматически разводятся простые соединения, заполняя коммутационное пространство (согласно закону Паркинсона «Работа заполняет время, отпущенное на неё»), оставляя длинные проводники на ручную доработку. Поэтому при применении вариантаShort-Long число неразведенных связей меньше, но ручная допроводка сопряжена с большими трудностями, чем при использовании вариантаLong-Short. С другой стороны, если первыми проводить длинные соединения, то на заполненном коммутационном поле короткие проводники станут длинными. Лучший вариант можно выбрать, применив обе стратегии трассировки. D. На четвертом этапе дается ответ, каким образом (каким алгоритмом) должно быть проведено каждое соединение. Трассировка соединений
Это основной и наиболее трудоемкий этап, определяющий эффективность и качество трассировки в целом. Алгоритмы трассировки можно разбить на следующие группы: 1. Волновые; 2. Лучевые; 3. Канальные.
Популярное:
|
Последнее изменение этой страницы: 2017-03-10; Просмотров: 1043; Нарушение авторского права страницы