Assignment Info -...

Post on 29-Sep-2020

4 views 0 download

transcript

Assignment Info• A2 marks will be out before Wed• From 235 submissions:• Average: 65.84, Median: 71• ~29% got [80-100], with ~13% got > 90, 3 perfect score• ~22% got [0-49]

• A3 due tomorrow 23:59, grace period until Wed 13:00• Save as draft in wattle, if you want to update until

the last minute. The last version you save will automatically become your submission

Exam Info• All materials covered except for MDP • You can bring: 1 A4 page, hand-written on both side• 7 November, 9am, 2 hours, 7-11 Barry Drive• Please recheck time & location in ANU timetable• Tips:• You will have 15 min to read the questions first. Use this time

to roughly understand the question, see the points, and strategise which questions you’ll do first

• Do questions with higher points and you can do them first• Try to answer all questions. If you have some writing even if

it’s wrong, we’ll give 10% for writing marks. If it’s empty, it’s 0

To help prepare for exam• This Wed, 23 Oct, usual Q&A session

(Coombs): Recap of the materials•Wed, 30 Oct, 4pm-5pm, in Copland Lecture

Theatre: We’ll cover Part A of assignments• Friday, 1 Nov, 10am-12am, in Copland

Lecture Theatre: Drop in session, a couple of tutors would be available

COMP3600/6466 – Algorithms Hash Tables[CLRS] ch. 11

Hanna Kurniawati

https://cs.anu.edu.au/courses/comp3600/

TodayüWhat is a hash table?üHashing with ChainingüHashing functions:üSimple uniform hashingüUniversal hashing

üOpen addressing• Perfect hashing

Perfect hashing• Assume: The problem is static (i.e., no insert /

delete)• Idea: 2-level hashing• Each slot points to another hash table• Use universal hashing in both levels• Properties:• Polynomial build time with high probability• O(1) search time in the worst case• O(n) space is worst case

How to build a perfect hashing?1. Pick a universal hash function ℎ" ∈ 𝐻 and set 𝑚 =

Θ 𝑛 , usually 𝑚 is set to be prime2. If ∑*+,-."𝑛*/ > 𝑐𝑛, for a selected constant 𝑐, redo 13. If there’s ni elements in slot-i, construct a hash-table

with size ni2 slots, and choose a universal hash

function ℎ/,* ∈ 𝐻 to be the hash function for this 2nd

level hash table4. As long as there’s ℎ/,*(𝑘) = ℎ/,*(𝑘′) for any 𝑘 ≠ 𝑘′,

pick a different ℎ/,* and rehash those elements in 𝑛*

Perfect Hashing• Once the hash table is built, it’s

guaranteed there’s no collision in search. Hence, it’s guaranteed to have O(1) search time.• The question is how many times do we

need to repeat finding the hash function (step 2 and step 3)?

Bound on P[#collisions in 2nd level]

Additional Bounds on Time • E[#trials] ≤ 2 and #trials = O(log n) with high

probability• Total time spent in step-3 & step-4: O(n log2n)• Total time spent in step-1 & step-2: O(n log n)

Not included for exam

Bound on the space requirement• Bound on E[∑*+,-." 𝑛*/]

TodayüWhat is a hash table?üHashing with ChainingüHashing functions:üSimple uniform hashingüUniversal hashing

üOpen addressingüPerfect hashing

COMP3600/6466 – Algorithms Complexity Class

[CLRS] ch. 34 Intro

Hanna Kurniawati

https://cs.anu.edu.au/courses/comp3600/

Today• Complexity classes: P & NP• Examples• Showing a problem is P / NP• Other complexity classes

Complexity Classes• So far, we’ve discussed computational

complexity of algorithms• Now, we want to discuss computational

complexity of problems• Why bother?• To know what kind of problem we are dealing with. • Imagine someone wants to hire you to solve a problem.

If you know many smart people have tried to solve equivalent problem for decades with no results, perhaps you need to be really careful with this project!

Complexity Classes• P: The set of decision problems solvable in polynomial

time• Decision problems: Problems where the answer is yes or no• NP: The set of decision problems solvable in non-

deterministic polynomial time• Non-deterministic polynomial time: Solvable in polynomial

time by a non-deterministic Turing machine• Non-deterministic Turing machine: • Can explore multiple possibilities at once• Can guess one out of polynomially many options in O(1).

If any guess lead to a Yes answer, then we get such a guess

Complexity Classes• NP is also defined as the set of problems with

polynomial size certificate and polynomial time verifiers for Yes inputs

NP-Complete• A problem X is NP-complete if X ∈ NP and X ∈ NP-

hard• X is NP-hard if every problem Y ∈NP reduces to X• A problem A reduces to B whenever there’s a polynomial time

algorithm that converts A’s input to equivalent input for B• Equivalent means it has the same Yes/No answer • If A ∈ P, then B ∈ P. If A ∈ NP, then B ∈ NP• B is at least as hard as A

• X ∉ P unless P = NP

TodayüComplexity classes: P & NP• Examples• Showing a problem is P / NP• Other complexity classes

Hamiltonian Cycle• Given a directed graph G(V, E), a Hamiltonian

cycle is a simple cycle that contains all vertices in V. • Cycle: A path that starts and ends at the same vertex• Simple cycle: The only repeating vertex in the cycle

is the start and ending vertex • Deciding whether G has a Hamiltonian cycle or

not is NP-complete

3-SAT (SAT: satisfiability)• Given Boolean formula in the form of AND of

ORs, where each clause has 3 literals, the formula is satisfiable when for some values of the literals, the formula is True• E.g.: (𝐴 ∨ 𝐵 ∨ �̅�) ∧ (𝐴 ∨ @𝐵 ∨ 𝐷)• Deciding whether a boolean formula of AND

of ORs, where each clause has 3 literals is satisfiable or not is NP-complete

TodayüComplexity classes: P & NPüExamples• Showing a problem is P / NP• Other complexity classes

Showing a Problem is in NP• Proof by construction by providing:• Polynomial length certificate • Polynomial time algorithm to verify the certificate

Showing a Problem is in NP-Complete• Show the problem is NP +• Show the problem is NP-hard• Use Karp-reduction: Show that an NP-hard

problem can be reduced to the problem in question in polynomial time

Example • Show that deciding whether a directed

graph G(V, E) has a Hamiltonian Path is NP-complete• Hamiltonian Path: Given a directed graph G(V,

E), are there any path in G that visits each vertex in V exactly once?

TodayüComplexity classes: P & NPüExamplesüShowing a problem is P / NP• Other complexity classes

There’s much more complexity classes• Co-NP: Similar to NP, but for No answer• If x is in NP, then its complement is in co-NP• PSPACE: The set of decision problems

that can be solved using polynomial space• EXP (also known as EXP-TIME): The set

of decision problems solvable in exponential time

TodayüComplexity classes: P & NPüExamplesüShowing a problem is P / NPüOther complexity classes

That’s all for this semester!!!

Wed: Recap