Trees and structural induction

Save this PDF as:

Size: px
Start display at page:

Transcription

1 Trees and structural induction Margaret M. Fleck 25 October 2010 These notes cover trees, tree induction, and structural induction. (Sections 10.1, 4.3 of Rosen.) 1 Why trees? Computer scientists are obsessed with trees, because trees of various sorts show up in a wide range of contexts. Originally, of course, trees are a familiar form of plant. Oddly, computer scientists normally draw ours upside down. [smile] Trees in computer science show up as Organization of real-world data: family/geneaology trees, taxonomies (e.g. animal subspecies, species, genera, families) Data structures for efficiently storing and retrieving data. The basic idea is the same one we saw for binary search within an array: sort the data, so that you can repeatedly cut your search area in half. Parse trees, which show the structure of a piece of (for example) computer program, so that the compiler can correctly produce the corresponding machine code. Decision trees, which classify data by asking a series of questions. Each tree node contains a question, whose answer directs you to one of the node s children. For example, here s a parse tree for ((a * c) + b) * d) 1

2 X X X a * c + b * d Here s what a medical decision tree might look like. Decision trees are also used for engineering classification problems, such as transcribing speech waveforms into the basic sounds of a natural language. Headache? yes Cough? no Fever? yes no yes no Panic Rest Rest Back to work 2 Defining trees Because trees are used for such a wide range of different purposes, there are several radically-different ways to define what a tree is. Fortunately, they amount to the same thing even though they look very different. A common feature of all definitions is that a tree is made up of a set of nodes/vertices and a set of edges that join them together. For the purposes of this class, both sets (and thus the tree) will be finite. These definitions can be extended to infinite trees, but we won t go there. 2

3 The most familiar definition of a tree involves giving directions to the edges. That is, for each edge, we know which end is the parent and which end is the child. In drawings, the direction is sometimes indicated by arrows on the edges (e.g. on the child end) but more often it is indicated implicitly by drawing parents higher on the page. This is how you think about trees when you are designing data structures for computer programs. Researchers in graph theory start with a general graph, i.e. a bunch of nodes strewn all over space in no particular pattern, joined together by edges with no specific direction to each edge. A tree is a graph with two properties. First, it must be connected, i.e. there s a way to get from any node to any other node via the edges. Second, it contains no cycles (loops where you go around in a circle and get back to the same node). If you take one of these graph theory trees, choose any node to be the root, pick up the tree by this node and shake it a bit so it hangs down nicely, it will look like a normal tree. It doesn t matter which node you pick to be the root. A graph theory tree with a designated root is called a rooted tree in graph theory, but it s what we re just calling a tree. Finally, we can define trees recursively. Recursive definitions will be important when we come to write proofs involving trees. A simple recursive definition might look like: Base: a single node with no edges is a tree Induction: if A and B are two trees, then you can make a bigger tree by taking a new root node r and attaching the roots of A and B onto r as its children Here s a picture of the inductive case: r A B This definition only creates trees in which each node has either zero or two children. If we wanted to allow nodes with a single child, we d need another inductive rule: Induction: if A is a tree, then you can make a bigger tree by taking a new root node r and attaching the root of A onto r as its child 3

4 r A This idea can be extended to allow 3 children, or 4 children, or n children (where n is any finite integer). 3 Basic tree terminology Much of the basic terminology for trees is based on either the plant analogy or the geneaology analogy. A tree has one special root node that has no parent. Every other node is joined by an edge to exactly one parent node. If p is the parent of x, then x is a child of p. The parent is always closer to the root than the child. If y is also a child of p, then x and y are siblings. A leaf node is a node that has no children. A node that does have children is known as an internal node. The root is an internal node, except in the special case of a tree that consists of just one node (and no edges). If you can get from x to g by following one or more parent links, then g is an ancestor of x and x is a descendent of g. We will treat x as an ancestor/descendent of itself. 1 The ancestors/descendents of x other than x itself are its proper ancestors/descendents. If you pick some random node a in a tree T, the subtree rooted at a consists of a, all its descendents, and all the edges linking them. The nodes of a tree can be organized into levels, based on how many edges away from the root they are. The root is defined to be level 0. Its children are level 1. Their children are level 2, and so forth. You can also define the height of a node as the number of edges in a path from that node up to the root. The height of a tree is the maximum level of any of its nodes. Or, equivalently, the maximum level of any of its leaves. 1 Some reputable authors don t. This is a place where you always double-check what convention the author is using. 4

