From 505c09500c6a179dfae8620ce260edd487f6ca76 Mon Sep 17 00:00:00 2001 From: Medium Fries Date: Mon, 15 Apr 2019 20:06:49 -0700 Subject: [PATCH 1/5] 370 midterm notes --- 338/scripts/makefile | 10 ++-- 370/notes/a-star.md | 9 +++- 370/notes/avl-trees.md | 2 +- 370/notes/single-source.md | 17 ++++++ 370/past-midterms/2.md | 53 ++++++++++++++++++ 370/past-midterms/2.py | 96 +++++++++++++++++++++++++++++++++ 370/past-midterms/midterm2.pdf | Bin 0 -> 111576 bytes 370/past-midterms/tmp.py | 27 ++++++++++ 370/past-midterms/trie.py | 59 ++++++++++++++++++++ 9 files changed, 266 insertions(+), 7 deletions(-) create mode 100644 370/notes/single-source.md create mode 100644 370/past-midterms/2.md create mode 100644 370/past-midterms/2.py create mode 100644 370/past-midterms/midterm2.pdf create mode 100644 370/past-midterms/tmp.py create mode 100644 370/past-midterms/trie.py diff --git a/338/scripts/makefile b/338/scripts/makefile index e18c8d5..9cb4a95 100644 --- a/338/scripts/makefile +++ b/338/scripts/makefile @@ -1,9 +1,11 @@ cc=javac -fxlib=--module-path /home/shockrah/Downloads/javafx-sdk-11.0.2/lib -ctrl=--add-modules javafx.controls - env=java -cfile="adsf" +#fxlib=--module-path /home/shockrah/Downloads/javafx-sdk-11.0.2/lib +#ctrl=--add-modules javafx.controls + +jfile="Main.java" +# Target class file to run(no extension) +cfile="Main" default: %.java # takes a java file as entry to build diff --git a/370/notes/a-star.md b/370/notes/a-star.md index a6aa0ad..7db418b 100644 --- a/370/notes/a-star.md +++ b/370/notes/a-star.md @@ -21,7 +21,12 @@ Time: O(VlogV + E) ## Dijkstra's -O(V) +O(V^2 + E) ## A\* -O(V^2 = E) + +Worst case is the same as Dijkstra's time + +O(V^2 + E) + + diff --git a/370/notes/avl-trees.md b/370/notes/avl-trees.md index 53832ac..00ca02b 100644 --- a/370/notes/avl-trees.md +++ b/370/notes/avl-trees.md @@ -7,7 +7,7 @@ _time complexity will be in terms of height_ * impl: _root will typically have the largest height value_ > Balance: - | left_height - right_height | + left_height - right_height we can discard the || if we want negative balance vals but it really shouldn't matter basically: we want the balance for each node to be 1 or 0. diff --git a/370/notes/single-source.md b/370/notes/single-source.md new file mode 100644 index 0000000..5ab3abc --- /dev/null +++ b/370/notes/single-source.md @@ -0,0 +1,17 @@ +# Single Source Shortest Path + +# Bellman-ford Algorithm + +Time: O(VE) + +# Floyd-Warshall + +Space: O(V^2) + +That space is because we're using a matrix to store the paths, which of course is going to take up two dimensions + +Main idea: Shortest path between any two nodes in a graph w/ V nodes _will_ go through at most V nodes + +Iterative idea: Path's can visit i intermediary node. Does that many any path shorter? + +Advantages: we can find negative cycles(Cycle where there is a negative edge) diff --git a/370/past-midterms/2.md b/370/past-midterms/2.md new file mode 100644 index 0000000..49e002a --- /dev/null +++ b/370/past-midterms/2.md @@ -0,0 +1,53 @@ +# Time/space complexity + +For basically everthing, just list it out somewhere on sheet + +# AVL Tree's + +Get some functions for them written out +Insert/Deletion/Lookup Functions + +# No pathfinding code +_mainly cuz we never did any for homework/class_ + +Time/space complexities should be straightforward memorization + +# Tries + + +# Huffman + +Decoding: +: Time - O(n) {n = number of input bits} + +Encoding +: Time O(nlog(n)) +: Where n is the number of unique bits in the string + + +# Pathfinding - Conceptual things + +Admissability: allowed to underestimate but not overestimate. + +> Heuristic? + +* A-star +* Best-first + +> Multiple sources + +* Floyd's Algorithm + +> Multiple destination + +* Floyd's +* Bellman-Ford + +> Negative edges + +* Floyd +* Bellman-Ford + +> Negative Cycles + +None diff --git a/370/past-midterms/2.py b/370/past-midterms/2.py new file mode 100644 index 0000000..0869705 --- /dev/null +++ b/370/past-midterms/2.py @@ -0,0 +1,96 @@ +class HuffmanNode: + # $ will represent a dummy node + # anything else is a regular node + def __init__(self, data, freq): + self.data = data + self.freq = freq + + +class HuffmanTree: + def __init__(self, node): + self.root = node + + def frequencyMap(self, string): + ret = {} + for i in string: + if i not in ret: + ret[i] = Node(i, 1) + else: + ret[i].freq += 1 + + return ret + + + def encode(self, string): + f = self.frequencyMap(string) + +class TrieNode: + def __init__(self): + # 1 ref for each character in the alphabet + self.isleaf = False + self.edges = [0] * 26 + +class TrieTree: + def __init__(self, root): + self.root = root + + # just not going to bother with capitals + def _charIndex(self, char): + return ord(char) - ord('a') + + def insert(self, string): + curr = self.root + for i in string: + alphabetIndex = _charIndex(i) + if curr[alphabetIndex] is None: + curr.edges[alphabetIndex] = Node() + # go to the nexxt thing + curr = curr.edges[alphabetIndex] + else: + # Finally mark the last node as a leaf + curr.isleaf = True + + def lookup(self, string): + curr = self.root + # First we should go straight to the end of the string + # That's why we don't do any checks + for i in string: + alphaIndex = _charIndex(i) + curr = curr.edges[alphaIndex] + + return curr.isleaf + + def remove(self, string): + pass + + def traverse(self, node, preFix): + if node: + if n.isleaf: + print(prefix) + # recursively go through the tree + for i in prefix: + traverse(node.edges[_i], prefix+_charIndex(i)) + +class AVLNode: + def __init__(self, data): + self.data = data + self.height = 0 + self.left = None + self.Right = None + +class AVLTree: + def __init__(self,node): + self.root = node + + def rotateLeft(self, node): + tmp = node.right + node.left = tmp.right + tmp.right = node + + # Set the heights on each node + node.height = 1 + max(node.left.height, node.right.height) + tmp.height = 1 + max(tmp.left.height, tmp.right.height) + return tmp + + def rotateRight(self, node): + pass diff --git a/370/past-midterms/midterm2.pdf b/370/past-midterms/midterm2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4c2ad85287d2a33dd3b0892c224bee383d8c8e2f GIT binary patch literal 111576 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 literal 0 HcmV?d00001 diff --git a/370/past-midterms/tmp.py b/370/past-midterms/tmp.py new file mode 100644 index 0000000..0f47417 --- /dev/null +++ b/370/past-midterms/tmp.py @@ -0,0 +1,27 @@ +class Trie: + def __init__(self, *words): + self.root = {} + + for word in words: + self.insert(word) + + def insert(self, word): + curr = self.root + for c in word: + if c not in curr: + curr[c] = {} + else: + curr = curr[c] + + # add a marker to show that we are a leaf + curr['.'] = '.' + self.root = curr + + def remove(self, word): + pass + + def printWord(self, word): + pass + + def all(self): + pass diff --git a/370/past-midterms/trie.py b/370/past-midterms/trie.py new file mode 100644 index 0000000..b6f0b54 --- /dev/null +++ b/370/past-midterms/trie.py @@ -0,0 +1,59 @@ +class Node: + def __init__(self, leaf=False): + # refs list of next valid characters + self.letters = [None] * 26 + self.isLeaf = leaf + + +class Trie: + def __init__(self): + self.root = Node() + + def _charIndex(self, char): + return ord(char) - ord('a') + + def insert(self, string): + curr = self.root + for i in string: + refIndex = self._charIndex() + # create nodes if we have to + if curr.letters[refIndex] is None: + curr.letters[refIndex] = Node() + + curr = curr.letters[refIndex] + # Set the last letter to be a leaf + curr.isLeaf = True + + def remove(self, string): + # Lazy removal + curr = self.root + for i in string: + refIndex = self._charIndex(i) + if curr.letters[refIndex] is None: + break + curr = curr.letters[refIndex] + curr.isLeaf = False + + + # We're also going to be printing things as we go along the thing + def lookup(self, string): + curr = self.root + for i in string: + refIndex = self._charIndex(i) + # Make sure we don't walk into nothing + if curr.letters[refIndex] is None: + return False + curr = curr.letters[refIndex] + print(i, end='') + + return curr.isLeaf + + def all(self, node, word): + if node is None: + return + + if node.isLeaf: + # Print out the word we have so far + self.lookup(word) + + From f93153cdb011771d751ec22c9a29bab5c430d18e Mon Sep 17 00:00:00 2001 From: Medium Fries Date: Thu, 18 Apr 2019 14:01:31 -0700 Subject: [PATCH 2/5] final submission for homework 4 --- 370/homework/huffman.py | 144 +++++++++++++++------------------------- 1 file changed, 53 insertions(+), 91 deletions(-) diff --git a/370/homework/huffman.py b/370/homework/huffman.py index e427916..24197ee 100644 --- a/370/homework/huffman.py +++ b/370/homework/huffman.py @@ -1,90 +1,20 @@ import queue -class Node(): +import heapq + +class Node: def __init__(self, c, weight): self.c = c self.weight = weight self.left = None self.right = None + + self.code = '' def __repr__(self): return f'{self.c}|{self.weight}' -class MinHeap(): - def __init__(self): - self.data = [] - - def empty(self): - return self.size() == 0 - - def size(self): - return len(self.data) - - def print(self): - for x in self.data: - print(x.c + str(x.freq)) - - def insert(self, val): - self.data.append(val) - self.__heapifyUp(len(self.data) - 1) - - def extractMin(self): - temp = self.data[0] - self.__swap(0, -1) - self.data.remove(self.data[-1]) - self.__heapifyDown(0) - return temp - - def __swap(self,i,j): - self.data[i], self.data[j] = self.data[j], self.data[i] - - def __heapifyUp(self, idx): - if idx > 0: - parent = (idx - 1) // 2 - if (self.data[parent].freq > self.data[idx].freq): - self.__swap(parent, idx) - self.__heapifyUp(parent) - - def __heapifyDown(self, idx): - data = self.data - left = 2 * idx + 1 - right = 2 * idx + 2 - mini = idx - if (left < len(data) and (data[left].freq < data[mini].freq)): - mini = left - if (right < len(data) and (data[right].freq < data[mini].freq)): - mini = right - if (mini is not idx): - self.__swap(mini, idx) - self.__heapifyDown(mini) - - def printChar(self, c): - # Traverse through the tree until we get to a leaf then back out - tmp = self.data[0] - # keep going until we hit a leaf - while tmp.left is not None or tmp.right is not None: - # 0 if left : 1 if right - continue - - -def main(): - pq = MinHeap() - pq.insert(Node(' ', 1)) - pq.insert(Node('d', 4)) - pq.insert(Node('e', 10)) - pq.insert(Node('i', 13)) - pq.insert(Node('s', 2)) - pq.insert(Node('m', 8)) - pq.insert(Node('o', 6)) - - - assert(list(map(lambda x: x.freq, pq.data)) == [1, 2, 6, 13, 4, 10, 8]) - assert(pq.extractMin().freq == 1) - assert(list(map(lambda x: x.freq, pq.data)) == [2, 4, 6, 13, 8, 10]) - assert(pq.extractMin().freq == 2) - assert(list(map(lambda x: x.freq, pq.data)) == [4, 8, 6, 13, 10]) - assert(pq.extractMin().freq == 4) - pq.print() - print("Heap works") + def __lt__(self, other): + return self.weight < other.weight def frequencyMap(string): ret = [] @@ -99,25 +29,50 @@ def frequencyMap(string): if k.c == i: k.weight += 1 - # Sort the charmap based on the frequencies - ret.sort(key=lambda x: x.weight) + # Sort the charmap alphabetically + ret.sort(key=lambda x: x.c) return ret -def buildMinHeap(freqs): - heap = MinHeap() - _queue = queue.Queue() - while _queue.qsize() >= 2: - left = _queue.get() - right = _queue.get() - weight = left.weight + right.weight - root = Node('*', weight) - # Once there is one item in the queue left we can simply return the new thing +def encode(freqs): + # add things to our min heap + heap = [i for i in freqs] + heapq.heapify(heap) + + # now we can merge all the nodes together + while len(heap) > 1: + # pop two items from the queuee + left = heapq.heappop(heap) + right = heapq.heappop(heap) + + # setup the new root node + root = Node('*', left.weight + right.weight) + root.left = left + root.right = right + + # re-insert the new subtree into the minheap + heapq.heappush(heap, root) + # return the heap itself so we cna do stuff with it return heap +def decode(root, binaryStr): + string = '' + curr = root + for i in binaryStr: + if i == '0': + curr = curr.left + else: + curr = curr.right + # check if we're at a leaf + if curr.left is None and curr.right is None: + string += curr.c + curr = root + print(string) + def printEncoding(text, heap): + # prints out the encoding for a given string for i in text: heap.printChar(i) @@ -126,8 +81,15 @@ def printEncoding(text, heap): if __name__ == "__main__": text = input() binary = input() + #print(f'{text}\n{binary}\n===================') + # calculate the frequency of each character frequencies = frequencyMap(text) - print(frequencies) - heap = buildMinHeap(frequencies) - printEncoding(binary, heap) + + # build up our heap to display info from + heap = encode(frequencies)[0] + #print(heap) + + # decode the binary + decode(heap, binary) + From 80eae13431d665ad9711878405c11552c17ae766 Mon Sep 17 00:00:00 2001 From: Medium Fries Date: Thu, 18 Apr 2019 15:25:43 -0700 Subject: [PATCH 3/5] base spanning tree mentions: still need actual content --- 370/notes/spanning-tree.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 370/notes/spanning-tree.md diff --git a/370/notes/spanning-tree.md b/370/notes/spanning-tree.md new file mode 100644 index 0000000..364dc50 --- /dev/null +++ b/370/notes/spanning-tree.md @@ -0,0 +1,19 @@ +# Spanning tree + +Graph in a graph where all nodes are connected but there are + +1. no cycles + +2. |V-1| edges + +__Minimum__ +: total edge weight minimized + +Things needed for next two sections: +: _time complexity_ +: _space complexity_ + +## Kruskal + +## Prim + From 5663e07456c67c2deb79af6a13a2848396764d02 Mon Sep 17 00:00:00 2001 From: Medium Fries Date: Tue, 30 Apr 2019 14:47:23 -0700 Subject: [PATCH 4/5] dynamic programming lecture --- 370/notes/dynamic.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 370/notes/dynamic.md diff --git a/370/notes/dynamic.md b/370/notes/dynamic.md new file mode 100644 index 0000000..7f30a8d --- /dev/null +++ b/370/notes/dynamic.md @@ -0,0 +1,18 @@ +# """"Dynamic Programming"""" + + +> Take a large problem +> Break it up +> Solve the pieces +/lecture + + +# Definitions + +_Recursive dynamic programming_ +: Memoization a.k.a. top-down approach +: Go from big problems and build downward + +_Tabulation_ +: Bottom up approach +: Go from little problems and build up From 447d7a39718ed22d48bfe969b385de31e024e8da Mon Sep 17 00:00:00 2001 From: Medium Fries Date: Tue, 30 Apr 2019 15:24:56 -0700 Subject: [PATCH 5/5] note about tail call optimization in relevance to solving problems recursiively --- 370/notes/dynamic.md | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/370/notes/dynamic.md b/370/notes/dynamic.md index 7f30a8d..3338e5f 100644 --- a/370/notes/dynamic.md +++ b/370/notes/dynamic.md @@ -4,7 +4,7 @@ > Take a large problem > Break it up > Solve the pieces -/lecture + # Definitions @@ -16,3 +16,38 @@ _Recursive dynamic programming_ _Tabulation_ : Bottom up approach : Go from little problems and build up + + +# Recursive compiler tricks + +Normal iterative: +``` +start: +... +jcond start +``` + +Normal recursion(under non-priveleged procs): + +Each "iteration" creates a new frame of whatever size: +hence we approach the hard stack limit + +_Sick guess_: +``` + At compile we should be able to predict an incoming iteration from a + recusive endpoint. + + ? is it just parameterized jumps ? +``` + +_Answer:_ +``` + Tail recusion optimization + + Takes the last statement of function + Assuming its a recursive call, we can replace our current stack frame's arguments + The only state that changes between calls then is just the arguments +``` +In this sense we are turning a recusive functino into an iterative one because the whole state is held in one frame & we only ever jump within our routines address space. + +However, this tail optimization can only happen at the tail of a routine.