Ізоморфізм графів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Дискретні моделі в САПР

Частина тексту файла (без зображень, графіків і формул):

НУЛП, ІКНІ, САПР Тема оцінка підпис    Ізоморфізм графів         № залікової:     Дискретні моделі в САПР  Викладач:       Мета роботи : метою лабораторної роботи є вивчення і дослідження основних підходів до встановлення ізоморфізму графів. Короткі теоретичні відомості : Теорія графів дає простий, доступний і потужній інструмент побудови моделей і рішення задач впорядкування взаємозвязаних обєктів. Нині є багато проблем де необхідно дослідити деякі складні системи з допомогою впорядкування їх елементів. До таких проблем відносяться і задачі ідентифікації в електричних схемах, в авіації, в органічній хімії і т.д. Вирішення таких проблем досягається з допомогою встановлення ізоморфізму графів. Два графа G=(X,U,P) і G'=(X',U',P') називаються ізоморфними, якщо між їх вершинами, а також між їхніми ребрами можна встановити взаємно однозначне співвідношення X <-> X', U <-> U', що зберігає інцидентність, тобто таке, що для всякої пари (x,y)єX ребра u є U, що з'єднує їх, обов'язково існує пара (x',y') є X' і ребро u' є U', що з'єднує їх, і навпаки. Тут P - предикат, інцидентор графа G. Зауважимо, що відношення ізоморфізму графіврефлексивне, симетричне і транзитивне, тобто представляє собою еквівалентність. На даний час існує досить детальна класифікація розроблених методів рішення такого типу задач /1/. Розглядаючи комбінаторно-логічну природу вказаної задачі можна всі роботи в цьому напрямку розділити на дві групи: рішення теоретичної задачі встановлення ізоморфізму простих графів; розробка наближених методів, які найбільш повно враховують обмеження і специфіку задачі з застосуванням характерних ознак об’єкту дослідження. До першої групи відносяться алгоритми: повного перебору і почергового “підвішування” графів за вершини. а) Одним з найпростіших з точки зору програмної реалізації, є алгоритм перевірки ізоморфізму графів повним перебором(можливої перенумерації вершин), але складність цього алгоритму є факторіальною. б) Почергове “підвішування” графів за вершини (всі ребра зрівноважені). Суть цього алгоритму полягає в знаходженні однакових “підвішаних” графів (за довільні вершини), ізоморфність яких визначаємо. При чому в одному з графів почергово змінюється вершина за яку він “підвішується”. Ізоморфізм графів визначається по їх матрицях суміжності, які формуються по однотипних правилах: індекс в матриці вершини за яку закріплений (“підвішаний”) граф рівний одиниці; кортеж вершин в матриці визначається рівнями сусідів; кортеж вершин в межах кожного рівня сусідів визначається степінню вершини, а також кількістю ребер над нею і нижче її. Реалізація алгоритму (Java) : public void getSum() { arrayListOne = new ArrayList<Integer>(); for(int i=0;i<nodes;i++) { int sum=0; for(int j=0;j<nodes;j++) { sum+=adjecencyMatrixOne[i][j]; } arrayListOne.add(sum); } arrayListTwo = new ArrayList<Integer>(); for(int i=0;i<nodes;i++) { int sum=0; for(int j=0;j<nodes;j++) { sum+=adjecencyMatrixTwo[i][j]; } arrayListTwo.add(sum); } } public boolean checkIsomorphism() { for(int i=0;i<nodes;i++) { if(arrayListOne.get(i)!=arrayListTwo.get(i)) { return false; } } return true; } Інструкція по експлуатації: Для роботи програми необхідно запустити файл Lab_5_DM.java . Спочатку необхідно ввести кількість вершин графа, далі матрицю суміжності. В результаті роботи програма визначає чи є графи ізоморфні та виводить результати на екран. Граф: Рис.1. Граф G. Рис.2. Граф H. Результат виконання: ***HELP*** 0. Програма перевіряє графи на ізоморфізм! Для коректної роботи програми необхідно: 1. Ввести кількість вершин графу. 2. Ввести матриці суміжності(цілі числа) для двох графів. 3. Нумерація вершин графа починається з 1 з інкрементом в 1 (1,2,3...) ! Введіть кількість вершин графу: 8 Введіть граф G: 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 Введіть граф H: 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 Графм ізоморфні! Висновок : в результаті виконання лабораторної роботи я вивчив і дослідив основні підходи до встановлення ізоморфізму графів та реалізував один з алгоритмів на мові Java .
Антиботан аватар за замовчуванням
JB

14.05.2016 10:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!