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.
Let's start with the definition of computable functions. A function is computable if there exists an algorithm that can produce an output for every valid input. Can anyone give me an example?
How about the function that adds two numbers together?
Excellent! Addition is a perfect example of a computable function. Now, can someone explain what an uncomputable function might be?
Isn't it a function for which no program can be written to compute every possible input?
Exactly! Uncomputable functions are those that we cannot solve with any algorithm. This brings us to our proof strategy for proving their existence.
We know that the set of all valid programs is countable. What does that mean for us?
It means we can list all programs, even if there's an infinite number of them.
Correct! Now, let's think about the collection of all functions from positive integers to a finite set. What do we need to show about that set?
That it's uncountable, right?
Yes! If we can prove that, we will conclude that there are more functions than programs, implying the existence of uncomputable functions.
To show that the set of functions from integers to a finite set is uncountable, we'll create an injective mapping from the set of real numbers between 0 and 1. What does injective mean here?
It means every function maps to a unique real number, without overlaps.
Exactly! Each real number corresponds to a unique function, based on its decimal representation. Can anyone explain what this mapping looks like?
We would take the digits of the real number to establish the output of the function for each input.
Great! This means that no two different numbers will lead to the same function, which proves our point. Let’s summarize what we’ve learned.
In conclusion, we’ve established that there are functions that no computer program can compute. Why is this significant, particularly in computer science?
It shows that there are limits to what computers can achieve!
Exactly! It highlights the boundary between what can be computed and what can't, which is a foundational understanding in computer science.
So, even with limitless resources, some problems remain unsolvable?
Yes, that's correct! Remember this as we proceed, it’s a crucial aspect of computational theory.
Functions that can be calculated by a program.
Functions for which no program can provide an output for every input.
Understanding the difference is key to proving the existence of uncomputable functions.
A method to establish the uncountability of function sets.
A fundamental concept that helps classify sets based on the number of elements.
An example of a computable function is the addition of two integers, as it can be easily programmed to produce a result for any pair of integers.
A well-known example of an uncomputable function is the Halting Problem, where no program can determine whether another program will finish running or run forever.
If a function's computable, a program can flow, / But if not computable, it won't even show.
A programmer meets a wizard who can calculate any number, but there exists a mysterious function that even the wizard cannot compute. This illustrates the mystery of uncomputable functions.
C-U-C: Computable (C), Uncomputable (U), Counts (C) - remember that some functions count and some simply can't!
P.U.C. - Programs are countable (P), Uncomputable functions (U), and Cardinality is key (C).
Term
What is a computable function?
Click to flip
Term
What is an uncomputable function?
Click to flip
Term
What is a countable set?
Click to flip
Term
What is an injective mapping?
Click to flip
A function for which a computer program can produce an output for every valid input.
A function that cannot be solved by any algorithm or computer program.
A set that can be enumerated or listed, even if it is infinite.
A set that cannot be enumerated or listed, having a cardinality greater than that of the natural numbers.
A function that maps distinct elements to distinct images.
A measure of the number of elements in a set.
This section discusses computable and uncomputable functions, outlining the proof strategy for the existence of uncomputable functions through cardinality arguments.
In this section, we explore the definitions of computable and uncomputable functions. The proof strategy demonstrates that there are more functions from positive integers to finite sets than there are valid programs, establishing the existence of uncomputable functions. The lecture builds on Cantor's diagonalization argument to illustrate these concepts.
This section focuses on the distinction between computable and uncomputable functions in the realm of discrete mathematics and computer science. A computable function is one for which an algorithm or computer program can be written that can output the value of the function for any input from its domain. Conversely, an uncomputable function cannot be solved algorithmically; that is, no program can be constructed that will produce an output for every input.
To establish the existence of uncomputable functions, the proof involves demonstrating that the set of all valid programs is countable, while the set of all possible functions from positive integers to a finite range is uncountable.
This proof highlights limitations in computational theory, suggesting that while computers can handle many tasks, there are inherent limitations on what they can compute.