У цьому коді використовуються три основні бібліотеки Python: matplotlib, networkx та matplotlib.colors.
- NetworkX: Це бібліотека для створення, маніпулювання та аналізу структури, динаміки та функцій складних мереж. У цьому коді вона використовується для створення багатократного графа (MultiGraph), додавання країв та ваги до графа.
- Matplotlib: Це бібліотека для створення статичних, анімованих та інтерактивних візуалізацій в Python. У цьому коді вона використовується для візуалізації графа.
- Matplotlib.colors: Це модуль у matplotlib, який використовується для перетворення кольорів між RGB та іншими системами кольорів. У цьому коді він використовується для створення словника кольорів для вузлів графа.
- Алгоритм для знаходження гамільтонових ланцюгів та циклів адаптовано з сайту Print all Hamiltonian paths present in a graph | Techie Delight
- Якщо граф має ізольовану вершину програма не спрацює бо незможе зробити граф ейлеровим, щоб вона спрацювала закоментуйте або видаліть 4 пункт
Особливості роботи цих бібліотек: • NetworkX дозволяє легко створювати графи за допомогою простих команд. Ви можете додавати вузли, краї та ваги до графа. Ви також можете виконувати різні операції з графами, такі як пошук найкоротшого шляху, обчислення центральності вузла тощо. • Matplotlib дозволяє візуалізувати дані на графіках. Ви можете налаштувати різні параметри графіка, такі як кольори, розміри, мітки осей тощо. • Matplotlib.colors дозволяє працювати з кольорами у ваших графіках. Ви можете використовувати його для перетворення кольорів між різними системами кольорів або для створення власних кольорових карт. Структура графу берется с txt файлу де на кожній лінії 3 цифри вершини які зіднані ребром та вага ребра, в звіті використан граф з роботи 3 Програа проводить розраахунки:
- Вивести визначення та значення основних характеристик графа (матриця суміжності, інциндентності, хроматичне число та реберне хроматичне число та інші)
- Написати програму для знаходження всіх ейлерових ланцюгів та циклів
- Написати програму для знаходження всіх гамільтонових ланцюгів та циклів
- Реалізувати програмно обхід графа пошуком углиб
- Реалізувати програмно обхід графа пошуком вшир
- На мові програмування реалізувани пошук найкородших відстаней на графі від заданої вершини (алгоритм Дейкстри). Вивести схему маршрутів і довжину відстаней.
- На мові програмування реалізувани пошук найкородших відстаней між будь-якими двома вершинами графу (алгоритм Флойда). Вивести схему маршрутів і довжину відстаней.
- Знайти між якою парою вершин найкоротша відстань є найдовшою серед всіх найкоротших відстаней.
- Знайти між якою парою вершин найкоротша відстань є найкоротшою серед всіх найкоротших відстаней. гамільтоновиі ланцюги