Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Каркас минимального веса. Метод Дж. Краскала





Дано. Связный неориентированный граф G=< V, E>. Ребра имеют вес. Граф описывается перечнем ребер с указанием их веса. Массив Р (Array[1..3, 1..N*(N-1) Div 2] Of Integer). Резу­льтат. Каркас с минимальным суммарным весом Q=< V, T>, где T< zE.

Пример. Граф и процесс построения каркаса по методу Крас-кала.

Шаг 1. Начать с графа Q, содержащего N вершин и не имею­щего ребер.

Шаг 2. Упорядочить ребра графа G в порядке неубывания их

весов.

Шаг 3. На­чав с первого ребра в этом перечне, до­бавлять ребра в граф Q, со­блюдая усло­вие: добавле­ние не должно приводить к появлению цикла в Q.

 

 

 

 

рис.1

Шаг 4. Повторять шаг 3 до тех пор, пока число ребер в Q не станет равным N-1. Получившееся дерево является каркасом минимального веса.

Какие структуры данных требуются для реализации шага 3? Стандартным в программировании методом является введение массива меток вершин графа (Мark: Array[ 1..N] Of Integer). Начальные значения элементов массива равны номерам соот­ветствующих вершин (Mark[i]=i для i от 1 до N). Ребро выби­рается в каркас в том случае, если вершины, соединяемые им, имеют разные значения меток. В этом случае циклы не образу­ются. Для примера, приведенного выше, процесс изменения Mark показан в таблице 1.

Таблица 1

Номер итерации Ребро Значения элементов Маrк
Начальное значение - [1, 2, 3, 4, 5]
  < 1, 4> [1, 2, 3, 1, 5]
  < 4, 5> [1, 2, 3, 1, 1]
  < 2, 3> [1, 2, 2, 1, 1]
  < 2, 5> [1, 1, 1.1, 1]

 

И логика этого фрагмента.

Procedure Chang_Mark (1, т: Integer);

{*Массив Mark глобальный.*}

Var ift: Integer;

Begin

If m< l Then

Begin t: =l; l: =m; m: =t

End;

For i: =l To N Do If Mark[i]=m

Then Mark[i]: =1;

End;

Фрагмент основной части логики.

Program Tree;

Const N=..;

Var P: Array[1.. 3, 1..N* (N-1) Div 2] Of Integer; Mark: Array[1..N] Of Integer; k, i, t: Integer;

M: Integer; {*Количество ребер графа.*}

Begin

< ввод описания графа - массив Р>;

< сортировка массива Р по значениям весов ребер>;

For i: =l То N Do

Mark[i]: =i; k: =0; t: =M;

While k< N-l Do

Begin i: =l;

While (i< =t) And (Mark[P[1, i]] =Mark[P[2, i]])And < P[l, i]< > 0) Do

Inc(i); Inc (k);

< Запоминание ребра каркаса>; Change_Mark(Mark[P[l, i]], Mark[P[2, i}]); End;

End;

 







Дата добавления: 2014-11-10; просмотров: 881. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит...

Кран машиниста усл. № 394 – назначение и устройство Кран машиниста условный номер 394 предназначен для управления тормозами поезда...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия