ECE 665 - Computer Algorithms
(with Applications do VLSI CAD)
Course Outline
- Algorithm Analysis: methodologies for analyzing algorithms
- Basic Data Structures: stacks, queues, trees, heaps.
- Combinatorial Algorithms: search trees and Soring algorithms.
- Fundamental Design Strategies: greedy methods, divide-and-conquer,
dynamic programming, branch-and-bound method, simulated annealing, etc..
- Graph Algorithms:
graph traversals (DFS and BFS), shortest/critical paths,
minimum spanning tree,
- Network Flows and Matching: max-flow/min-cut,
- NP-completeness, approximation algorithms.
- Introduction to Mathematical Programming:
- Linear/Integer Programming, Quadratic Programming
- Duality between graph theoretical solutions and mathematical programming
(min-cut max-flow); total unimodularity, etc.
- Applications to Electronic Design Automation, including:
high-level synthesis, VLSI layout generation, Binary Decision Diagrams, floorplanning, circuit partitioning, placement and routing.