UN-DECIDABILITY
CHAPTER THREE
UN-DECIDABILITY
 Introduction to Un-decidability
 Turing Decidable and Turing Acceptable
 Un-decidable problems:
 TM Halting Problems
 Unsolvable problems
 CFL(Context Free Language)
 Undividable problems
UN-DECIDABILITY
 The problems for which we can’t construct an algorithm that can
answer the problem correctly in the infinite time are termed as
Undecidable Problems in the theory of computation (TOC).
 The impossibility of proving or disproving a statement within a
formal system.
 A problem is undecidable if there is no Turing machine that will
always halt an infinite amount of time to answer as ‘yes’ or ‘no’.
 An undecidable problem has no algorithm to determine the answer
for a given input.
UN-DECIDABILITY
 Examples
 Ambiguity of context-free languages: Given a context-free language, there is
no Turing machine which will always halt in finite amount of time and give
answer whether language is ambiguous or not.
 Equivalence of two context-free languages: Given two context-free
languages, there is no Turing machine which will always halt in finite amount
of time and give answer whether two context free languages are equal or not.
 Everything or completeness of CFG: Given a CFG and input alphabet,
whether CFG will generate all possible strings of input alphabet (?*)is
undecidable.
Decidable Problems
 A problem is decidable if we can construct a Turing machine which will halt
in finite amount of time for every input and give answer as ‘yes’ or ‘no’.
 A decidable problem has an algorithm to determine the answer for a given
input.
 Examples
 Equivalence of two regular languages: Given two regular languages, there is an algorithm and
Turing machine to decide whether two regular languages are equal or not.
 Finiteness of regular language: Given a regular language, there is an algorithm and Turing
machine to decide whether regular language is finite or not.
 Emptiness of context free language: Given a context free language, there is an algorithm
whether CFL is empty or not.
Difference Between Decidable and
Undecidable Problems
Aspect Decidable Problems Undecidable Problems
Definition
Problems that can be solved by an algorithm that always
gives a correct answer in a finite time.
Problems where no algorithm can give a solution for
all possible cases.
Solvability Always solvable using a step-by-step process (algorithm).
Cannot be solved for all inputs using a single
algorithm.
Algorithm
There is an algorithm that works for every input and always
finishes with an answer.
No algorithm can solve the problem for every input.
Halting
The algorithm stops (halts) and gives an answer for every
input.
The algorithm might never stop for some inputs, or
no algorithm exists.
Examples
Problems like checking if a number is even or odd, or if a
string belongs to a regular language (like finding a match in
a search).
Examples include the Halting Problem, where you
can’t always tell if a program will finish running or
run forever.
Decision
Procedure
There’s a clear method to always reach a correct
conclusion.
No guaranteed method exists to solve the problem in
every case.
Complexity May be complex but can always be computed.
Too complex to compute in general, and no universal
solution exists.
Applications
Useful in practical computing tasks like compiling code or
searching for text patterns.
Helps understand the limits of what computers can
do, showing what problems are beyond computation.
Acceptable (Recognizable):
 A TM accepts a string if it enters an accepting state when
processing that string.
 A language is considered acceptable if there is a TM that can
accept all strings belonging to that language, even if it might
not halt on strings not in the language.
 Decidable:
 A language is considered decidable if there exists a TM that not only
accepts strings in the language but also always halts on any input,
providing a clear "yes" or "no" answer for membership in the language.
Decidable
 Important distinction:
 Not all acceptable languages are decidable: A language can be recognized
by a TM (acceptable) but still not be decidable if the TM might run
indefinitely on some inputs that are not part of the language.
 Example:
 Acceptable but not decidable: The "Halting Problem" is an example of a
language that is recognizable (a TM can check if a given program will
halt on a specific input) but not decidable (there is no TM that can always
determine whether any given program will halt on any input).
Decision Problem
 A decision problem is a restricted type of an algorithmic problem
where for each input there are only two possible outputs.
 A decision problem is a function that associates with each input
instance of the problem a truth value true or false.
 A decision algorithm is an algorithm that computes the correct
truth value for each input instance of a decision problem.
 The algorithm has to terminate on all inputs!
 A decision problem is decidable if there exists a decision algorithm
for it. otherwise it is undecidable.
Decision Problem
 A decision problem is a computational problem that can be posed as a yes-no
question based on the given input values. Essentially, it boils down to determining
whether a specific input belongs to a particular set or satisfies a certain condition.
 Decision problems play a crucial role in understanding the limits of computation.
 By studying decidable and undecidable problems, we gain insights into:
 The power and limitations of algorithms: Understanding which problems can
and cannot be solved algorithmically.
 The nature of computation: Exploring the fundamental concepts of
computability and the boundaries of what computers can achieve.
 Complexity of problems: Classifying problems based on their difficulty and the
resources required to solve them.
Halt and Loop Problems
 The halting problem is a classic example of an undecidable
problem in computability theory.
 It asks whether, given an arbitrary computer program and an