5 4 m-ary trees Many applications restrict how many children each node can have. A binary tree (very common!) allows each node to have at most two children. An m- ary tree allows each node to have up to m children. Trees with fat nodes with a large bound on the number of children (e.g. 16) occur in some storage applications. Important special cases involve trees that are nicely filled out in some sense. Here, there is considerable variation in terminology as you move from author to author, because the most useful definitions depend on the application. So always check which definitions your author is using. In a full m-ary tree, each node has either zero or m children. Never an intermediate number. So in a full 3-ary tree, nodes can have zero or three children, but not one child or two children. In a complete m-ary tree, all leaves are at the same height. Normally, we d be interested only in full complete m-ary trees, where this means that the whole bottom level is fully populated with leaves. For restricted types of trees like this, there are strong relationships between the numbers of different types of notes. for example: Claim 1 A full m-ary tree with i internal nodes has mi + 1 nodes total. To see why this is true, notice that there are two types of nodes: nodes with a parent and nodes without a parent. A tree has exactly one node with no parent. We can count the nodes with a parent by taking the number of parents in the tree (i) and multiplying by the branching factor m. Therefore, the number of leaves in a full m-ary tree with i internal nodes is (mi + 1) i = (m 1)i Height vs number of nodes Recall that the level of a node is the number of edges in the path from it to the root. That is, the root has level 0. The height of a tree is the maximum level of any (leaf) node. Now, suppose that we have a binary tree of height h. How many nodes and how many leaves does it contain? This clearly can t be an exact formula, since some trees are more bushy than others and some are more balanced 5

6 than others (all leaves at approximately the same level). But we can give useful upper and lower bounds. To minimize the node counts, consider a tree that has just one leaf. It contains h + 1 nodes connected into a straight line by h edges. So the minimum number of leaves is 1 (regardless of h) and the minimum number of nodes is h + 1. The node counts are maximized by a tree which is full (see above) and complete (all leaves are at the same level). In that case, the number of leaves is 2 h and the number of nodes is h L=0 2L = 2 h+1 1. So for a full, complete binary tree, the total number of nodes n is Θ(2 h ). So then h is Θ(log 2 n). If the tree might not be full and complete, this is a lower bound on the height, so h is Ω(log 2 n). There are similar relationship between the number of leaves and the height. In a balanced m-ary tree of height h, all leaves are either at height h or at height h 1. Balanced trees are useful when you want to store n items (where n is some random natural number that might not be a power of 2) while keeping all the leaves at approximately the same height. Balanced trees aren t as rigid as full binary trees, but they also have Θ(log 2 n) height. This means that all the leaves are fairly close to the root, which leads to good behavior from algorithms trying to store and find things in the tree. 6 Tree induction We claimed that Claim 2 Let T be a binary tree, with height h and n nodes. Then n 2 h+1 1. We can prove this claim by induction. Our induction variable needs to be some measure of the size of the tree, e.g. its height or the number of nodes in it. Whichever variable we choose, it s important that the inductive step divide up the tree at the top, into a root plus (for a binary tree) two subtrees. Proof by induction on h, where h is the height of the tree. Base: The base case is a tree consisting of a single node with no edges. It has h = 0 and n = 1. Then we work out that 2 h+1 1 = = 1 = n. 6

7 Induction: Suppose that the claim is true for all binary trees of height < h, where h > 0. Let T be a binary tree of height h. Case 1: T consists of a root plus one subtree X. X has height h 1. So X contains at most 2 h 1 nodes. And then X contains at most 2 h nodes, which is less than 2 h+1 1. Case 2: T consists of a root plus two subtrees X and Y. X and Y have heights p and q, both of which have to be less than h, i.e. h 1. X contains at most 2 p+1 1 nodes and Y contains at most 2 q+1 1 nodes, by the inductive hypothesis. But this means that X and Y each contain 2 h 1 nodes. So the total number of nodes in T is the number of nodes in X plus the number of nodes in Y plus one (the new root node). This is 1+(2 p 1)+(2 q 1) 1+2(2 h 1) = 1+2 h+1 2 = 2 h+1 1 So the total number of nodes in T is 2 h+1 1, which is what we needed to show. 7 Structural induction Inductive proofs on trees can also be written using structural induction. In structural induction, there is no explicit induction variable. Rather, the outline of the proof follows the structure of a recursive definition. This is sometimes simpler than trying to find an explicit integer induction variable. Structural induction is used to prove a claim about a set T of objects which is defined recursively. Instead of having an explicit induction variable n, our proof follows the structure of the recursive definition. Show the claim holds for the base case(s) of the definition of T For the recursive cases of T s definition, show that if the claim holds for the smaller/input objects, then it holds for the larger/output objects. In Section 2, we saw a recursive definition for binary trees. To do structural induction on trees using this definition, we show that The claim holds for trees consisting of a single node. If the claim holds for trees A and B, it also holds for a new tree consisting of a root with A and B attached as its children. 7

