Search the courses, subjects, tracks, games and features, or jump straight to a page.
Learn it your way
A short class with Sarah and her students. The other ways are under More.
Sign up free to listen. Transcripts are free to read.
Now, let's discuss uncomputable functions. These are functions for which no algorithm can be constructed that solves all instances.
Could you clarify what you mean by 'no algorithm'?
Sure! For example, consider the Halting Problem—determining whether a given program will finish running or loop indefinitely is categorically uncomputable.
So there’s no way to figure that out using a program?!
Precisely! There are functions for which no matter how sophisticated your programming skills or resources, you simply cannot write a program that computes them.
That's mind-blowing! It's like there are limits to what we can do with computers.
Exactly, Student_3! Remember the phrase: 'Uncomputable functions—beyond reach, no suitable code can teach!'
That's a catchy way to remember it!
Now, let's prove that uncomputable functions indeed exist. We utilize Cantor's diagonalization method for this.
How does that prove anything?
Great question! Cantor showed that the set of all real numbers is uncountable, and thus we can say that the number of functions is greater than the number of valid programs.
Wait, you mean there's a whole bunch more functions than programs?
Yes! Essentially, if we have more functions than programs, there must exist at least one function that no program can compute. Hence, that function is uncomputable.
Does that mean there are endless uncomputable functions?
Absolutely, the existence of just one implies there are infinitely many. A good mnemonic for this is: 'Infinite functions, few programs, uncomputable blooms.'
Picturing that helps me wrap my head around it!
Functions for which a corresponding algorithm can be executed for all inputs.
Functions that cannot be computed by any program regardless of available resources.
An infinite number of functions exist in contrast to a limited number of valid programs.
A proof method that indicates some infinities are larger, supporting the existence of uncomputable functions.
Computable tasks are in the ring, algorithms coded, outputs they bring.
There once was a wise wizard who could solve any math task, except for one: the mystery of whether his own spells would finish or loop forever. This was the uncomputable challenge he could never solve.
C = Computable, U = Uncomputable. Remember: C for Code can always solve!
UFO = Uncomputable Functions Overreach - they go beyond any code's reach!
Term
What is a computable function?
Click to flip
Term
What is an uncomputable function?
Click to flip
Term
What problem is famously known to be uncomputable?
Click to flip
Term
Why is Cantor's diagonal argument important?
Click to flip
A function for which there exists an algorithm that produces an output for every valid input.
A function for which no algorithm can be constructed that can compute its output for every valid input.
A decision problem that determines whether a given program will finish running or loop indefinitely.
A mathematical proof technique used to establish that some infinities are larger than others, specifically to show the existence of uncountable sets.
This section discusses the concepts of computable and uncomputable functions, illustrating the existence of uncomputable functions through a proof involving cardinality.
In this section, we explore computable and uncomputable functions, defining computable functions as those for which a computer program can be written to produce an output for all inputs. We also provide a proof that uncomputable functions exist, reinforcing the fundamental limit of computational capabilities across all programming languages.
In this section, we delve into the crucial concepts of computable and uncomputable functions within the scope of discrete mathematics and computer science. A computable function is defined as a function for which there exists an algorithm or a computer program capable of producing the correct output for every input defined in its domain. In contrast, uncomputable functions are those for which no such program exists, regardless of computational resources available.
This discussion hinges on the foundational result that the set of all possible valid programs in any programming language is countable, whereas the total number of functions from the positive integers to a designated set (e.g., {0,...,9}) is uncountable. Using Cantor's diagonal argument, we demonstrate that there are strictly more functions than executable programs, thereby confirming the existence of uncomputable functions. This insight illustrates the inherent limitations of computation, emphasizing that certain tasks are fundamentally beyond what can be computed with algorithms. The significance of this theorem lies in its implications for computational theory and practice.