Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания для курсовой работы_В.В.В..doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
448.51 Кб
Скачать
  1. Создаем вспомогательные массивы D и H размерностью (1х n). Вычисляем матрицу расстояний между точками R= .

  2. В ыбираем первую строку матрицы R, заносим ее в массив D(i):=R(1,i); H(i):=1, i =1,…,n. В строке D(i) выбираем элемент под номером “1”.

  3. Помечаем первый столбец матрицы R знаком  R(j,1):= , j=1,n, для того, чтобы исключить первую выбранную точку из дальнейшего рассмотрения. Переход к п.4.

  4. Определяем минимальный элемент в строке D(i), помечая его “р”.

  5. И сключаем из дальнейшего рассмотрения выбранный в строке D(i) (i=1,n) элемент с номером р. Для этого D(p):=  и столбец р матрицы R помечаем знаком .

  6. Сравниваем значения соответствующих элементов р-й строки матрицы R и строки D(i) . Если R (p, k) > Dj (k), то переход к п.7, иначе переход к п.8.

  7. Изменяем строки D и Н с учетом очередной выбранной точки с номером р, а именно: D(k):=R(p,k), H(k):=p.

  8. Проверяем, все ли элементы в строке перебрали. Если да, то переход к п.9, иначе переход к п.4.

  9. Конец работы алгоритма.

Задания для курсовой работы

Задание 18

Алгоритм построения кратчайшего покрывающего дерева Прима

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

Алгоритм.

  1. Упорядочить расположение контактов на плоскости в соответствии с электрическими соединениями.

  2. Сформировать матрицу длин D.

  3. Выбрать для трассировки очередное электрическое соединение и контакт ci, от которого начнется трассировка. Контакт ci заносится очередным элементом во множество соединенных данной цепью контактов Ck.

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

  5. Осуществить соединение контакта ci с ближайшим к нему контактом из множества Ck, если степень вершины контакта ci меньше заданной.

  6. Исключить соответствующие контакту ci строку и столбец из матрицы длин D.

  7. Если ещё не все контакты из множества Ck соединены, то переход к п.4.

  8. Если трассированы ещё не все электрические соединения, то переход к п.3.

  9. Конец работы алгоритма.

Задания для курсовой работы

Задание 19

Алгоритм Прима построения кпд

Замечание. Данный алгоритм основывается на идее разрастания поддеревьев. Дерево Т1=(Х1,Е1) является поддеревом дерева Т=(Х,Е), если Х1Х, Е1Е, причём поддерево может состоять и из одной вершины.

Алгоритм:

  1. Выбираем вершину х1. Ee cчитаем поддеревом Т: Х1={х1}, Е1=;

  2. Строим упорядоченный список Г ребер, инцидентных вершине х1, по возрастанию веса ребер;

  3. Выбираем из списка Г ребро с наименьшим весом. Пусть это (хv,хl). Таким образом, поддерево Т1 разрастается;

  4. Вносим в список Г ребра, инцидентные вершине хl, и упорядочиваем их по возрастанию веса, включая и уже находящиеся ранее в списке ребра;

  5. Выбираем из списка Г ребро с наименьшим весом, пусть это (хl, хk). Добавляем его к поддереву Т1 в том случае, если оно не образует цикла с уже находящимися в поддереве ребрами. Остальные ребра, объединяющие вершины Х 1 между собой, исключаются из списка Г;

  6. Проверяем условие . Если оно выполняется, то осуществляется переход к п.7. В противном случае выбирается вершина хk из Х1 и ребра, инцидентные ей, добавляются к списку Г. Переход к п. 4.

  7. Конец работы алгоритма.

Задания для курсовой работы

Задание 20

Алгоритм построения кпд Штейнера

Замечание. Решение задачи Штейнера существенно зависит от метрики. Рассмотрим ее решение в ортогональной метрике. Пусть Р={p1, p2,…., pn} – выводы одной цепи.

Алгоритм.

1. Построим базовую ортогональную сетку магистралей, проходящих через точки рi с координатами (xi , yi).

2. Пронумеруем по часовой стрелке по спирали точки рi из множества Р, начиная с такой точки pi1, для которой координата xi1 = и yi1 = .

3. Присвоим каждой точке рi один из двух признаков: 0 – если трасса пойдет вдоль оси х, и 1 – если трасса пойдет вдоль оси у. Точка pi1 получает признак 0. Далее признаки присваивают всем точкам попеременно, причем точки одного участка, находящиеся на одной горизонтали (вертикали), получают один и тот же признак.

4. Для точки рi1=р1 найдем такую точку рs, для которой

rs1=│xsx1│+│ysy1

будет минимально. Строим фрагмент дерева, соединяющий точку p1 с найденной точкой ps.

5. Всем вершинам ортогональной сетки, через которые прошел фрагмент дерева, присваиваем наименьший из номеров концевых точек фрагмента.

6. Выполним третий и четвертый пункты алгоритма для всех точек рiР в порядке возрастания их номеров.

7. Будем повторять с третьего по пятый пункты до тех пор пока все точки рi не получат номер, равный единице. В этом случае КПД Штейнера построено.