8 If the claim holds for tree A, it also holds for a new tree consisting of a root with A attached as its child. 8 Heap example To have a nice claim to prove by structural induction, suppose we store numbers in the nodes of a full binary tree. The numbers obey the heap property if, for every node X in the tree, the value in X is at least as big as the value in each of X s children. For example: Notice that the values at one level aren t uniformly bigger than the values at the next lower level. For example, 18 in the bottom level is larger than 12 on the middle level. But values never decrease as you move along a path from a leaf up to the root. Trees with the heap property are convenient for applications where you have to maintain a list of people or tasks with associated priorities. It s easy to retrieve the person or task with top priority: it lives in the root. And it s easy to restore the heap property if you add or remove a person or task. I claim that: Claim 3 If a tree has the heap property, then the value in the root of the tree is at least as large as the value in any node of the tree. To keep the proof simple, let s restrict our attention to full binary trees: Claim 4 If a full binary tree has the heap property, then the value in the root of the tree is at least as large as the value in any node of the tree. 8

9 Let s let v(a) be the value at node a and let s use the recursive structure of trees to do our proof. Proof by structural induction. Base: If a tree contains only one node, obviously the largest value in the tree lives in the root! Induction: Suppose that the claim is true for trees X and Y. We need to show that the claim is also true for the tree T that consists of a root node plus subtrees X and Y. Let r be the root of the whole tree T. Suppose p and q are the children of r, i.e. the root nodes of X and Y. Since T has the heap property, v(r) v(p) and v(r) v(q). Suppose that x is any node of T. We need to show that v(r) v(x). There are three cases: Case 1: x = r. This is obvious. Case 2: x is any node in the subtree X. By the inductive hypothesis v(p) v(x). But we know that v(r) v(p). So v(p) v(x). Case 3: x is any node in the subtree Y. Similar to case 2. So, for any node x in T, v(r) v(x). In the inductive step, notice that we split up the big tree (T) at its root, producing two smaller subtrees (X) and (Y ). Some students try to do induction on trees by grafting stuff onto the bottom of the tree. This frequently does not work, especially as you get to examples in more advanced courses. Therefore, we will take off points if you do it on homework or tests. 9 Structural induction with 2D points Structural induction is not limited to trees. It can be used on any class of objects with a recursive definition. For example, consider the following recursive definition of a set S of 2D points: 1. (3, 5) S 2. If (x, y) S, then (x + 2, y) S 9

10 3. If (x, y) S, then ( x, y) S 4. If (x, y) S, then (y, x) S What s in S? Starting with the pair specified in the base case (3, 5), we use rule 3 to add ( 3, 5). Rule 2 then allows us to add ( 1, 5) and then (1, 5). If we apply rule 2 repeatedly, we see that S contains all pairs of the form (2n + 1, 5) where x is a natural number. By rule 4, (5, 2n + 1) must also be in S for every natural number n. We then apply rules 2 and 3 in the same way, to show that (2m+1, 2n+1) is in S for every natural numbers m and n. We ve now shown, albeit somewhat informally, that every pair with odd coordinates is a member of S. But does every member of S have odd coordinates? To show that all members of S have odd coordinates, we use structural induction. Proof by structural induction that all elements of S have both coordinates odd. Base: Both coordinates of (3, 5) are odd. Induction: Suppose that both coordinates of (x, y) are odd. We need to show that both coordinates of (x + 2, y), ( x, y), and (y, x) are odd. But this is (even in the context of this course), obvious. This proof would be complicated to write with standard induction. It s possible to find a standard induction variable n, but it s done in a somewhat obscure way: the size of an element x in S is the number of times you have to apply the recursive rules in S s definition in order to show that x is in S. 10

Induction. Margaret M. Fleck. 10 October These notes cover mathematical induction and recursive definition

Induction Margaret M. Fleck 10 October 011 These notes cover mathematical induction and recursive definition 1 Introduction to induction At the start of the term, we saw the following formula for computing

Principle of (Weak) Mathematical Induction. P(1) ( n 1)(P(n) P(n + 1)) ( n 1)(P(n))

Outline We will cover (over the next few weeks) Mathematical Induction (or Weak Induction) Strong (Mathematical) Induction Constructive Induction Structural Induction Principle of (Weak) Mathematical Induction

1 2-3 Trees: The Basics

CS10: Data Structures and Object-Oriented Design (Fall 2013) November 1, 2013: 2-3 Trees: Inserting and Deleting Scribes: CS 10 Teaching Team Lecture Summary In this class, we investigated 2-3 Trees in

Graph Theory. Directed and undirected graphs make useful mental models for many situations. These objects are loosely defined as follows:

