Top Banner
Algorithms
23

Algorithms

Dec 30, 2015

Download

Documents

Algorithms. Homework. None Next Week: Mid-Term Open book / Open laptop. Old Business. CFGs: Context Free Grammars (Ch8). Ambiguity. The Chomsky Hierarchy Type 0 > Type 1 > Type 2 > Type 3 Recursively Enumerable > CS > CF > Regular Examples Type 3: Regular (Finite State): - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algorithms

Algorithms

Page 2: Algorithms

Homework

• None• Next Week: Mid-Term– Open book / Open laptop

Page 3: Algorithms

Old Business

Page 4: Algorithms

CFGs: Context Free Grammars

(Ch8)

Page 5: Algorithms

Ambiguity

Page 6: Algorithms

• The Chomsky Hierarchy– Type 0 > Type 1 > Type 2 > Type 3– Recursively Enumerable > CS > CF > Regular

• Examples– Type 3: Regular (Finite State):

• Grep & Regular Expressions• Right-Branching: A a A• Left-Branching: B B b

– Type 2: Context-Free (CF): • Center-Embedding: C … x C y• Parenthesis Grammars: <expr> ( <expr> )• w wR

– Type 1: Context-Sensitive (CS): w w– Type 0: Recursively Enumerable– Beyond Type 0: Halting Problem

Page 7: Algorithms

New Business

Page 8: Algorithms

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-006Spring-2008/LectureNotes/index.htm

Page 9: Algorithms

Hash Tables

n steps

n steps

Linear Time

Constant Time

n2 time

n time

Page 10: Algorithms

Profiling

Page 11: Algorithms

O(n) << O(n2)

0 50,000 100,000 150,000 200,000 250,0000

102030405060708090

100

f(x) = 1.8375555701746E-05 x − 0.331345186366877

f(x) = 8.31375E-10 x² + 0.000149303 x − 0.7692457131

slow Polynomial (slow) fast Linear (fast)

Tim

e

n = |words|

Page 12: Algorithms

Excel

n slow fast1,000 0.032 0.006

10,000 0.065 0.062

100,000 22.580 0.664

260,819 94.713 4.775

0 50,000 100,000 150,000 200,000 250,0000

102030405060708090

100

Page 13: Algorithms

Group Problems by Time Bounds• log(n)

– Binary Search, Fibonacci• n

– tr, cat, cut, uniq, egrep• n log n

– Sort• n2

– Edit Distance (http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Dynamic/Edit/)

• n3

– Matrix Multiplication n2.376

– Context-Free Parsing• 2n

– Factoring– Satisfiability

Page 15: Algorithms

Summary (for Mid-Term)

• Symbolic Processing v. Stat Packages– Practical• Symbolic: LISP, Wolfram Alpha• Stats: Newton’s Method, R

– Fundamental• Stuff you can’t do with stat packages• LISP: Recursion, Eval, Symbolic Differentiation• Lambda Calculus

– Small is Beautiful (beyond reason)– Church’s Thesis & Computability Theory

Page 16: Algorithms

Summary (continued)

• Unix for Poets– Pipes: tr | sort | uniq –c

• Python & NLTK– Unix for Poets (without Unix)– Objects– Polymorphism– Equivalence Classes– Partial Orders

• Algorithms– Group problems by time & space bounds

Page 17: Algorithms

Introduction to ProgrammingTraditional(Start with Definitions)• Constants: 1• Variables: x• Objects:

– lists, strings, arrays, matrices• Expressions: x == 1• Statements: Side Effects

– x = 1 (assignment)• Conditionals:

– If (x<=1) return 1;• Iteration: for loops• Functions• Recursion • Streams

Non-Traditional(Start with Examples)

• Recursiondef fact(x):

if(x <= 1): return 1else: return x * fact(x-1)

• Streams:– Unix Pipes

• Briefly mentioned– Everything else

Page 18: Algorithms

Examples

• Factorial• Fibonacci• Counting Words in a Text

Page 19: Algorithms

Python

def fact(x):if(x <= 1): return 1else: return x * fact(x-1)

def fact2(x):result=1for i in range(x):

result *=(i+1);return result

Recursion

Iteration

Page 20: Algorithms

Out-takes

Page 21: Algorithms

Cosine Distance

Page 22: Algorithms

Inner Products

Page 23: Algorithms

Inner Product in Python

def bag_of_words(words):D = {}for w in words:

if(D.has_key(w)):D[w] = D[w]

+ 1;else: D[w]=1;

return D

def inner_product(D1,D2):sum = 0.0

for key in D1: if key in D2: sum += D1[key] *

D2[key] return sum