ECE6095: CAD Algorithms. Optimization Techniques

Similar documents
CMPSCI 187: Programming With Data Structures. Lecture 5: Analysis of Algorithms Overview 16 September 2011

Computer Science 210 Data Structures Siena College Fall Topic Notes: Complexity and Asymptotic Analysis

CSCA48 Winter 2018 Week 10:Algorithm Analysis. Marzieh Ahmadzadeh, Nick Cheng University of Toronto Scarborough

Elementary maths for GMT. Algorithm analysis Part I

Algorithm Analysis. College of Computing & Information Technology King Abdulaziz University. CPCS-204 Data Structures I

CSC 8301 Design and Analysis of Algorithms: Exhaustive Search

Data Structures and Algorithms

Computational thinking, problem-solving and programming:

Discussion. What problems stretch the limits of computation? Compare 4 Algorithms. What is Brilliance? 11/11/11

Analysis of Algorithms

ECE 2400 Computer Systems Programming Fall 2018 Topic 8: Complexity Analysis

Lecture 5: Running Time Evaluation

9/10/2018 Algorithms & Data Structures Analysis of Algorithms. Siyuan Jiang, Sept

CS240 Fall Mike Lam, Professor. Algorithm Analysis

Analysis of Algorithms

Data Structures Lecture 8

Algorithmic Complexity

LECTURE 9 Data Structures: A systematic way of organizing and accessing data. --No single data structure works well for ALL purposes.

What is an algorithm?

Algorithms and Data Structures

CSI33 Data Structures

CAD Algorithms. Categorizing Algorithms

Pre-requisite Material for Course Heuristics and Approximation Algorithms

Computer Algorithms. Introduction to Algorithm

CS240 Fall Mike Lam, Professor. Algorithm Analysis

Coventry University

Programming II (CS300)

ASYMPTOTIC COMPLEXITY

Time Complexity of an Algorithm

Outline. runtime of programs algorithm efficiency Big-O notation List interface Array lists

Outline and Reading. Analysis of Algorithms 1

NP-Complete Problems

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 10: Asymptotic Complexity and

What is an Algorithm?

Artificial Intelligence p.1/49. n-queens. Artificial Intelligence p.2/49. Initial state: the empty board or a board with n random

Scientific Computing. Algorithm Analysis

CS171:Introduction to Computer Science II. Algorithm Analysis. Li Xiong

Extended Introduction to Computer Science CS1001.py

Introduction to the Analysis of Algorithms. Algorithm

CSE 100: B+ TREE, 2-3 TREE, NP- COMPLETNESS

Algorithm. Lecture3: Algorithm Analysis. Empirical Analysis. Algorithm Performance

Algorithm Analysis. (Algorithm Analysis ) Data Structures and Programming Spring / 48

PROGRAM EFFICIENCY & COMPLEXITY ANALYSIS

Introduction to Programming I

Data structure and algorithm in Python

Algorithm Analysis. Big Oh

ASYMPTOTIC COMPLEXITY

Data Structures and Algorithms

Algorithmic Analysis. Go go Big O(h)!

CSCE 350: Chin-Tser Huang. University of South Carolina

Algorithmic problem-solving: Lecture 2. Algorithmic problem-solving: Tractable vs Intractable problems. Based on Part V of the course textbook.

Algorithm. Algorithm Analysis. Algorithm. Algorithm. Analyzing Sorting Algorithms (Insertion Sort) Analyzing Algorithms 8/31/2017

Week 12: Running Time and Performance

The Role of Algorithms in Computing

Analysis of Algorithm. Chapter 2

CSE 373 APRIL 3 RD ALGORITHM ANALYSIS

Computational Complexity Analysis

[ 11.2, 11.3, 11.4] Analysis of Algorithms. Complexity of Algorithms. 400 lecture note # Overview

The Complexity of Algorithms (3A) Young Won Lim 4/3/18

CLASS: II YEAR / IV SEMESTER CSE CS 6402-DESIGN AND ANALYSIS OF ALGORITHM UNIT I INTRODUCTION

