Алгоритм Краскала трассировки проводного монтажа

Создание программы, выполняющей трассировку проводного монтажа алгоритмом Краскала. Конфигурация программы для работы под управлением операционных систем семейства Microsoft Windows. Исследование алгоритмических методов трассировки печатных соединений.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.03.2014
Размер файла 663,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство образования и науки РФ

Рязанский Государственный Радиотехнический Университет

Кафедра САПР ВС

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

на курсовую работу

по дисциплине «Автоматизация конструкторского и технологического проектирования»

на тему: «Алгоритм Краскала трассировки проводного монтажа»

Выполнил: Горбунов Р.Ю.

Проверил: доц. кафедры САПР ВСКарманов П.В.

Рязань 2014

Содержание

Введение

1. Практическая и математическая постановка задачи

2. Анализ существующих алгоритмов решения задачи

3. Описание разрабатываемого алгоритма, его укрупненная схема

4. Развернутая блок схема алгоритма

5. Контрольный пример

6. Перечень идентификаторов

7. Текст программы

8. Листинг с результатами машинного решения

Заключение

Список литературы

Введение

Внедрение в инженерную практику методов автоматизации проектирования позволяет перейти от традиционного моделирования разрабатываемой аппаратуры к ее моделированию с помощью персональных компьютеров (ПК). И более того, с помощью ПК возможно осуществить цикл сквозного проектирования, включающий в себя: синтез структуры и принципиальной схемы устройства; анализ его характеристик в различных режимах, синтез топологии, включая размещение элементов на плате или кристалле и разводку межсоединений; верификацию топологии; выпуск конструкторской документации.

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

В данном курсовом проекте будет рассматриваться алгоритм Краскала трассировки проводного монтажа.

алгоритмический трассировка монтаж печатный

1. Практическая и математическая постановка задачи

Трассировка заключается в определении конкретной геометрии печатного или проводного монтажа, реализующего соединения между элементами схемы. Исходными данными для трассировки являются список цепей, метрические параметры и топологические свойства типовой конструкции и её элементов и результаты решения задачи размещения, по которым находятся координаты выводов элементов. Формальная постановка задачи трассировки и методы её решения в значительной степени зависят от вида монтажа (проводной или печатный) и конструктивно-технологических ограничений, определяющих метрические параметры и топологические свойства монтажного пространства.

В типовых конструкциях, начиная с блока и выше, довольно широко используется проводной монтаж, что объясняется высокой трудоёмкостью проектирования и сложностью изготовления печатного монтажа. Изготовление печатного монтажа усложняется с увеличением размеров коммутационных плат, а надёжность его падает. Проводной монтаж может осуществляться по прямым, соединяющим выводы элементов, или с помощью жгутов, которые прокладывают в специальных каналах. Основные ограничения - количество проводников, которые можно подсоединить к одному выводу (обычно не более трёх), и число проводов в каждом жгуте - пропускная способность канала.

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

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

, (1)

для ортогональной трассировки

. (2)

Здесь и - координаты i-й и j-й вершин графа.

Будем использовать модель схемы(цепи) в виде графа, в к-м выводов элементов сопоставлены вершины и на этой вершине строится полный граф цепи. Число вершин графа = n, при этом число ребер полного графа r=n(n-1)\2 При таком подходе каждая цепь представляется отдельной компонентой связности.

Ставится задача построения КСД на тех комп-х связности число вершин которых>2.

Отметим, что на n вершинах полного графа можно построить tn деревьев.

Точные решения задачи построения КСД методом полного перебора нецелесообразны. Существуют приближенные алгоритмы решения этой задачи, дающие результаты достаточно близкие к оптимальным.

Алгоритм Краскала

Пусть задан G=(X,V) i,j=1,n, i?j

Каждому ребру Vij поставлено в соответствие число Cij - вес или длина данного ребра.

Ставится задача: среди всех деревьев (n-(n-2)), кот. м. выделить в данном графе, требуется найти дерево с минимальной длиной в дереве (n-1) ребро.

Пусть C=[cij]n*n матрица длины ребер графа.

1. Все ребра графа n(n-1)\2 упорядочиваются в порядке убывания длины, начиная с ребра C1=mini,jCij, Cn=maxi,jCij

2. Последовательно просматривается рассматриваемое множество V* длин ребер на каждом шаге, включенным в дерево одно ребро. В качестве такого ребра выбирается ребро среди не включенных в дерево, имеющих минимальную длину и не образующих циклов с ребрами уже вошедших в дерево.

3. Отметим: при работе этого алгоритма возможно появление несвязных поддеревьев, которое затем соединяется, образуя одну компоненту связности.

На рис 1. показан процесс построения минимального покрывающего дерева алгоритмом Краскала.

Рис 1.

2. Анализ существующих алгоритмов решения задачи

Задача трассировки состоит в построении для всех цепей схемы оптимальных монтажных соединений. Метрический аспект задачи предполагает учет конструктивных размеров элементов, соединений и коммутационного поля. Топологический аспект связан с выбором допустимого пространственного расположения отдельных монтажных соединений при ограничениях на число пересечений соединений, число слоев коммутационной схемы и т. п. Классификация методов трассировки представлена на рис. 2.

Алгоритмические методы трассировки печатных соединений существенно зависят от конструкции коммутационного поля и могут быть разделены на две основные группы:

топографические методы - в них приоритет отдается метрическому аспекту задачи;

графо-теоретические метод решения задач трассировки.

Топографический метод трассировки содержит следующие этапы:

получение списка соединений;

распределение соединений по слоям;

определение порядка прокладки соединений;

трассировка отдельных соединений.

Основной задачей первого этапа является предварительное определение порядка соединений выводов внутри отдельных цепей. Такое упорядочение осуществляется с помощью алгоритмов построения минимальных деревьев. При печатном монтаже соединения могут выполняться не только по выводам, но и в любой точке проводника. Поэтому построение КСД формулируется как задача Штейнера. Метод же решения задачи Штейнера требует больших затрат машинного времени.

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

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

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

волновой алгоритм и его модификации;

алгоритмы трассировки по магистралям и каналам;

комбинированные алгоритмы.

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

Реализация волнового алгоритма предполагает введение дискретного рабочего поля (ДРП), являющегося моделью коммутационной платы для отображения в памяти ЭВМ. В связи с этим был предложен ряд способов эффективного сокращения объема информации при отображении процесса трассировки и его результатов в памяти ЭВМ.

Другое направление повышения эффективности алгоритма связано с увеличением средней скорости распространения волны при поиске трассы соединения. Сюда относятся такие приемы, как ограничение области распространения волны, использование метода встречной волны, задание преимущественного направления волны и др. Исследованы вопросы применения волнового алгоритма для оптимизации соединения по совокупности параметров (длине, числу пересечений, числу поворотов и т. д.), для трассировки многоконцевых и многослойных соединений.

Основными недостатками различных модификаций волнового алгоритма являются значительные затраты времени и памяти для представления ДРП, особенно ДРП больших размеров. В связи с этим определенный интерес представляют новые модификации алгоритма.

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

К этой же группе примыкают эвристические алгоритмы построения малоповоротных путей, в которых осуществляется построение соединений простой конфигурации (до 3--4 изгибов). По имеющимся данным, подобные алгоритмы позволяют осуществить разводку до 90% всех соединений в двухслойных схемах с ортогональными соединениями. Остальные соединения трассируются с помощью волнового алгоритма.

Алгоритмы трассировки по каналам применяются в случае, когда на коммутационном поле естественным образом могут быть выделены горизонтальные и вертикальные каналы для реализации соединений. Каналы образуются между рядами регулярно расположенных на поле элементов или определяются сетью фиксированных металлизированных переходных отверстий. Наиболее эффективная стратегия трассировки в данном случае включает два этапа: распределение соединений по каналам и трассировку внутри каналов. Разновидностью трассировки по каналам является трассировка на сети укрупненных ячеек (граней), образованных на коммутационном поле между разногабаритными элементами. Основные достоинства канальной трассировки -- отсутствие ДРП, возможность планирования плотности соединений на отдельных областях коммутационного поля, большая скорость построения соединений.

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

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

3. Описание разрабатываемого алгоритма, его укрупненная схема

1. Для всех пар полного подграфа считываем длины соединяющих их рёбер.

2. Упорядочиваем рёбра по возрастанию их длин.

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

Блок-схема алгоритма представлена на рисунке 3.

Рис.3 Укрупненная блок-схема разрабатываемого алгоритма

4. Развёрнутая блок-схема алгоритма

· Укрупненная блок-схема программы представлена на рисунке 4.1

Рис.4.1 Укрупненная блок-схема программы

· Схема алгоритма заполнения массива ребер представлена на рисунке 4.2

Рис.4.2 Схема алгоритма заполнения массива ребер

Схема алгоритма сортировки ребер по возрастанию их длин представлена на рисунке 4.3

Сортировка массива ребер происходит методом пузырьковой сортировки.

Рис.4.3 Схема алгоритма сортировки

· Схема алгоритма Краскала построения КС дерева представлена на рисунке 4.4

Рис.4.4 Схема алгоритма Краскала построения КС дерева

5. Контрольный примера

Требуется построить КСД для цепи содержащей 6 контактов. Полный граф на рис:

Рис.5 Полный граф

Пусть матрица длин ребер графа цепи имеет вид:

U= n = 6; n*(n-1) = 15

1. Упорядочивание длин ребер полного графа

- 15 элементов.

