Title: ECE556: Design Automation of Digital Systems
1ECE556 Design Automation of Digital Systems
- Spring 2007
- Instructor Azadeh Davoodi
- Lecture 2
- January 25, 2007
2Graph Theory
- Graph A mathematical object representing a set
of points and interconnections between
them - Notation G(V, E), where
- V is the vertex set v1, v2, v3, v4, v5, v6
- E is the edge set e1, e2, e3, e4, e5
- An edge has two endpoints, e.g. e1 (v1, v2)
3Terminology
- degree of a vertex
- subgraph of a graph
- complete (sub)graph
- clique
- parallel edges
- bipartite graph
- an edge incident with a vertex
- adjacent vertices
4Terminology
- Path e.g. v1, e1, v2, e3, v3, e4, v4
- cycle a closed path
- connected vertices, connected graph, connected
components
5Terminology
- directed graph
- directed path
- directed cycle
- strongly connected vertices
- weakly connected vertices
- weighted graphs
- edge weighted and/or vertex weighted
6Data Structures for Storing Graphs
- Different data structures for different
applications - Adjacency matrix
- -- a 0 or 1 entry for every vertex pair
v1 v2 v3 v4 v5 v6
v1 v2 v3 v4 v5 v6
7Data Structures for Storing Graphs
8Explicit Edges and Vertices
9Graph Traversal
- Can you think of generic ways to visit all the
vertices and edges of a graph? And why do you
think it is important to answer this question in
VLSI-CAD problems? - Popular graph traversal methods
- Depth First Search (DFS)
- Breadth First Search (BFS)
10Algorithm
- Algorithm
- A step-by-step procedure for solving a problem in
a finite number of steps - Properties
- Precision each step precisely stated
- Termination ends in finite time
- Correctness
11Algorithm
- There can be many different algorithms to solve
the same problem - Need some way to compare algorithms
- Desired attributes of a good algorithm in VLSI
CAD - 1- Optimality or exactness need the best
quality solution (e.g., minimum cost power,
area, etc.) - 2- Efficiency need to find this optimal solution
fast
12Some Algorithmic Paradigms
Some of these techniques guarantee achieving the
optimal solution, but might not be necessarily
efficient. Some might be efficient but not
necessarily guarantee optimality!
- Exhaustive search
- Branch and Bound
- Divide and conquer
- Greedy algorithm
- Dynamic programming
- Mathematical programming
- Simulated annealing
13Comparison of algorithmsMotivation
- Will first start by comparing run-time of
algorithms - Assume two algorithms both generate a solution to
a problem - Ignoring the quality of solution for now, lets
focus on ways for comparing their efficiency
14Comparing Run-Time of Algorithms
- Comparing pure run-time of two algorithms
- Difficult since algorithms may be implemented on
different machines, use different languages, etc - Also input-dependent (i.e., which input to use?)
- Notion of computational complexity
15Computational Complexity
- Computational complexity
- an abstract measure of the time and space
necessary to execute an algorithm as function of
its input size - Input size examples
- sort n words of bounded length ?
- size n
- the input is the integer n ?
- size log n
- the input is the graph G(V,E) ?
- size V and E
16Computational Complexity
- Computational complexity
- An abstract measure of the time and space
necessary to execute an algorithm as function of
its input size - Run-Time complexity
- Expressed in elementary computational steps
(e.g., an addition, multiplication, pointer
indirection is one step) - 2) Space Complexity
- Expressed in memory locations (e.g. bits, bytes,
words)
17Computational ComplexityBig-O Notation
- Definition f(n) O(g(n))
- If cgt0 and n0gt 0 such that 0 f(n) cg(n) for all
n n0 - Intuition
- f(n) g(n) when we ignore constant multiples
and small values of n
18Run-Time Complexity of Algorithmsusing Big-O
Notation
- Obtain upper bound on run-time
- Express run time as a function of input size n
- Ignore multiplicative constant
- Ignore lower order terms
- Examples
- 3n26n2.7 is
- O(n2)
- n1.110000000000n is
- O(n1.1)
- n1.1 is
- O(n1.1)
19Effect of Multiplicative Constant
20Growth Rates of some Functions
Polynomial
Exponential
21Computational Complexity
- Relevant growth rates for the time complexity
- polynomial vs. exponential
- linear vs. quadratic
- sublinear
22- Question
- If I know the expressions f1(n) and f2(n)
corresponding to the actual run-times of two
algorithms, I can directly compare these run-time
expressions - Why do I need the O-notation then?
- Answer
- Many of the times, it is not possible to obtain
exact f(n) expression for the run-time of an
algorithm - It is much easier to think of an algorithm in
terms of union of sub-algorithms, and then to
find its timing complexity we can only consider
those sub-algorithms that have a dominant timing
complexity and ignore the rest
23Problem of Exponential Function
- Consider 2n, value doubled when n is increased by
1
24Facts
- It is desirable to develop polynomial-time
algorithms to optimally solve VLSI CAD problems - Unfortunately many VLSI CAD problems can not be
optimally solved in polynomial time - They belong to a class of problems known as
NP-Complete which indicate the set of problems
that are difficult to be solved (can not be
efficiently solved)