{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

COT6410 - Computability Theory and Complexity Theory COT...

Info iconThis preview shows pages 1–13. Sign up to view the full content.

View Full Document Right Arrow Icon
  Computability Theory and Complexity Theory COT 6410
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
  Computability Theory The study of what can/cannot be done via purely mechanical means. Complexity Theory The study of what can/cannot be done well via purely mechanical means.
Background image of page 2
  What is it that we are talking about? Solving problems algorithmically!
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
  A Problem: Set of input data items (set of input "instances") A set of rules or relationships between data and other values A question to be answered or set of values to be obtained
Background image of page 4
  { Examples: Search a list for a key, SubsetSum, Graph Coloring }
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
  Each instance has an  'answer .' An instance’s answer is the solution of the  instance - it is  not  the solution of the problem. A solution of the problem is a computational  procedure that finds the answer of any instance  given to it - an  'algorithm .'
Background image of page 6
  A Procedure (or Program): A finite set of operations (statements) such that Each statement is formed from a predetermined finite set of symbols and is constrained by some set of language syntax rules. The current state of the machine model is finitely presentable. The semantic rules of the language specify the effects of the operations on the machine’s state and
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
  An Algorithm: A procedure that Correctly solves any instance of a given problem. Completes execution in a finite number of steps no matter what input it receives.
Background image of page 8
{ Example algorithm: Linearly search a finite list for a key; If key is found, answer “Yes”; If key is not found, answer “No”; } { Example procedure: Linearly search a finite list for a key; If key is found, answer “Yes”; If key is not found, try this strategy again; }
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Procedures versus Algorithms Looking back at our approaches to “find a key in a finite  list,” we see that the algorithm always halts and always  reports the correct answer. In contrast, the procedure does  not halt in some cases, but never lies.  What this illustrates is the essential distinction between  an algorithm and a procedure – algorithms always halt in  some finite number of steps, whereas procedures may run  forever on certain inputs. A particularly silly procedure that 
Background image of page 10
Notion of "Solvable" A problem is  solvable  if there exists an algorithm that  solves it (provides the correct answer for each instance).  The fact that a problem is solvable or, equivalently,  decidable  does not mean it is  solved . To be solved, someone  must have actually produced a correct algorithm. The  distinction between solvable and solved is subtle. Solvable is  an innate property – an unsolvable problem can never  become solved, but a solvable one may or may not be solved 
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Computability vs Complexity Computability focuses on the distinction between  solvable and unsolvable problems, providing tools that may 
Background image of page 12
Image of page 13
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}