Algorithm Analysis. CENG 707 Data Structures and Algorithms

Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, Approximation Algorithms

Computer Science Approach to problem solving

CSE 421: Introduction to Algorithms Complexity

10/5/2016. Comparing Algorithms. Analyzing Code ( worst case ) Example. Analyzing Code. Binary Search. Linear Search

TREES AND ORDERS OF GROWTH 7

ACO and other (meta)heuristics for CO

Asymptotic Analysis of Algorithms

ANALYSIS OF ALGORITHMS

Topic Analysis PART-A

CS 310: Order Notation (aka Big-O and friends)

(Refer Slide Time: 1:27)

Recursion. COMS W1007 Introduction to Computer Science. Christopher Conway 26 June 2003

CSE 100 Advanced Data Structures

Algorithm Efficiency, Big O Notation, and Javadoc

CSE373: Data Structures and Algorithms Lecture 4: Asymptotic Analysis. Aaron Bauer Winter 2014

Analysis of algorithms

ECE 2574: Data Structures and Algorithms - Big-O Notation. C. L. Wyatt

Chapter 9 Graph Algorithms

Measuring algorithm efficiency

ECE 5775 (Fall 17) High-Level Digital Design Automation. Fixed-Point Types Analysis of Algorithms

Introduction to Analysis of Algorithms

Extended Introduction to Computer Science CS1001.py Lecture 7: Basic Algorithms: Sorting, Merge; Time Complexity and the O( ) notation

Theory and Frontiers of Computer Science. Fall 2013 Carola Wenk

We will use the following code as an example throughout the next two topics:

Lecture 13. Reading: Weiss, Ch. 9, Ch 8 CSE 100, UCSD: LEC 13. Page 1 of 29

O(1) How long does a function take to run? CS61A Lecture 6

Java How to Program, 9/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Combinatorial Optimization

Chapter 9 Graph Algorithms

26 How Many Times Must a White Dove Sail...

CSCI 261 Computer Science II

20 Some terminology regarding trees: Parent node: A node that has branches. Parent nodes can have multiple branches.

What did we talk about last time? Finished hunters and prey Class variables Constants Class constants Started Big Oh notation

Algorithm Analysis. Applied Algorithmics COMP526. Algorithm Analysis. Algorithm Analysis via experiments

Data Structures Lecture 3 Order Notation and Recursion

Another Sorting Algorithm

Graphs: Introduction. Ali Shokoufandeh, Department of Computer Science, Drexel University

The Algorithm Design Manual

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

Transcription:

ECE6095: CAD Algorithms Optimization Techniques Mohammad Tehranipoor ECE Department 6 September 2010 1 Optimization Techniques Objective: A basic review of complexity Review of basic algorithms Some physical design examples Study of algorithms that are useful in the VLSI Design Automation Students must be familiar with algorithms to be able to understand and solve physical design problems. Students can use optimization techniques in their research and projects. 6 September 2010 2 1

Combinatorics One of the fastest growing areas of applied mathematics. It is concerned with the study of arrangements, patterns, designs, assignments, schedules, connections, and configurations. It is everyday science!! Class scheduling Traveling salesman Pattern recognition Airline Tours VLSI 6 September 2010 3 Optimization Problem A combinatorial optimization problem is defined as the set of all the instances of the problem, each instance being defined as a pair (F,c). F is any set, the domain of feasible points c is the cost function c: F R 1 The problem is to find an f F for which c(f) c(y) for all y F f is called globally optimal solution. Most VLSI problems belong to this class 6 September 2010 4 2

A VLSI Kind of Example Routing problem: How to optimally connect 2 nodes in the circuit layout? 6 September 2010 5 Computational Complexity How fast will an algorithm run on a computer? How much memory will it need? Computational complexity tries to answer these questions without having to deal with specific hardware. Thus exact seconds and megabytes are insignificant. input size is the base parameter that defines complexity. 6 September 2010 6 3

