Skip to content

juliet2112/Graph-based-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Graph Algorithms

A collection of advanced graph algorithms, data structures, and optimization projects developed for the Graph-Based Algorithms course.

🚀 Key Projects

Project 1: Resource Selection via Dinic's Algorithm

Solving a dependency-based selection problem (Project Selection Problem) using flow networks.

  • Dinic's Algorithm: High-performance Max-Flow implementation with Level Graphs and Pointer Optimization.
  • Min-Cut Analysis: Using the Max-Flow Min-Cut theorem to find the optimal subset of resources (primes) that maximizes "luck" values vs. logarithmic costs.

Project 2: Weighted Vertex Cover in Chordal Graphs

Implementation of a linear-time algorithm for NP-hard problems in specialized graph classes.

  • Lex-BFS: Efficient partition refinement to find a Perfect Elimination Ordering (PEO) in $O(V+E)$.
  • Optimization: Finding the Maximum Weight Independent Set and its dual, the Minimum Weight Vertex Cover, using greedy dual-based approaches.

🧪 Laboratory Modules

  • Lab 1: Union-Find (DSU) – Disjoint Set Union with Path Compression and Union by Rank ($O(\alpha(n))$ complexity).
  • Lab 2: Shortest Paths – Implementation of Dijkstra (Priority Queue) and Bellman-Ford for negative cycles.
  • Lab 3: Minimum Spanning Trees – Kruskal's and Prim's algorithms for network connectivity.
  • Lab 4: Flow Basics – Foundations of residual networks and augmenting paths.

🛠 Tech Stack

  • Language: Python 3.x

👤 Author


Developed for the Graph Algorithms course at marcinlos.github.io/algograf/

About

A collection of advanced graph algorithms, data structures, and optimization projects developed for the Graph-Based Algorithms course.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages