Цей проект досліджує реалізацію та аналіз алгоритмів алгоритмів Breadth-First Search (BFS) та Depth-First Search (DFS) для побудови матриць досяжності у неорієнтованих графах. У дослідженні оцінюється вплив представлення графа на продуктивність цих алгоритмів на різних розмірах та щільності графів.
- BFS (Breadth-First Search): Алгоритм обходу або пошуку деревовидних або графових структур даних, який починається з кореневого вузла і досліджує всі сусідні вузли на поточній глибині, перш ніж перейти до вузлів на наступному рівні глибини.
- DFS (Depth-First Search): Алгоритм обходу або пошуку деревовидних або графових структур даних шляхом дослідження якомога далі вздовж кожної гілки, перш ніж повернутися назад.
Тестування проводились на графах з вершинами від 20 до 200 і з щільністю від 15 до 95. Для кожного випадку проводилось 100 ітерацій, де для кожної ітерації створювався новий псевдовипадковий граф.
Program.py: Створює псевдовипадкові графи, тестує алгоритми і заміряє час. Всю вихідні дані зберігає в файліresults.tsv.Visual.py: Візуалізує дані з таблиціresults.tsvі створює графіки.results.tsv: Таблиця вихідних даних після тестувань.
- tqdm
- pandas
- matplotlib
- seaborn
Результати представлені у формі графіків, а також більш детально у таблиці results.tsv. Додаткова інформація є в представленому звіті.