input, we can determine if the program will eventually halt
(terminate its execution) or run forever (loop indefinitely).
Halt and Loop Problems
 The halting problem has profound implications in computer
science:
 Limits of Computation: It demonstrates the fundamental limitations of what
computers can do. There are problems that are inherently unsolvable by any
algorithm.
 Theoretical Foundations: The halting problem is a cornerstone of computability
theory, providing insights into the nature of computation and the boundaries of
what can be algorithmically achieved.
 Practical Considerations: While the halting problem doesn't directly affect
everyday programming, it highlights the importance of careful program design and
testing to avoid unintended infinite loops.
The Loop Problem
 The loop problem is a related problem that asks whether a
given program will ever enter an infinite loop.
 It's also undecidable, as it's essentially a variant of the halting
problem.
Halt State in Turing Machine
 In the context of Turing Machines, a halt state is a specific
state that signifies the completion of a computation. When a
Turing Machine enters a halt state, it means that the machine
has finished processing the input and will no longer change its
state or move its tape head.
Halt State in Turing Machine
 Significance of Halt States
 Decidability: Halt states are crucial for defining decidable problems.
A problem is decidable if there exists a Turing Machine that halts on
all inputs, providing a definitive "yes" or "no" answer.
 The Halting Problem: The concept of halt states is central to the
famous Halting Problem, which asks whether it's possible to
determine if an arbitrary Turing Machine will halt on a given input.
 Turing proved that no general algorithm can solve this problem,
highlighting the limitations of computation.
Halt State in Turing Machine
 A Turing Machine can have multiple halt states, each
potentially representing a different outcome or decision.
 When a Turing Machine enters a halt state, it stops its
operation.
 The absence of a halt state can indicate that a Turing Machine
is stuck in an infinite loop.
Unsolvable Problems
 A computational problem that cannot be solved by a Turing Machine
 The associated function is called un-computable function.
 In simple word, if it is impossible to develop an algorithm for a given problem,
then such problem is unsolvable problem.
 A problem in computer science is considered as unsolved when no solution is
known; or when experts in the field disagree about the proposed solution.
 For example: natural language processing algorithms, ….
 One of the well-known unsolvable problems is the halting problem.
 Church’s thesis estimates as the problem that can be solved by human can also
solved with Turing machine
Context Free Languages (CFL)
 In formal language theory, a context free language is a
language which is generated by a context free grammar
(CFG).
Context Free Languages (CFL)
Context Free Languages (CFL)
Context Free Languages (CFL)
Context Free Languages (CFL)
Context Free Languages (CFL)
Context Free Languages (CFL)

