Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
131
Добавлен:
15.02.2021
Размер:
3 Мб
Скачать
☆

Рис. 2.2. Иллюстрация работы алгоритма Краскала

Стрелки указывают на выбранные ребра: жирные линии - ребра,

составляющие кратчайшее дерево; выбранные, но не выделенные жирным

ребра (рис.2.2. - е,з,к,м,н,о) образуют цикл.

Компьютерные технологии проектирования. Часть 2

Стр. 11

2.1.2.Алгоритм Прима

Валгоритме Прима растущая часть остова представляет собой дерево

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

Рис. 2.3. Иллюстрация работы алгоритма Прима.

Компьютерные технологии проектирования. Часть 2

Стр. 12

2.2. Кратчайшие пути

Любая часть кратчайшего пути - есть кратчайший путь. Это значит, что задача о кратчайших путях обладает свойством оптимальности для подзадач

– признак того, динамическое программирование (поиск в ширину) позволит получить оптимальное решение.

2.2.1. Алгоритм Дейкстры

Алгоритм Дейкстры [14] решает задачу о кратчайших путях из одной вершины для взвешенного ориентированного графа G = (V,E) с исходной вершиной s, в котором веса всех рёбер неотрицательны (w(u,v) 0 для всех

(u,v) Е).

Впроцессе работы алгоритма Дейкстры поддерживается множество S

V, состоящее из вершин v, для которых δ(s,v) уже найдено (т.е. d[ ] = δ(s,v)). Алгоритм выбирает вершину и V \ S с наименьшим d[u], добавляет

и к множеству S и производит уточнение оценки длины пути до всех вершин,

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

не лежащие в S, хранятся в очереди Q с приоритетами, определяемыми значениями функции d.

Работа алгоритма Дейкстры показана на рис. 2.4. Исходная вершина -

крайняя левая. В вершинах указаны оценки длин кратчайших путей. Серым цветом выделены рёбра (p,q), для которых π[q] = р. Чёрные вершины лежат в множестве S, остальные находятся в очереди Q - V \ S. (а) На каждой итерации выбирается вершина u, имеющая минимальное значение d

(выделена серым цветом). (б-е) Вершина и с наименьшим значением d[u]

изымается из очереди Q = V \ S и добавляется к множеству S (в первый раз имеем и = s), при этом могут измениться оценки d[v] вершин, смежных с u .

Компьютерные технологии проектирования. Часть 2

Стр. 13

Рис. 2.4. Иллюстрация работы алгоритма Дейкстры

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

2.2.2.Алгоритм A*

Алгоритм поиска оптимального пути A* по непонятным причинам был обойден вниманием специалистов в области автоматизации проектирования радиоэлектронной аппаратуры, зато его упоминание имеется почти в каждой книге, посвященной проблеме искусственного интеллекта. На самом деле алгоритм Дейкстры, рассмотренный выше, является частным случаем этого алгоритма (при нулевой оценке оставшегося пути). Иллюстрация к алгоритму – на рис 2.5.

Компьютерные технологии проектирования. Часть 2

Стр. 14

Итак, пусть g(v) – стоимость пути от источника до вершины v;

h(v) – нижняя оценка стоимости пути от вершины v до приемника (в качестве h(v) для данной задачи примем расстояние от вершины v до приемника);

f(v) = g(v) + h(v) - нижняя оценка стоимости пути от источника до приемника, проходящего через вершину v.

1)Среди вершин графа, граничащих с приемником, найти вершину

v, имеющую наименьшую оценку f(v);

2)Если вершина v не граничит с источником определить среди вершин, достижимых из v, вершину v1 с наименьшей оценкой f1(v) (нижняя оценка стоимости пути от источника до приемника, проходящего через вершину v1 и соседнюю с ней вершину v);

3)Если вершина v граничит с источником, она является единственной вершиной графа между источником и приемником;

4)Поиск прекращается, когда найдена вершина vn, граничащая с источником, и цепочка v, v1, v2 … vn от приемника к источнику определяет искомый путь.

Компьютерные технологии проектирования. Часть 2

Стр. 15

Рис. 2.5. Иллюстрация работы алгоритма оптимального поиска A*

2.2.3. Алгоритм Ли

Алгоритм Ли [7] или, как его часто называют, волновой алгоритм, был опубликован в 1961 и предназначался для решения задачи поиска пути в лабиринте. Иногда этот алгоритм называют трассировкой в ширину.

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

Пусть требуется найти путь в лабиринте от точки A до точки B (рис. 2.6.а). Запишем единицу в каждую пустую ячейку, являющуюся непосредственным соседом ячейки A (рис.2.6.b). Затем во все пустые ячейки,

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

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

содержащими число (k – 1);

будет достигнута ячейка, содержащая B (рис. 2.6.d).

Впоследнем случае запускается «обратная волна» и легко определяется кратчайший путь (или пути) между точками A и B.

Компьютерные технологии проектирования. Часть 2

Стр. 16

А)

B) C)

D) E)

Рис. 2.6. Иллюстрация работы алгоритма Ли.

Компьютерные технологии проектирования. Часть 2

Стр. 17

2.2.4. Модификации алгоритма Ли.

Главным недостатком алгоритма Ли является тот факт, что волна

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

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

перпендикулярное первому.

Еще одна проблема адаптации алгоритма Ли к реальным условиям – это сравнительно большие (по отношению к ширине проводников) размеры переходных отверстий со слоя на слой. Большое число переходных

отверстий создает большие проблемы для трассировки оставшихся

проводников, отнимая место на плате, потенциально пригодное для прокладки трасс.

Одним из способов сокращения объема вычислений является ограничение области распространения волны. На рис. 2. 7. показаны варианты

такого ограничения. При этом надо понимать, что введение ограничения

приводит к возможной потере правильного решения (рис2.7.в). В связи с

этим автоматические трассировщики обычно в случае, если путь в

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

Компьютерные технологии проектирования. Часть 2 Стр. 18

волны.

в)

г)

Рис 2.7 Ограничение распространения волны.

а) -- волна без ограничения, б) -- ограничение зоны волны, в) – потеря решения, г) – увеличение зоны волны.

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

2.8. пропорциональна объему просмотренных ячеек. Из рисунка видно, что метод дает существенную экономию про времени работы алгоритма.

Рис. 2.8. Встречная волна.

Компьютерные технологии проектирования. Часть 2

Стр. 19

Еще один из способов ускорить работу волнового алгоритма – заставить волну распространяться неравномерно. Для этого вводится система штрафов за движение в неприоритетном направлении. На рис.2. 9. и рис.2.10.

представлены модели дискретного рабочего поля (ДРП) односторонней печатной платы с равнозначными и двусторонней ПП с неравнозначными стоимостями перемещения.

Рис.2.9. Модель ДРП односторонней печатной платы.

Рис. 2.10. Модель ДПР двусторонней печатной платы с приоритетными направлениями. (Ребро переходного отверстия показано только одно для упрощения

восприятия рисунка)

При неравнозначных стоимостях волна из круглой превращается в

Компьютерные технологии проектирования. Часть 2

Стр. 20