Graph Theory Directed and undirected graphs make useful mental models for many situations. These objects are loosely defined as follows: Definition An undirected graph is a (finite) set of nodes, some

Full and Complete Binary Trees

Full and Complete Binary Trees Binary Tree Theorems 1 Here are two important types of binary trees. Note that the definitions, while similar, are logically independent. Definition: a binary tree T is full

Trees. Definition: A tree is a connected undirected graph with no simple circuits. Example: Which of these graphs are trees?

Section 11.1 Trees Definition: A tree is a connected undirected graph with no simple circuits. Example: Which of these graphs are trees? Solution: G 1 and G 2 are trees both are connected and have no simple

Sample Problems in Discrete Mathematics

Sample Problems in Discrete Mathematics This handout lists some sample problems that you should be able to solve as a pre-requisite to Computer Algorithms Try to solve all of them You should also read

Balanced search trees

Lecture 8 Balanced search trees 8.1 Overview In this lecture we discuss search trees as a method for storing data in a way that supports fast insert, lookup, and delete operations. (Data structures handling

Homework 15 Solutions

PROBLEM ONE (Trees) Homework 15 Solutions 1. Recall the definition of a tree: a tree is a connected, undirected graph which has no cycles. Which of the following definitions are equivalent to this definition

WRITING PROOFS. Christopher Heil Georgia Institute of Technology

WRITING PROOFS Christopher Heil Georgia Institute of Technology A theorem is just a statement of fact A proof of the theorem is a logical explanation of why the theorem is true Many theorems have this

Answers to Homework 1 p. 13 1.2 3 What is the smallest value of n such that an algorithm whose running time is 100n 2 runs faster than an algorithm whose running time is 2 n on the same machine? Find the

CS/Math 240: Introduction to Discrete Mathematics Fall 2015 Instructors: Beck Hasti, Gautam Prakriya Reading 7 : Program Correctness 7.1 Program Correctness Showing that a program is correct means that

Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

Outline NP-completeness Examples of Easy vs. Hard problems Euler circuit vs. Hamiltonian circuit Shortest Path vs. Longest Path 2-pairs sum vs. general Subset Sum Reducing one problem to another Clique

CSE 5311 Homework 2 Solution

CSE 5311 Homework 2 Solution Problem 6.2-6 Show that the worst-case running time of MAX-HEAPIFY on a heap of size n is Ω(lg n). (Hint: For a heap with n nodes, give node values that cause MAX- HEAPIFY

Mathematical Induction

Mathematical Induction MAT30 Discrete Mathematics Fall 016 MAT30 (Discrete Math) Mathematical Induction Fall 016 1 / 19 Outline 1 Mathematical Induction Strong Mathematical Induction MAT30 (Discrete Math)

CMSC 451: Graph Properties, DFS, BFS, etc.

CMSC 451: Graph Properties, DFS, BFS, etc. Slides By: Carl Kingsford Department of Computer Science University of Maryland, College Park Based on Chapter 3 of Algorithm Design by Kleinberg & Tardos. Graphs

The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge,

The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge, cheapest first, we had to determine whether its two endpoints

Balanced Binary Search Tree

AVL Trees / Slide 1 Balanced Binary Search Tree Worst case height of binary search tree: N-1 Insertion, deletion can be O(N) in the worst case We want a tree with small height Height of a binary tree with

Introduction to Algorithms March 10, 2004 Massachusetts Institute of Technology Professors Erik Demaine and Shafi Goldwasser Quiz 1.

Introduction to Algorithms March 10, 2004 Massachusetts Institute of Technology 6.046J/18.410J Professors Erik Demaine and Shafi Goldwasser Quiz 1 Quiz 1 Do not open this quiz booklet until you are directed

3. Finding the Median

3. Finding the Median Suppose we have a list of N keys that are completely unsorted. If we want to find the largest or the smallest key, it is quite easy with N 1 comparisons. If we want to find the m

GRAPH THEORY LECTURE 4: TREES

GRAPH THEORY LECTURE 4: TREES Abstract. 3.1 presents some standard characterizations and properties of trees. 3.2 presents several different types of trees. 3.7 develops a counting method based on a bijection

6.042/18.062J Mathematics for Computer Science October 3, 2006 Tom Leighton and Ronitt Rubinfeld. Graph Theory III

6.04/8.06J Mathematics for Computer Science October 3, 006 Tom Leighton and Ronitt Rubinfeld Lecture Notes Graph Theory III Draft: please check back in a couple of days for a modified version of these

Ordered Lists and Binary Trees

Data Structures and Algorithms Ordered Lists and Binary Trees Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/62 6-0:

Analysis of Algorithms I: Binary Search Trees

Analysis of Algorithms I: Binary Search Trees Xi Chen Columbia University Hash table: A data structure that maintains a subset of keys from a universe set U = {0, 1,..., p 1} and supports all three dictionary

Lecture 10: Regression Trees

Lecture 10: Regression Trees 36-350: Data Mining October 11, 2006 Reading: Textbook, sections 5.2 and 10.5. The next three lectures are going to be about a particular kind of nonlinear predictive model,

Parallel and Sequential Data Structures and Algorithms Lecture (Spring 2013) Lecture 19 Quicksort and Sorting Lower Bounds

Lecture 19 Quicksort and Sorting Lower Bounds Parallel and Sequential Data Structures and Algorithms, 15-210 (Spring 2013) Lectured by Umut Acar 28 March 2013 1 Quicksort You have surely seen quicksort

Multi-Way Search Trees (B Trees)

Multi-Way Search Trees (B Trees) Multiway Search Trees An m-way search tree is a tree in which, for some integer m called the order of the tree, each node has at most m children. If n

COLORED GRAPHS AND THEIR PROPERTIES

COLORED GRAPHS AND THEIR PROPERTIES BEN STEVENS 1. Introduction This paper is concerned with the upper bound on the chromatic number for graphs of maximum vertex degree under three different sets of coloring

Nearly Complete Binary Trees and Heaps

Nearly Complete Binary Trees and Heaps DEFINITIONS: i) The depth of a node p in a binary tree is the length (number of edges) of the path from the root to p. ii) The height (or depth) of a binary tree

