/ComplexAlgorithms

🧙🏾‍♂️ Complex Algorithms and Complexity Course from the University of San Diego

Primary LanguagePython

Advanced Algorithms and Complexity Course

This repository contains some of the problem assignments from the Advanced Algorithms and Complexity Course from the University of San Diego.

  • Flows in Networks:
    • Evacuation: Applying an algorithm for finding maximum flow in a network to determine how fast people can be evacuated from the given city.
    • Airline Crew: Applying an algorithm for finding maximum matching in a bipartite graph to assign airline crews to flights in the most efficient way.
    • Stock Charts: Applying a flow algorithm approach to find the minimum Path Cover in a DAG to compute the maximum number of stock charts that do not intersect.
  • Linear Programming:
    • Energy values: Applying Gaussian elimination to solve a problem where we have to tell the amount of nutrients that each ingredient has.
    • Diet: Applying Gaussian elimination to perform a brute force linear programming approach
  • NP-Completeness:
    • GSM Network: encoding to SAT the 3-coloring problem to determine if we can make a GSM network work
    • Cleaning the apartment: encoding to SAT the Hamiltonian Path problem to find a a clever way to clean your apartment
  • Coping with NP-completeness:
    • Integrated Circuit Design: solving 2-SAT by constructing a directed implications graph and looking for different strongly connected components to design part of an integrated circuit
    • Plan a Fun Party: computing maximum independent set of a tree to plan a fun party
  • Streaming Algorithms:
    • Nice vs Naughty: implementing the count sketch algorithm to determine if a kid was nice or naughty to help Santa Claus.

Certificate: