This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CSE 3101Z Design and Analysis of Algorithms Professor: James Elder Winter 2009 Assignment 1 Due 11:59pm Monday March 30 1. Universal and Existential Qualifiers (8 marks) Recall that a problem is computable if and only if there is an algorithm that halts and returns the correct solution on every valid input. Let Works ( P,A,I ) be true if and only if algorithm A halts and correctly solves problem P on input instance I . Let P = Halting be the Halting problem which takes a Java program I as input and tells you whether or not it halts on the empty string. Let P = Sorting be the sorting problem which takes a list of numbers I as input and sorts them. (a) (4 marks) Express using universal and existential qualifiers ( ∀ , ∃ ) that Sorting is computable. No justification is required. • Answer: ∃ A, ∀ I,Works ( Sorting,A,I ). There is at least one algorithm, eg. A = mergesort , that works for every input instance I . (b) (4 marks) Express using universal and existential qualifiers ( ∀ , ∃ ) that Halting is not computable. No justification is required. • Answer: ∀ A, ∃ I, ¬ Works ( Halting,A,I ) Every algorithm fails to work for at least one input instance I . 2. Bounds (15 marks) We use the logical connective → to represent a logical implication, consequence or entailment. For example, the proposition Statement 1 → Statement 2 means that if Statement 1 is true, Statement 2 must also be true. If f ( n ) and g ( n ) are two functions of the positive integer n , which of the following propositions are true? Please prove the ones you believe to be true, and provide a counterexample for those you think false. (a) f ( n ) ∈ Θ( g ( n )) → g ( n ) ∈ ω ( f ( n )) • Answer: False - in fact, the negation is true: f ( n ) ∈ Θ( g ( n )) → g ( n ) / ∈ ω ( f ( n )). If, for example, g ( n ) = f ( n ), then f ( n ) ∈ Θ( g ( n )), but g ( n ) / ∈ ω ( f ( n )). To see this, recall that g ( n ) ∈ ω ( f ( n )) → ∀ c > , ∃ n > 0 : ∀ n ≥ n ,g ( n ) > cf ( n ) , but clearly the latter is false for c ≥ 1. (b) f ( n ) ∈ Ω( g ( n )) → g ( n ) ∈ O ( f ( n )) • Answer: True. To see this recall that f ( n ) ∈ Ω( g ( n )) → ∃ c 1 ,n 1 > 0 : ∀ n ≥ n 1 ,f ( n ) ≥ c 1 g ( n ) We must show that this implies that g ( n ) ∈ O ( f ( n )), i.e., that ∃ c 2 ,n 2 > 0 : ∀ n ≥ n 2 ,g ( n ) ≤ c 2 f ( n ) , which follows by setting c 2 = 1 /c 1 and n 2 = n 1 . (c) f ( n ) ∈ Ω( g ( n )) → g ( n ) ∈ o ( f ( n )) • Answer: False, and, in fact, impossible. For example, f ( n ) = g ( n ) → f ( n ) ∈ Ω( g ( n )), but g ( n ) / ∈ o ( f ( n )). To see this, recall that g ( n ) ∈ o ( f ( n )) → ∀ c > , ∃ n > 0 : ∀ n ≥ n ,g ( n ) < cf ( n ) , which is false for c ≤ 1. (d) f ( n ) ∈ O ( g ( n )) → g ( n ) ∈ ω ( f ( n )) • Answer: False. For example, suppose that f ( n ) = g ( n ). Then clearly f ( n ) ∈ O ( g ( n )), but g ( n ) / ∈ ω ( f ( n )). To see this, recall that))....
View Full Document
This note was uploaded on 08/12/2009 for the course COMPUTER cosc 528 taught by Professor Liliane during the Spring '09 term at Bowie State.
- Spring '09