COT5405 Analysis of Algorithms Homework 3 Solutions

COT0 Analysis of Algorithms Homework 3 Solutions. Prove or give a counter example: (a) In the textbook, we have two routines for graph traversal - DFS(G) and BFS(G,s) - where G is a graph and s is any

6.3 Conditional Probability and Independence

222 CHAPTER 6. PROBABILITY 6.3 Conditional Probability and Independence Conditional Probability Two cubical dice each have a triangle painted on one side, a circle painted on two sides and a square painted

7.1 Introduction. CSci 335 Software Design and Analysis III Chapter 7 Sorting. Prof. Stewart Weiss

Chapter 7 Sorting 7.1 Introduction Insertion sort is the sorting algorithm that splits an array into a sorted and an unsorted region, and repeatedly picks the lowest index element of the unsorted region

The following themes form the major topics of this chapter: The terms and concepts related to trees (Section 5.2).

CHAPTER 5 The Tree Data Model There are many situations in which information has a hierarchical or nested structure like that found in family trees or organization charts. The abstraction that models hierarchical

Planar Graphs and Graph Coloring

Planar Graphs and Graph Coloring Margaret M. Fleck 1 December 2010 These notes cover facts about graph colorings and planar graphs (sections 9.7 and 9.8 of Rosen) 1 Introduction So far, we ve been looking

Introduction to Algorithms Review information for Prelim 1 CS 4820, Spring 2010 Distributed Wednesday, February 24

Introduction to Algorithms Review information for Prelim 1 CS 4820, Spring 2010 Distributed Wednesday, February 24 The final exam will cover seven topics. 1. greedy algorithms 2. divide-and-conquer algorithms

Chapter 4. Trees. 4.1 Basics

Chapter 4 Trees 4.1 Basics A tree is a connected graph with no cycles. A forest is a collection of trees. A vertex of degree one, particularly in a tree, is called a leaf. Trees arise in a variety of applications.

Intro. to the Divide-and-Conquer Strategy via Merge Sort CMPSC 465 CLRS Sections 2.3, Intro. to and various parts of Chapter 4

Intro. to the Divide-and-Conquer Strategy via Merge Sort CMPSC 465 CLRS Sections 2.3, Intro. to and various parts of Chapter 4 I. Algorithm Design and Divide-and-Conquer There are various strategies we

Programming and Data Structure

Programming and Data Structure Dr. P.P.Chakraborty Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture # 07 Data Structuring: Case Study - III We shall continue

Outline BST Operations Worst case Average case Balancing AVL Red-black B-trees. Binary Search Trees. Lecturer: Georgy Gimel farb

Binary Search Trees Lecturer: Georgy Gimel farb COMPSCI 220 Algorithms and Data Structures 1 / 27 1 Properties of Binary Search Trees 2 Basic BST operations The worst-case time complexity of BST operations

Lecture 11 : Recursion DRAFT

CS/Math 40: Introduction to Discrete Mathematics /4/011 Lecture 11 : Recursion Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT Last time we started talking about recursion. It is convenient

Reading 13 : Finite State Automata and Regular Expressions

CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model

CS 561, Lecture 3 - Recurrences. Jared Saia University of New Mexico

