Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СМРЗДП / LAB / lab_7

.doc
Скачиваний:
7
Добавлен:
05.03.2016
Размер:
121.86 Кб
Скачать

Міністрерство освіти і науки України

Тернопільський національний технічний університет

імені Івана Пулюя

Кафедра математичних

методів в інженерії

ЗВІТ

до лабораторної роботи №7

з курсу «Сучасні методи розв’язку дискретного програмування»

Розбиття множини вершин на класи еквівалентності. Алгоритм упорядкування

Виконав:

ст. гр.

Перевірила:

Крива Н.Р.

Тернопіль 201_

Тема:

Розбиття множини вершин на класи еквівалентності. Алгоритм упорядкування.

Мета:

Розбити граф на сильно зв’язані компоненти.

Текст програми:

%Лабораторна робота №7

%

%Варіант

clear all %очистити память

V=[1 2; 1 1; 2 2; 2 1; 3 2; 3 1; 4 2; 4 1];

E=[1 2 1; 1 3 2; 1 4 3; 2 4 4; 4 3 5; 3 5 6; 3 6 7; 4 6 8; 5 6 9; 6 8 10; 5 7 11; 5 8 12; 7 8 13];

grPlot(V,E,'d'); % малюємо граф

set(get(gcf,'CurrentAxes'),...

'FontName','Times New Roman Cyr','FontSize',12) % встановили шрифт

title('\bfВихідний оргграф')

[Dec,Ord]=grDecOrd(E);

disp('Сильно звязані компоненти:')

disp('N вершини')

for k1=1:size(Dec,2),

fprintf('%2.0f ',k1)

fprintf('%d ',find(Dec(:,k1)))

fprintf('\n')

end

fprintf('Часткове впорядкування компонентів:\n')

fprintf('%3.0f',1:size(Ord,2))

fprintf('\n')

for k1=1:size(Ord,1),

fprintf('%2.0f',k1)

fprintf('%1.0f',Ord(k1,:))

fprintf('\n')

end

V1=V;

for k1=1:size(Dec,2),

V1(find(Dec(:,k1)),3)=k1;%вага=номер компонента

end

grPlot(V1,E,'d','%d','');

set(get(gcf,'CurrentAxes'),...

'FontName','Times New Roman Cyr','FontSize',10) % встановили шрифт

title('\bfСильно звязані компоненти')

Рисунок 1 – Вихідний граф

Рисунок 2 – Сильно зв’язані компоненти

Висновок:

На даній лабораторній роботі я використав функцію grDecOrd для розбиття графа на сильно зв’язані компоненти.

Соседние файлы в папке LAB