2.1. Включаем в в дерево получаем 1-ую изолированную компоненту связности.

2.2. Включаем в дерево , получаем 2-ую изолированную компоненту связности (2,3).

2.3. Включаем - получаем 3-ю изолированную компоненту связности (4,5).

2.4. Включаем - получаем 4-ю изолированную компоненту связности (1,6,4,5).

Ребро образовывает цикл - брать нельзя.

Ребро тоже образовывает цикл - брать нельзя.

2.5. Включаем в дерево . КСД построено.

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

Недостатки:

1) Необходимо на каждом шаге проверять условия необразования цикла, а так же наблюдение за различными компонентами связности.

2) Большое время уходит на упорядочивание ребер полного графа.

6. Перечень идентификаторов

type

RBR=record

x1,x2:integer; {Начальная и конечная вершины ребра}

ves:integer; {Вес ребра}

rebro:array of RBR; {Массив ребер}

trassa:array of RBR; {Массив ребер, включенных в КС дерево}

stock:array of integer; {Массив вершин, включенных в дерево}

inSt:boolean; {Логическая переменная, определяющая, входит ли вершина в массив вершин, включенных в дерево}

stockLen, trassaLen, rebroLen:integer; {Длины стока, массива ребер, включенных в дерево, массива ребер}

i, j, k:integer; {Счетчики цикла}

put:string; {Упорядоченный список ребер}

tr: string; {Список ребер, включенных в дерево}

7. Текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls, ComCtrls;

type

RBR=record

x1,x2:integer;

ves:integer;

end;

TForm1 = class(TForm)

GroupBox1: TGroupBox;

Label1: TLabel;

Edit1: TEdit;

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

procedure Edit1KeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

rebro:array of RBR;

trassa:array of RBR;

stock:array of integer;

stockLen,trassaLen:integer;

i,j,k,rebroLen:integer;

inSt:boolean;

implementation

{$R *.dfm}

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

var

num: integer;

begin

If Edit1.Text='' then Edit1.Text:='0';

num:=StrToInt(Edit1.Text);

StringGrid1.ColCount:=num;

StringGrid1.RowCount:=num;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

i,j: integer;

begin

Label5.Visible:=false;

Label6.Caption:='';

Label6.Visible:=false;

Label4.Visible:=false;

Label3.Caption:='';

Label3.Visible:=false;

Edit1.Text:='0';

For i:=0 to stringgrid1.ColCount-1 do

For j:=0 to stringgrid1.RowCount-1 do

StringGrid1.Cells[i,j]:='';

StringGrid1.ColCount:=1;

StringGrid1.RowCount:=1;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Halt;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

fl,q,k,l,Dlina:integer;

buf:RBR;

i,j:integer;

put:string;

p:integer;

tr: string;

begin

k:=0;

rebroLen:=0;

For i:=0 to Strtoint(edit1.text)-1 do begin

For j:=0 to Strtoint(edit1.text)-1 do

begin

if (i<j) and (Stringgrid1.cells[i,j]<>'0') then begin

rebroLen:=rebroLen+1;

setlength(rebro,rebroLen);

rebro[k].x1:=i+1;

rebro[k].x2:=j+1;

rebro[k].Ves:=Strtoint(Stringgrid1.cells[i,j]);

k:=k+1;

end;

end;end;

for i:=0 to k-1 do

for j:=0 to k-i-2 do

if rebro[j].Ves>rebro[j+1].Ves then

begin

Buf:=rebro[j];

rebro[j]:=rebro[j+1];

rebro[j+1]:=buf;

end;

put:='';

for i:=0 to k-1 do

put:=put+' '+'X'+inttostr(rebro[i].x1)+'X'+inttostr(rebro[i].x2)+'('+inttostr(rebro[i].Ves)+')';

Showmessage(put);

stockLen:=2;

setlength(stock,2);

stock[0]:=rebro[0].x1;

stock[1]:=rebro[0].x2;

trassaLen:=1;

setlength(trassa,1);

trassa[0]:=rebro[0];

for i := 1 to length(rebro)-1 do

begin

k:=0;

inSt:=false;

while k<>stockLen do

begin

if rebro[i].x2=stock[k] then inSt:=true;

k:=k+1;

end;

if inSt=false then

begin

//rebro[i].Fl:=true;

//добавление нового в сток

stockLen:=stockLen+1;

setlength(stock,stockLen);

stock[stockLen-1]:=rebro[i].x2;

//составление рёбер

trassaLen:=trassaLen+1;

setlength(trassa,trassaLen);

trassa[trassaLen-1]:=rebro[i];

end

//поменяем вершины местами

else

begin

k:=0;

inSt:=false;

while k<>stockLen do

begin

if rebro[i].x1=stock[k] then inSt:=true;

k:=k+1;

end;

if inSt=false then

begin

p:=rebro[i].x1;

rebro[i].x1:=rebro[i].x2;

rebro[i].x2:=p;

//добавление нового в сток

stockLen:=stockLen+1;

setlength(stock,stockLen);

stock[stockLen-1]:=rebro[i].x2;

//составление рёбер

trassaLen:=trassaLen+1;

setlength(trassa,trassaLen);

trassa[trassaLen-1]:=rebro[i];

end;

end;

end;

Label5.Visible:=true;

Label4.Visible:=true;

Label3.Visible:=true;

Dlina:=0;

tr:='';

for i := 0 to length(trassa)-1 do

begin

Dlina:=Dlina+trassa[i].Ves;

tr:=tr+' | '+inttostr(trassa[i].x1)+'--'+inttostr(trassa[i].x2)+' | '

end;

Label3.Caption:=' - '+tr+' -';

Label6.Caption:='Dlina = '+inttostr(Dlina);

end;

end.

8. Листинг с результатами машинного решения

Исходные данные

Отсортированный массив ребер

Ребра, входящие в дерево и длина соединения

Заключение

В результате выполнения данной курсовой работы была создана программа, выполняющая трассировку проводного монтажа алгоритмом Краскала. Программа была написана с использованием среды разработки Delphi и сконфигурирована для работы под управлением операционных систем семейства Microsoft Windows.

Тестирование программы во всех доступных режимах показало ее полную работоспособность.

Применение данного алгоритма дает возможность трассировки проводного монтажа, при этом данный алгоритм не требует значительных системных ресурсов (например, ресурсов памяти).

Список литературы

1. Селютин В. А. Машинное конструирование электронных устройств. М.: Сов. радио, 1977.

2. Савельев А.Я. Овчинников В.А «Конструирование ЭВМ и систем»

3. Конспект лекций

Размещено на Allbest.ru


Подобные документы

  • Разработка и практическая апробация программы для соответствия поставленным требованиям: реализация трассировки лучей с просчетом теней, освещения, отражения, преломления лучей, что является несомненным достоинством данной спроектированной программы.

    курсовая работа [662,7 K], добавлен 14.04.2011

  • Реализация алгоритмов Краскала и Прима для построения минимального остовного дерева взвешенного связного неориентированного графа. Анализ трудоемкости алгоритмов, их псевдокоды и тестирование. Применение алгоритма Краскала на практике в работе авиалиний.

    курсовая работа [142,0 K], добавлен 25.12.2012

  • Основные понятия об операционных системах. Виды современных операционных систем. История развития операционных систем семейства Windows. Характеристики операционных систем семейства Windows. Новые функциональные возможности операционной системы Windows 7.

    курсовая работа [60,1 K], добавлен 18.02.2012

  • Получение конфигурации компьютера. Установка обновления Microsoft Windows. Просмотр файловой системы компьютера и информация о ней. Алгоритм запуска программы PowerShell с заданными скриптами из Visual C#. Стандартные утилиты управления Microsoft Windows.

    курсовая работа [703,8 K], добавлен 22.05.2013

  • Прикладные программы и утилиты. Простейшие функции операционной системы. История разработки корпорацией Microsoft Corporation графической операционной оболочки Windows. Версия семейства сетевых ОС Windows NT (Millennium Edition, 2000, XP, Vista, Seven)

    презентация [965,2 K], добавлен 12.10.2013

  • Граф - совокупность точек и линий, в которой каждая линия соединяет две точки. Представление графов в ЭВМ. Составление алгоритм Краскала с использованием графов с оперделением оптимального пути прокладки телефонного кабеля в каждый из 8 городов.

    курсовая работа [241,5 K], добавлен 23.12.2009

  • Компьютерные программы, обеспечивающие управление аппаратными средствами компьютера. Операционные системы Microsoft Corporation. Прикладные программы, утилиты. Простейшие функции операционной системы. Линейка Microsoft Windows для домашнего использования.

    презентация [947,8 K], добавлен 01.10.2012

  • Алгоритмы получения реалистических изображений. Применение алгоритма обратной трассировки лучей, ее математическая основа. Составление матрицы и программная реализация. Формирование отраженного и преломленного луча. Модульная структура программы.

    курсовая работа [219,3 K], добавлен 24.06.2009

  • Основные выпуски (редакции) операционных систем Windows Vista и Windows Seven, их недостатки и преимущества. История создания, совместимость приложений с операционными системами. Новшества, которые принесла в мир компьютерных технологий каждая из систем.

    реферат [66,3 K], добавлен 17.02.2011

  • Основные моменты истории операционных систем, связывающих аппаратное обеспечение и прикладные программы. Характеристика операционной системы Microsoft Windows Seven, анализ операционной системы Linux. Преимущества и недостатки каждой операционной системы.

    курсовая работа [63,0 K], добавлен 07.05.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.