CS 561, Lecture 3 - Recurrences Jared Saia University of New Mexico Recurrence Relations Oh how should I not lust after eternity and after the nuptial ring of rings, the ring of recurrence - Friedrich

A Summary of Error Propagation

A Summary of Error Propagation Suppose you measure some quantities a, b, c,... with uncertainties δa, δb, δc,.... Now you want to calculate some other quantity Q which depends on a and b and so forth.

ON THE FIBONACCI NUMBERS

ON THE FIBONACCI NUMBERS Prepared by Kei Nakamura The Fibonacci numbers are terms of the sequence defined in a quite simple recursive fashion. However, despite its simplicity, they have some curious properties

Lecture Notes on Spanning Trees

Lecture Notes on Spanning Trees 15-122: Principles of Imperative Computation Frank Pfenning Lecture 26 April 26, 2011 1 Introduction In this lecture we introduce graphs. Graphs provide a uniform model

Introduction to Relations

CHAPTER 7 Introduction to Relations 1. Relations and Their Properties 1.1. Definition of a Relation. Definition: A binary relation from a set A to a set B is a subset R A B. If (a, b) R we say a is related

Classification with Decision Trees

Classification with Decision Trees Yufei Tao Department of Computer Science and Engineering Chinese University of Hong Kong 1 / 24 Y Tao Classification with Decision Trees In this lecture, we will discuss

Lecture 1: Course overview, circuits, and formulas

Lecture 1: Course overview, circuits, and formulas Topics in Complexity Theory and Pseudorandomness (Spring 2013) Rutgers University Swastik Kopparty Scribes: John Kim, Ben Lund 1 Course Information Swastik

Steven Skiena. skiena

Lecture 3: Recurrence Relations (1997) Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Argue the solution to T(n) =

Data Structures and Algorithms

Data Structures and Algorithms CS245-2016S-06 Binary Search Trees David Galles Department of Computer Science University of San Francisco 06-0: Ordered List ADT Operations: Insert an element in the list

Data Structures. Topic #8

Data Structures Topic #8 Today s Agenda Continue Discussing Table Abstractions But, this time, let s talk about them in terms of new non-linear data structures trees which require that our data be organized

Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March

Growth Series for Rooted Trees Katholieke Universiteit Leuven 2 June 2014

Growth Series for Rooted Trees Katholieke Universiteit Leuven 2 June 2014 recent research results by Ian Dalton and Eric Freden Motivation 1: Growth series for groups are usually computed by finding normal

3. Finding the Median

3. Finding the Median We now address the following question: We have N keys, that are completely unsorted, and we wish to find the key at rank m so that there are m 1 keys bigger than it, and N m keys

1. What s wrong with the following proofs by induction?

ArsDigita University Month : Discrete Mathematics - Professor Shai Simonson Problem Set 4 Induction and Recurrence Equations Thanks to Jeffrey Radcliffe and Joe Rizzo for many of the solutions. Pasted

Binary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *

Binary Heaps A binary heap is another data structure. It implements a priority queue. Priority Queue has the following operations: isempty add (with priority) remove (highest priority) peek (at highest

princeton univ. F 13 cos 521: Advanced Algorithm Design Lecture 6: Provable Approximation via Linear Programming Lecturer: Sanjeev Arora

princeton univ. F 13 cos 521: Advanced Algorithm Design Lecture 6: Provable Approximation via Linear Programming Lecturer: Sanjeev Arora Scribe: One of the running themes in this course is the notion of

Data Structures Using C++ 2E. Chapter 11 Binary Trees and B-Trees

Data Structures Using C++ 2E Chapter 11 Binary Trees and B-Trees Binary Trees Definition: a binary tree, T, is either empty or such that T has a special node called the root node T has two sets of nodes,

Markov chains and Markov Random Fields (MRFs)

Markov chains and Markov Random Fields (MRFs) 1 Why Markov Models We discuss Markov models now. This is the simplest statistical model in which we don t assume that all variables are independent; we assume

Finish Set Theory Nested Quantifiers

Finish Set Theory Nested Quantifiers Margaret M. Fleck 18 February 2009 This lecture does a final couple examples of set theory proofs. It then fills in material on quantifiers, especially nested ones,

Taylor Polynomials and Taylor Series Math 126

Taylor Polynomials and Taylor Series Math 26 In many problems in science and engineering we have a function f(x) which is too complicated to answer the questions we d like to ask. In this chapter, we will

CS268: Geometric Algorithms Handout #5 Design and Analysis Original Handout #15 Stanford University Tuesday, 25 February 1992

CS268: Geometric Algorithms Handout #5 Design and Analysis Original Handout #15 Stanford University Tuesday, 25 February 1992 Original Lecture #6: 28 January 1991 Topics: Triangulating Simple Polygons

Why is the number of 123- and 132-avoiding permutations equal to the number of binary trees?

Why is the number of - and -avoiding permutations equal to the number of binary trees? What are restricted permutations? We shall deal with permutations avoiding some specific patterns. For us, a permutation

5.4. HUFFMAN CODES 71

5.4. HUFFMAN CODES 7 Corollary 28 Consider a coding from a length n vector of source symbols, x = (x... x n ), to a binary codeword of length l(x). Then the average codeword length per source symbol for

CSE 20: Discrete Mathematics for Computer Science. Prof. Miles Jones. Today s Topics: Graphs. The Internet graph

Today s Topics: CSE 0: Discrete Mathematics for Computer Science Prof. Miles Jones. Graphs. Some theorems on graphs. Eulerian graphs Graphs! Model relations between pairs of objects The Internet graph!

Computer Algorithms. Merge Sort. Analysis of Merge Sort. Recurrences. Recurrence Relations. Iteration Method. Lecture 6

Computer Algorithms Lecture 6 Merge Sort Sorting Problem: Sort a sequence of n elements into non-decreasing order. Divide: Divide the n-element sequence to be sorted into two subsequences of n/ elements

Multimedia Communications. Huffman Coding

Multimedia Communications Huffman Coding Optimal codes Suppose that a i -> w i C + is an encoding scheme for a source alphabet A={a 1,, a N }. Suppose that the source letter a 1,, a N occur with relative

S = {1, 2,..., n}. P (1, 1) P (1, 2)... P (1, n) P (2, 1) P (2, 2)... P (2, n) P = . P (n, 1) P (n, 2)... P (n, n)

last revised: 26 January 2009 1 Markov Chains A Markov chain process is a simple type of stochastic process with many social science applications. We ll start with an abstract description before moving

Class Notes CS 3137. 1 Creating and Using a Huffman Code. Ref: Weiss, page 433

Class Notes CS 3137 1 Creating and Using a Huffman Code. Ref: Weiss, page 433 1. FIXED LENGTH CODES: Codes are used to transmit characters over data links. You are probably aware of the ASCII code, a fixed-length

Recurrences (CLRS )

Recurrences (CLRS 4.1-4.2) Last time we discussed divide-and-conquer algorithms Divide and Conquer To Solve P: 1. Divide P into smaller problems P 1,P 2,P 3...P k. 2. Conquer by solving the (smaller) subproblems

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A

Mathematical Induction. Lecture 10-11

Mathematical Induction Lecture 10-11 Menu Mathematical Induction Strong Induction Recursive Definitions Structural Induction Climbing an Infinite Ladder Suppose we have an infinite ladder: 1. We can reach

Heap. Binary Search Tree. Heaps VS BSTs. < el el. Difference between a heap and a BST:

Heaps VS BSTs Difference between a heap and a BST: Heap el Binary Search Tree el el el < el el Perfectly balanced at all times Immediate access to maximal element Easy to code Does not provide efficient

Algorithms and Data Structures

Algorithms and Data Structures CMPSC 465 LECTURES 20-21 Priority Queues and Binary Heaps Adam Smith S. Raskhodnikova and A. Smith. Based on slides by C. Leiserson and E. Demaine. 1 Trees Rooted Tree: collection

If we want to measure the amount of storage that an algorithm uses as a function of the size of the instances, there is a natural unit available Bit.

(1) Explain why analysis of algorithms is important. When we have a problem to solve, there may be several suitable algorithms available. We would obviously like to choose the best. Analyzing an algorithm

Data Structures. Topic #9

Data Structures Topic #9 Today s Agenda Continue Discussing Trees Examine the algorithm to insert Examine the algorithm to remove Begin discussing efficiency of tree Are there any alternatives? 2-3 2-3-4

2015:07. Tree Approximation for hp- Adaptivity. Peter Binev

INTERDISCIPLINARY MATHEMATICS INSTITUTE 205:07 Tree Approximation for hp- Adaptivity Peter Binev IMI PREPRINT SERIES COLLEGE OF ARTS AND SCIENCES UNIVERSITY OF SOUTH CAROLINA Tree Approximation for hp-adaptivity

CHAPTER 3 Numbers and Numeral Systems

CHAPTER 3 Numbers and Numeral Systems Numbers play an important role in almost all areas of mathematics, not least in calculus. Virtually all calculus books contain a thorough description of the natural,

Theorem A graph T is a tree if, and only if, every two distinct vertices of T are joined by a unique path.

Chapter 3 Trees Section 3. Fundamental Properties of Trees Suppose your city is planning to construct a rapid rail system. They want to construct the most economical system possible that will meet the

Recursion and Induction

Recursion and Induction Themes Recursion Recurrence Definitions Recursive Relations Induction (prove properties of recursive programs and objects defined recursively) Examples Tower of Hanoi Gray Codes

Chapter 7. Indexes Table of Contents Objectives... 1 Introduction... 2 Context... 2 Review Questions... 3 Single-level Ordered Indexes... 4 Primary Indexes... 4 Clustering Indexes... 8 Secondary Indexes...

ALGEBRA. sequence, term, nth term, consecutive, rule, relationship, generate, predict, continue increase, decrease finite, infinite

ALGEBRA Pupils should be taught to: Generate and describe sequences As outcomes, Year 7 pupils should, for example: Use, read and write, spelling correctly: sequence, term, nth term, consecutive, rule,

CS188 Spring 2011 Section 3: Game Trees

CS188 Spring 2011 Section 3: Game Trees 1 Warm-Up: Column-Row You have a 3x3 matrix of values like the one below. In a somewhat boring game, player A first selects a row, and then player B selects a column.

Introduction to Diophantine Equations

Introduction to Diophantine Equations Tom Davis tomrdavis@earthlink.net http://www.geometer.org/mathcircles September, 2006 Abstract In this article we will only touch on a few tiny parts of the field

The Selection Problem

The Selection Problem The selection problem: given an integer k and a list x 1,..., x n of n elements find the k-th smallest element in the list Example: the 3rd smallest element of the following list

CSC 310: Information Theory

CSC 310: Information Theory University of Toronto, Fall 2011 Instructor: Radford M. Neal Week 2 What s Needed for a Theory of (Lossless) Data Compression? A context for the problem. What are we trying

Solving for Voltage and Current

Chapter 3 Solving for Voltage and Current Nodal Analysis If you know Ohm s Law, you can solve for all the voltages and currents in simple resistor circuits, like the one shown below. In this chapter, we

Binary Trees and Binary Search Trees C++ Implementations

Binary Trees and Binary Search Trees C++ Implementations Learning Goals: Apply basic tree definitions to classification problems. Describe the properties of binary trees, binary search trees, and more

School of Informatics, University of Edinburgh Computer Science 1 Ah [03 04]

School of Informatics, University of Edinburgh Computer Science 1 Ah [03 04] CS1Ah Lecture Note 25 Binary Search Trees This lecture studies binary trees in more detail, in particular their application

Jade Yu Cheng ICS 311 Homework 10 Oct 7, 2008

Jade Yu Cheng ICS 311 Homework 10 Oct 7, 2008 Question for lecture 13 Problem 23-3 on p. 577 Bottleneck spanning tree A bottleneck spanning tree of an undirected graph is a spanning tree of whose largest

SAMPLES OF HIGHER RATED WRITING: LAB 5

SAMPLES OF HIGHER RATED WRITING: LAB 5 1. Task Description Lab report 5. (April 14) Graph Coloring. Following the guidelines, and keeping in mind the assessment criteria, using where appropriate experimental

Session 6 Number Theory

Key Terms in This Session Session 6 Number Theory Previously Introduced counting numbers factor factor tree prime number New in This Session composite number greatest common factor least common multiple

A. V. Gerbessiotis CS Spring 2014 PS 3 Mar 24, 2014 No points

A. V. Gerbessiotis CS 610-102 Spring 2014 PS 3 Mar 24, 2014 No points Problem 1. Suppose that we insert n keys into a hash table of size m using open addressing and uniform hashing. Let p(n, m) be the

Near Optimal Solutions

Near Optimal Solutions Many important optimization problems are lacking efficient solutions. NP-Complete problems unlikely to have polynomial time solutions. Good heuristics important for such problems.

Converting a Number from Decimal to Binary

Converting a Number from Decimal to Binary Convert nonnegative integer in decimal format (base 10) into equivalent binary number (base 2) Rightmost bit of x Remainder of x after division by two Recursive

3.2 The Factor Theorem and The Remainder Theorem

3. The Factor Theorem and The Remainder Theorem 57 3. The Factor Theorem and The Remainder Theorem Suppose we wish to find the zeros of f(x) = x 3 + 4x 5x 4. Setting f(x) = 0 results in the polynomial

Overall Frequency Distribution by Total Score

Overall Frequency Distribution by Total Score Grade 8 Mean=17.23; S.D.=8.73 500 400 Frequency 300 200 100 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

Practice Problems (Midterm)

ECE-250 Algorithms and Data Structures (Winter 2012) Practice Problems (Midterm) Disclaimer: Please do keep in mind that this problem set does not reflect the exact topics or the fractions of each of the