Download presentation
Presentation is loading. Please wait.
Published byGeorgiana Jenkins Modified over 9 years ago
1
Algorithms
2
Homework None – Lectures & Homework Solutions: https://jshare.johnshopkins.edu/kchurch4/public_html/teaching/103/ – Video: http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6- 046JFall-2005/VideoLectures/detail/embed03.htm http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6- 046JFall-2005/VideoLectures/detail/embed03.htm Next Week: Mid-Term – Open everything: book / laptop / notes / network
3
Old Business
4
CFGs: Context Free Grammars (Ch8)
5
Ambiguity
6
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: ( ) w w R – Type 1: Context-Sensitive (CS): w w – Type 0: Recursively Enumerable – Beyond Type 0: Halting Problem
7
New Business
8
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-006Spring-2008/LectureNotes/index.htm
9
Hash Tables n steps Linear Time Constant Time n 2 time n time http://ocw.mit.edu/ans7870/6/6.006/s08/lecturenotes/files/docdist1.py http://ocw.mit.edu/ans7870/6/6.006/s08/lecturenotes/dd_prog4.htm
10
Profiling
11
O(n) << O(n 2 ) Time n = |words|
12
Excel nslowfast 1,0000.0320.006 10,0000.0650.062 100,00022.5800.664 260,81994.7134.775
13
Group Problems by Time Bounds log(n) – Binary Search, Fibonacci n – tr, cat, cut, uniq, egrep n log n – Sort n 2 – Edit Distance (http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Dynamic/Edit/)http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Dynamic/Edit/ n 3 – Matrix Multiplication n 2.376 – Context-Free Parsing 2 n – Factoring – Satisfiability
14
http://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/LectureNotes/lec3.pdf http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/VideoLectures/detail/embed03.htm
15
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
16
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
17
Introduction to Programming Traditional (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) Recursion def fact(x): if(x <= 1): return 1 else: return x * fact(x-1) Streams: – Unix Pipes Briefly mentioned – Everything else
18
Examples Factorial Fibonacci Counting Words in a Text
19
Python def fact(x): if(x <= 1): return 1 else: return x * fact(x-1) def fact2(x): result=1 for i in range(x): result *=(i+1); return result Recursion Iteration
20
Out-takes
21
Cosine Distance
22
Inner Products
23
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.