Analyzing Algorithms Analysis results in a viable candidate algorithm for solving a problem. Analysis is challenging and requires knowledge tools like combinatorics, some probability, mathematical skills etc. While we will not spend rest of the semester to learn these skills, it is important to know basics for appreciating the algorithm design(s). 6 September 2010 7 Basic Algorithm Analysis How can we calculate the running time of an algorithm? How can we compare two different algorithms? How do we know if an algorithm is optimal? Count the number of basic operations performed by the algorithm on the worst-case input Basic operation: An assignment A comparison between two variables An arithmetic operation between two variables The worst-case input is the input assignment for which the most basic operations are performed. 6 September 2010 8 4

Input Size and Run Time Number of items that are input to the problem define input size. Example sorting, addition, multiplication, etc. The running time of an algorithm is the number of primitive operations or steps that are executed. The running time of an algorithm varies with the input and typically grows with the input size. 6 September 2010 9 Best Case Worst Case Average Case Analysis Usually we are more interested in worst case analysis as it also defines the upper bound on the running time of an algorithm. Average case analysis is interesting but for a large class of problems average case is as bad as worst case. Average case is difficult to determine We focus on the worst case running time Easier to analyze Crucial to some applications such as physical design problems 6 September 2010 10 5

Big-O Notation Big-O is used for defining the upper bound on a function. We express complexity of the algorithms using big-o notation. For a problem of size N (Assume N is input): A constant-time method is "order 1": O(1) A linear-time method is "order N": O(N) A quadratic-time method is "order N squared": O(N 2 ) Cubic: O(N 3 ) Logarithmic, O(log N) 6 September 2010 11 How to Determine Complexities? Q: In general, how can we determine the running time of a piece of code? A: It depends on what kinds of statements are used. We don t need to count the exact number of steps in a program. What matters is how that number grows with the size of the input to the program. 6 September 2010 12 6

Rate of Growth of an Algorithm It is the rate of growth of running time of an algorithm that interests us the most, especially the CAD tool developers. Note that the O(N) algorithm takes more time than the O(N 2 ) algorithm for small inputs. As N grows, the O(N) algorithm takes less and less time relative to the O(N 2 ) algorithm. So for large N, constant factors don t matter, just the big-o bounds. O(N 2 ) O(N) 6 September 2010 13 Constant Factors The growth rate is not affected by constant factors or lower-order terms Examples: 10 2 n + 10 5 is a linear function: O(n) 10 5 n 2 + 10 8 n is a quadratic function: O(n 2 ) A n grows large, n 2 will dominate T (n ) 1E+26 1E+24 1E+22 1E+20 1E+18 1E+16 1E+14 1E+12 1E+10 1E+8 1E+6 1E+4 1E+2 1E+0 Quadratic Quadratic Linear Linear 1E+0 1E+2 1E+4 1E+6 1E+8 1E+10 n 6 September 2010 14 7

Rate of Growth of an Algorithm Polynomial vs. Exponential tractable vs. intractable Linear vs. Quadratic execution realism in VLSI 6 September 2010 15 Tractable and Intractable A problem that is solved in deterministic polynomial time is called tractable. A polynomial-time algorithm is defined to be an algorithm whose execution time is given by a polynomial on the size of the input. Problems that can t be solved by a polynomial-time algorithm are called intractable problems. NP complete problems are likely to be intractable. 6 September 2010 16 8

CAD Algorithms Local and Global Optima Mohammad Tehranipoor ECE Department 6 September 2010 17 Local and Global Optima Finding globally optimal solution can be prohibitively difficult. c A B C D 0 1 F c(f) c(g) f є F and g є N(f), f is called locally optimal. N(f) is called Neighborhood function 6 September 2010 18 9

Cont. A, B, C, and D are all locally optimal. Only D is globally optimal. F and c are given. Evaluating the entire search space when F is large is infeasible. The goal of every algorithm is to find the global optima without searching entire search space. Most of the algorithms get stuck in local optima. 6 September 2010 19 Global Optimization The objective of global optimization is to find the globally best solution of models, in the (possible or known) presence of multiple local optima. The main question is how to find the global optima. 6 September 2010 20 10