COMPLEXITY CHAPTER 3 LECTURE FOR FOURTH YEAR.pptx

  • 1.
  • 2.
    UN-DECIDABILITY  Introduction toUn-decidability  Turing Decidable and Turing Acceptable  Un-decidable problems:  TM Halting Problems  Unsolvable problems  CFL(Context Free Language)  Undividable problems
  • 3.
    UN-DECIDABILITY  The problemsfor which we can’t construct an algorithm that can answer the problem correctly in the infinite time are termed as Undecidable Problems in the theory of computation (TOC).  The impossibility of proving or disproving a statement within a formal system.  A problem is undecidable if there is no Turing machine that will always halt an infinite amount of time to answer as ‘yes’ or ‘no’.  An undecidable problem has no algorithm to determine the answer for a given input.
  • 4.
    UN-DECIDABILITY  Examples  Ambiguityof context-free languages: Given a context-free language, there is no Turing machine which will always halt in finite amount of time and give answer whether language is ambiguous or not.  Equivalence of two context-free languages: Given two context-free languages, there is no Turing machine which will always halt in finite amount of time and give answer whether two context free languages are equal or not.  Everything or completeness of CFG: Given a CFG and input alphabet, whether CFG will generate all possible strings of input alphabet (?*)is undecidable.
  • 5.
    Decidable Problems  Aproblem is decidable if we can construct a Turing machine which will halt in finite amount of time for every input and give answer as ‘yes’ or ‘no’.  A decidable problem has an algorithm to determine the answer for a given input.  Examples  Equivalence of two regular languages: Given two regular languages, there is an algorithm and Turing machine to decide whether two regular languages are equal or not.  Finiteness of regular language: Given a regular language, there is an algorithm and Turing machine to decide whether regular language is finite or not.  Emptiness of context free language: Given a context free language, there is an algorithm whether CFL is empty or not.
  • 6.
    Difference Between Decidableand Undecidable Problems Aspect Decidable Problems Undecidable Problems Definition Problems that can be solved by an algorithm that always gives a correct answer in a finite time. Problems where no algorithm can give a solution for all possible cases. Solvability Always solvable using a step-by-step process (algorithm). Cannot be solved for all inputs using a single algorithm. Algorithm There is an algorithm that works for every input and always finishes with an answer. No algorithm can solve the problem for every input. Halting The algorithm stops (halts) and gives an answer for every input. The algorithm might never stop for some inputs, or no algorithm exists. Examples Problems like checking if a number is even or odd, or if a string belongs to a regular language (like finding a match in a search). Examples include the Halting Problem, where you can’t always tell if a program will finish running or run forever. Decision Procedure There’s a clear method to always reach a correct conclusion. No guaranteed method exists to solve the problem in every case. Complexity May be complex but can always be computed. Too complex to compute in general, and no universal solution exists. Applications Useful in practical computing tasks like compiling code or searching for text patterns. Helps understand the limits of what computers can do, showing what problems are beyond computation.
  • 7.
    Acceptable (Recognizable):  ATM accepts a string if it enters an accepting state when processing that string.  A language is considered acceptable if there is a TM that can accept all strings belonging to that language, even if it might not halt on strings not in the language.  Decidable:  A language is considered decidable if there exists a TM that not only accepts strings in the language but also always halts on any input, providing a clear "yes" or "no" answer for membership in the language.
  • 8.
    Decidable  Important distinction: Not all acceptable languages are decidable: A language can be recognized by a TM (acceptable) but still not be decidable if the TM might run indefinitely on some inputs that are not part of the language.  Example:  Acceptable but not decidable: The "Halting Problem" is an example of a language that is recognizable (a TM can check if a given program will halt on a specific input) but not decidable (there is no TM that can always determine whether any given program will halt on any input).
  • 9.
    Decision Problem  Adecision problem is a restricted type of an algorithmic problem where for each input there are only two possible outputs.  A decision problem is a function that associates with each input instance of the problem a truth value true or false.  A decision algorithm is an algorithm that computes the correct truth value for each input instance of a decision problem.  The algorithm has to terminate on all inputs!  A decision problem is decidable if there exists a decision algorithm for it. otherwise it is undecidable.
  • 10.
    Decision Problem  Adecision problem is a computational problem that can be posed as a yes-no question based on the given input values. Essentially, it boils down to determining whether a specific input belongs to a particular set or satisfies a certain condition.  Decision problems play a crucial role in understanding the limits of computation.  By studying decidable and undecidable problems, we gain insights into:  The power and limitations of algorithms: Understanding which problems can and cannot be solved algorithmically.  The nature of computation: Exploring the fundamental concepts of computability and the boundaries of what computers can achieve.  Complexity of problems: Classifying problems based on their difficulty and the resources required to solve them.
  • 11.
    Halt and LoopProblems  The halting problem is a classic example of an undecidable problem in computability theory.  It asks whether, given an arbitrary computer program and an input, we can determine if the program will eventually halt (terminate its execution) or run forever (loop indefinitely).
  • 12.
    Halt and LoopProblems  The halting problem has profound implications in computer science:  Limits of Computation: It demonstrates the fundamental limitations of what computers can do. There are problems that are inherently unsolvable by any algorithm.  Theoretical Foundations: The halting problem is a cornerstone of computability theory, providing insights into the nature of computation and the boundaries of what can be algorithmically achieved.  Practical Considerations: While the halting problem doesn't directly affect everyday programming, it highlights the importance of careful program design and testing to avoid unintended infinite loops.
  • 13.
    The Loop Problem The loop problem is a related problem that asks whether a given program will ever enter an infinite loop.  It's also undecidable, as it's essentially a variant of the halting problem.
  • 14.
    Halt State inTuring Machine  In the context of Turing Machines, a halt state is a specific state that signifies the completion of a computation. When a Turing Machine enters a halt state, it means that the machine has finished processing the input and will no longer change its state or move its tape head.
  • 15.
    Halt State inTuring Machine  Significance of Halt States  Decidability: Halt states are crucial for defining decidable problems. A problem is decidable if there exists a Turing Machine that halts on all inputs, providing a definitive "yes" or "no" answer.  The Halting Problem: The concept of halt states is central to the famous Halting Problem, which asks whether it's possible to determine if an arbitrary Turing Machine will halt on a given input.  Turing proved that no general algorithm can solve this problem, highlighting the limitations of computation.
  • 16.
    Halt State inTuring Machine  A Turing Machine can have multiple halt states, each potentially representing a different outcome or decision.  When a Turing Machine enters a halt state, it stops its operation.  The absence of a halt state can indicate that a Turing Machine is stuck in an infinite loop.
  • 17.
    Unsolvable Problems  Acomputational problem that cannot be solved by a Turing Machine  The associated function is called un-computable function.  In simple word, if it is impossible to develop an algorithm for a given problem, then such problem is unsolvable problem.  A problem in computer science is considered as unsolved when no solution is known; or when experts in the field disagree about the proposed solution.  For example: natural language processing algorithms, ….  One of the well-known unsolvable problems is the halting problem.  Church’s thesis estimates as the problem that can be solved by human can also solved with Turing machine
  • 18.
    Context Free Languages(CFL)  In formal language theory, a context free language is a language which is generated by a context free grammar (CFG).
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.