Mathematical function that can be computed by a program
Computable functions are the basic objects of study in computability theory. Computable functions are the formalized analogue of the intuitive notion of algorithms, in the sense that a function is computable if there exists an algorithm that can do the job of the function, i.e. given an input of the function domain it can return the corresponding output. Computable functions are used to discuss computability without referring to any concrete model of computation such as Turing machines or register machines. Any definition, however, must make reference to some specific model of computation but all valid definitions yield the same class of functions.
Particular models of computability that give rise to the set of computable functions are the Turing-computable functions and the general recursive functions.
According to the Church–Turing thesis, computable functions are exactly the functions that can be calculated using a mechanical (that is, automatic) calculation device given unlimited amounts of time and storage space. More precisely, every model of computation that has ever been imagined can compute only computable functions, and all computable functions can be computed by any of several models of computation that are apparently very different, such as Turing machines, register machines, lambda calculus and general recursive functions.
Before the precise definition of computable function, mathematicians often used the informal term effectively calculable. This term has since come to be identified with the computable functions. The effective computability of these functions does not imply that they can be efficiently computed (i.e. computed within a reasonable amount of time). In fact, for some effectively calculable functions it can be shown that any algorithm that computes them will be very inefficient in the sense that the running time of the algorithm increases exponentially (or even superexponentially) with the length of the input. The fields of feasible computability and computational complexity study functions that can be computed efficiently.
The Blum axioms can be used to define an abstract computational complexity theory on the set of computable functions. In computational complexity theory, the problem of determining the complexity of a computable function is known as a function problem.
Computability of a function is an informal notion. One way to describe it is to say that a function is computable if its value can be obtained by an effective procedure. With more rigor, a function
is computable if and only if there is an effective procedure that, given any k-tuple of natural numbers, will produce the value .[1] In agreement with this definition, the remainder of this article presumes that computable functions take finitely many natural numbers as arguments and produce a value which is a single natural number.
As counterparts to this informal description, there exist multiple formal, mathematical definitions. The class of computable functions can be defined in many equivalent models of computation, including
Although these models use different representations for the functions, their inputs, and their outputs, translations exist between any two models, and so every model describes essentially the same class of functions, giving rise to the opinion that formal computability is both natural and not too narrow.[2] These functions are sometimes referred to as "recursive", to contrast with the informal term "computable",[3] a distinction stemming from a 1934 discussion between Kleene and Gödel.[4]p.6
Equivalently, computable functions can be formalized as functions which can be calculated by an idealized computing agent such as a Turing machine or a register machine. Formally speaking, a partial function can be calculated if and only if there exists a computer program with the following properties:
If is defined, then the program will terminate on the input with the value stored in the computer memory.
If is undefined, then the program never terminates on the input .
The basic characteristic of a computable function is that there must be a finite procedure (an algorithm) telling how to compute the function. The models of computation listed above give different interpretations of what a procedure is and how it is used, but these interpretations share many properties. The fact that these models give equivalent classes of computable functions stems from the fact that each model is capable of reading and mimicking a procedure for any of the other models, much as a compiler is able to read instructions in one computer language and emit instructions in another language.
Enderton [1977] gives the following characteristics of a procedure for computing a computable function; similar characterizations have been given by Turing [1936], Rogers [1967], and others.
"There must be exact instructions (i.e. a program), finite in length, for the procedure." Thus every computable function must have a finite program that completely describes how the function is to be computed. It is possible to compute the function by just following the instructions; no guessing or special insight is required.
"If the procedure is given a k-tuple x in the domain of f, then after a finite number of discrete steps the procedure must terminate and produce f(x)." Intuitively, the procedure proceeds step by step, with a specific rule to cover what to do at each step of the calculation. Only finitely many steps can be carried out before the value of the function is returned.
"If the procedure is given a k-tuple x which is not in the domain of f, then the procedure might go on forever, never halting. Or it might get stuck at some point (i.e., one of its instructions cannot be executed), but it must not pretend to produce a value for f at x." Thus if a value for f(x) is ever found, it must be the correct value. It is not necessary for the computing agent to distinguish correct outcomes from incorrect ones because the procedure is defined as correct if and only if it produces an outcome.
Enderton goes on to list several clarifications of these 3 requirements of the procedure for a computable function:
The procedure must theoretically work for arbitrarily large arguments. It is not assumed that the arguments are smaller than the number of atoms in the Earth, for example.
The procedure is required to halt after finitely many steps in order to produce an output, but it may take arbitrarily many steps before halting. No time limitation is assumed.
Although the procedure may use only a finite amount of storage space during a successful computation, there is no bound on the amount of space that is used. It is assumed that additional storage space can be given to the procedure whenever the procedure asks for it.
To summarise, based on this view a function is computable if:
given an input from its domain, possibly relying on unbounded storage space, it can give the corresponding output by following a procedure (program, algorithm) that is formed by a finite number of exact unambiguous instructions;
it returns such output (halts) in a finite number of steps; and
if given an input which is not in its domain it either never halts or it gets stuck.
The field of computational complexity studies functions with prescribed bounds on the time and/or space allowed in a successful computation.
Computable sets and relations
A set A of natural numbers is called computable (synonyms: recursive, decidable) if there is a computable, total function f such that for any natural number n, f(n) = 1 if n is in A and f(n) = 0 if n is not in A.
A set of natural numbers is called computably enumerable (synonyms: recursively enumerable, semidecidable) if there is a computable function f such that for each number n, f(n) is defined if and only ifn is in the set. Thus a set is computably enumerable if and only if it is the domain of some computable function. The word enumerable is used because the following are equivalent for a nonempty subset B of the natural numbers:
B is the domain of a computable function.
B is the range of a total computable function. If B is infinite then the function can be assumed to be injective.
If a set B is the range of a function f then the function can be viewed as an
enumeration of B, because the list f(0), f(1), ... will include every element of B.
Because each finitary relation on the natural numbers can be identified with a corresponding set of finite sequences of natural numbers, the notions of computable relation and computably enumerable relation can be defined from their analogues for sets.
In computability theory in computer science, it is common to consider formal languages. An alphabet is an arbitrary set. A word on an alphabet is a finite sequence of symbols from the alphabet; the same symbol may be used more than once. For example, binary strings are exactly the words on the alphabet {0, 1} . A language is a subset of the collection of all words on a fixed alphabet. For example, the collection of all binary strings that contain exactly 3 ones is a language over the binary alphabet.
A key property of a formal language is the level of difficulty required to decide whether a given word is in the language. Some coding system must be developed to allow a computable function to take an arbitrary word in the language as input; this is usually considered routine. A language is called computable (synonyms: recursive, decidable) if there is a computable function f such that for each word w over the alphabet, f(w) = 1 if the word is in the language and f(w) = 0 if the word is not in the language. Thus a language is computable just in case there is a procedure that is able to correctly tell whether arbitrary words are in the language.
A language is computably enumerable (synonyms: recursively enumerable, semidecidable) if there is a computable function f such that f(w) is defined if and only if the word w is in the language. The term enumerable has the same etymology as in computably enumerable sets of natural numbers.
Examples
The following functions are computable:
Each function with a finite domain; e.g., any finite sequence of natural numbers.
If f and g are computable, then so are: f + g, f * g, if
f is unary, max(f,g), min(f,g), arg max{y ≤ f(x)} and many more combinations.
The following examples illustrate that a function may be computable though it is not known which algorithm computes it.
The function f such that f(n) = 1 if there is a sequence of at least n consecutive fives in the decimal expansion of π, and f(n) = 0 otherwise, is computable. (The function f is either the constant 1 function, which is computable, or else there is a k such that f(n) = 1 if n < k and f(n) = 0 if n ≥ k. Every such function is computable. It is not known whether there are arbitrarily long runs of fives in the decimal expansion of π, so we don't know which of those functions is f. Nevertheless, we know that the function f must be computable.)
Each finite segment of an uncomputable sequence of natural numbers (such as the Busy Beaver function Σ) is computable. E.g., for each natural number n, there exists an algorithm that computes the finite sequence Σ(0), Σ(1), Σ(2), ..., Σ(n) — in contrast to the fact that there is no algorithm that computes the entire Σ-sequence, i.e. Σ(n) for all n. Thus, "Print 0, 1, 4, 6, 13" is a trivial algorithm to compute Σ(0), Σ(1), Σ(2), Σ(3), Σ(4); similarly, for any given value of n, such a trivial algorithm exists (even though it may never be known or produced by anyone) to compute Σ(0), Σ(1), Σ(2), ..., Σ(n).
The Church–Turing thesis states that any function computable from a procedure possessing the three properties listed above is a computable function. Because these three properties are not formally stated, the Church–Turing thesis cannot be proved. The following facts are often taken as evidence for the thesis:
Many equivalent models of computation are known, and they all give the same definition of computable function (or a weaker version, in some instances).
No stronger model of computation which is generally considered to be effectively calculable has been proposed.
The Church–Turing thesis is sometimes used in proofs to justify that a particular function is computable by giving a concrete description of a procedure for the computation. This is permitted because it is believed that all such uses of the thesis can be removed by the tedious process of writing a formal procedure for the function in some model of computation.
Provability
Given a function (or, similarly, a set), one may be interested not only if it is computable, but also whether this can be proven in a particular proof system (usually first orderPeano arithmetic). A function that can be proven to be computable is called provably total.
The set of provably total functions is recursively enumerable: one can enumerate all the provably total functions by enumerating all their corresponding proofs, that prove their computability. This can be done by enumerating all the proofs of the proof system and ignoring irrelevant ones.
Relation to recursively defined functions
In a function defined by a recursive definition, each value is defined by a fixed first-order formula of other, previously defined values of the same function or other functions, which might be simply constants. A subset of these is the primitive recursive functions. Another example is the Ackermann function, which is recursively defined but not primitive recursive.[5]
For definitions of this type to avoid circularity or infinite regress, it is necessary that recursive calls to the same function within a definition be to arguments that are smaller in some well-partial-order on the function's domain. For instance, for the Ackermann function , whenever the definition of refers to , then w.r.t. the lexicographic order on pairs of natural numbers. In this case, and in the case of the primitive recursive functions, well-ordering is obvious, but some "refers-to" relations are nontrivial to prove as being well-orderings. Any function defined recursively in a well-ordered way is computable: each value can be computed by expanding a tree of recursive calls to the function, and this expansion must terminate after a finite number of calls, because otherwise Kőnig's lemma would lead to an infinite descending sequence of calls, violating the assumption of well-ordering.
Total functions that are not provably total
In a sound proof system, every provably total function is indeed total, but the converse is not true: in every first-order proof system that is strong enough and sound (including Peano arithmetic), one can prove (in another proof system) the existence of total functions that cannot be proven total in the proof system.
If the total computable functions are enumerated via the Turing machines that produces them, then the above statement can be shown, if the proof system is sound, by a similar diagonalization argument to that used above, using the enumeration of provably total functions given earlier. One uses a Turing machine that enumerates the relevant proofs, and for every input n calls fn(n) (where fn is n-th function by this enumeration) by invoking the Turing machine that computes it according to the n-th proof. Such a Turing machine is guaranteed to halt if the proof system is sound.
Every computable function has a finite procedure giving explicit, unambiguous instructions on how to compute it. Furthermore, this procedure has to be encoded in the finite alphabet used by the computational model, so there are only countably many computable functions. For example, functions may be encoded using a string of bits (the alphabet Σ = {0, 1}).
The real numbers are uncountable so most real numbers are not computable. See computable number. The set of finitary functions on the natural numbers is uncountable so most are not computable. Concrete examples of such functions are Busy beaver, Kolmogorov complexity, or any function that outputs the digits of a noncomputable number, such as Chaitin's constant.
Similarly, most subsets of the natural numbers are not computable. The halting problem was the first such set to be constructed. The Entscheidungsproblem, proposed by David Hilbert, asked whether there is an effective procedure to determine which mathematical statements (coded as natural numbers) are true. Turing and Church independently showed in the 1930s that this set of natural numbers is not computable. According to the Church–Turing thesis, there is no effective procedure (with an algorithm) which can perform these computations.
Extensions of computability
Relative computability
The notion of computability of a function can be relativized to an arbitrary set of natural numbersA. A function f is defined to be computable in A (equivalently A-computable or computable relative to A) when it satisfies the definition of a computable function with modifications allowing access to A as an oracle. As with the concept of a computable function relative computability can be given equivalent definitions in many different models of computation. This is commonly accomplished by supplementing the model of computation with an additional primitive operation which asks whether a given integer is a member of A. We can also talk about f being computable in g by identifying g with its graph.
Higher recursion theory
Hyperarithmetical theory studies those sets that can be computed from a computable ordinal number of iterates of the Turing jump of the empty set. This is equivalent to sets defined by both a universal and existential formula in the language of second order arithmetic and to some models of Hypercomputation. Even more general recursion theories have been studied, such as E-recursion theory in which any set can be used as an argument to an E-recursive function.
Hyper-computation
Although the Church–Turing thesis states that the computable functions include all functions with algorithms, it is possible to consider broader classes of functions that relax the requirements that algorithms must possess. The field of Hypercomputation studies models of computation that go beyond normal Turing computation.
Kafe Māo huāyuán di Taiwan. Kafe kucing adalah sebuah kafe yang di dalamnya terdapat banyak kucing yang dapat dipegang, diajak main, atau hanya ditonton saja. Kafe kucing biasanya banyak dikunjungi oleh para pencinta kucing. Untuk pembayaran, biasanya dilihat dari berapa lama pengunjung ada di kafe tersebut. Kafe kucing juga dapat dikatakan sebagai tempat penyewaan hewan peliharaan. Sejarah Banyak yang mengatakan kafe kucing pertama di dunia dibuka di Taiwan pada tahun 1998,[1] den...
Confine tra l'Armenia e l'AzerbaigianMappa del confine di stato armeno-azero riconosciuto a livello internazionale contrassegnato in rossoDati generaliStati Armenia Azerbaigian Enclavi/exclavi Exclave azera del Nakhchivan; Enclavi azere di Barxudarlı, Aşağı Əskipara e Yukhari Əskipara nell'Armenia nord-orientale e Kərki nel nord del Nakhchivan; Exclave armena di Artsvashen, nel territorio azero. Dati storiciIstituito nel1991 Attuale dal2010 Manuale Il confine tra l'Armenia e ...
Evolutionary narrative that blends views In social, cultural, and religious studies in the United States, the epic of evolution is a narrative that blends religious and scientific views of cosmic, biological, and sociocultural evolution in a mythological manner. According to The Encyclopedia of Religion and Nature, an epic of evolution encompasses the 14 billion year narrative of cosmic, planetary, life, and cultural evolution—told in sacred ways. Not only does it bridge mainstream science ...
Gerbang JaffaGerbang JaffaLokasi di Kota Lama YerusalemInformasi umumKotaKota Lama Yerusalem Gerbang Jaffa (Ibrani: שער יפוcode: he is deprecated , Sha'ar Yafo; Arab: باب الخليلcode: ar is deprecated , Bab al-Khalil, Gerbang Hebron; juga disebut dalam bahasa Arab, Bab Mihrab Dawud, Gerbang mihram Nabi Dawud; atau Gerbang Dawud)adalah sebuah portal yang dibuat dari batu yang berada dalam deret tembok bersejarah Kota Lama Yerusalem. Gerbang ini adalah salah satu dari delapan gerb...
An-28 Antonov An-28 milik Rodina Jenis pesawat penumpang jarak pendek Pembuat Antonov Penerbangan perdana September 1969 Diperkenalkan 1986 Status Operasional Pengguna utama Aeroflot Dibuat 1975–1993 Jumlah 191 Dikembangkan dari Antonov An-14 Varian PZL M-28 Dikembangkan menjadi Antonov An-38 Antonov An-28 (Kode NATO Cash) adalah sebuah pesawat transport ringan bermesin ganda, yang dikembangkan dari Antonov An-14M. Pesawat ini merupakan pemenang dari kompetisi melawan Beriev Be-30 unt...
PemberitahuanTemplat ini mendeteksi bahwa artikel bahasa ini masih belum dinilai kualitasnya oleh ProyekWiki Bahasa dan ProyekWiki terkait dengan subjek. Perhatian: untuk penilai, halaman pembicaraan artikel ini telah diisi sehingga penilaian akan berkonflik dengan isi sebelumnya. Harap salin kode dibawah ini sebelum menilai. {{PW Bahasa|importance=|class=}} Terjadi [[false positive]]? Silakan laporkan kesalahan ini. 22.30, Jumat, 5 April, 2024 (UTC) • hapus singgahan Sebany...
27th Independent Spirit AwardsAwarded forBest in independent filmDateFebruary 25, 2012SiteSanta Monica PierSanta Monica, California, U.S.Hosted bySeth RogenHighlightsBest FeatureThe ArtistMost awardsThe Artist (4)Most nominationsThe Artist (5) ← 26th Independent Spirit Awards 28th → The 27th Independent Spirit Awards, honoring the best independent films of 2011, were presented on February 25, 2012.[1][2][3] The nominations were announced on Novemb...
Egyptian pharaoh Not to be confused with Menkaure. MenkareThe cartouche of Menkare on the Abydos King List.PharaohReignProbably short, c. 2181 BCPredecessorNetjerkare SiptahSuccessorNeferkare IIRoyal titulary Prenomen (Praenomen) MenkareMn k3 RˁStable is the Ka of Ra DynastyEighth Dynasty Menkare was an ancient Egyptian pharaoh, the first or second[1] ruler of the Eighth Dynasty. Menkare probably reigned a short time at the transition between the Old Kingdom period and the Firs...
Questa voce sull'argomento calciatori messicani è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Javier Saavedra Nazionalità Messico Altezza 173 cm Calcio Ruolo Centrocampista Termine carriera 2013 Carriera Squadre di club1 1994-1996 Acapulco0 (0)1996-1998 Toros Neza68 (8)1998-2002 Tigres UANL128 (10)2002-2003 Monarcas Morelia36 (8)2003-2006 Tigres UANL102 (10)2006-2007...
كينيث لونيرغان معلومات شخصية الميلاد 16 أكتوبر 1962 (العمر 61 سنة)نيويورك الإقامة البرونكس مواطنة الولايات المتحدة الزوجة إيزابيل سميث (2000–) الحياة العملية المدرسة الأم جامعة ويسليانمدرسة تيش العليا للفنونأستوديو هيربرت برغوف [لغات أخرى] المهنة كا�...
Mead School DistrictAddress2323 E Farwell Road Mead, Washington, 99021United StatesCoordinates47°46′23″N 117°22′32″W / 47.77306°N 117.37556°W / 47.77306; -117.37556District informationMottoLearn. Lead. Mead.GradesK–12SuperintendentTravis Hanson [1]NCES District ID5304920[2]Affiliation(s)Washington State Office of Superintendent of Public Instruction, U.S. Department of EducationStudents and staffEnrollment10,275 (2021-2022 school year)Tea...
Pour les articles homonymes, voir Nietzsche (homonymie). Musée NietzscheInformations généralesNom local Nietzsche-HausType Musée Friedrich NietzscheOuverture 25 août 1960 (pour la commémoration du soixantenaire de la disparition de Nietzsche)Dirigeant « Fondation de la Maison Nietzsche »Site web nietzschehaus.ch/frCollectionsCollections Chambre d'origine, meubles, objets, documents, et bibliothèque de plus de 4500 ouvrages multilingues, de la vie de Friedrich Nietzsche...L...
Common aphorism in statistics All models are wrong is a common aphorism and anapodoton in statistics; it is often expanded as All models are wrong, but some are useful. The aphorism acknowledges that statistical models always fall short of the complexities of reality but can still be useful nonetheless. The aphorism originally referred just to statistical models, but it is now sometimes used for scientific models in general.[1] The aphorism is generally attributed to George E. P. Box,...
Правая винтовая линия (cos t, sin t, t) с t = 0 до 4π Кристаллическая правовинтовая молекулярная структура , по работе сотрудников Lehn, из Helv. Chim. Acta., 2003, 86, 1598—1624 Естественное закручивание усиков винограда (левая спирально-винтовая) Винтовая ли́ния — кривая в трёхмерном простран...
1970 Austrian Grand Prix The Österreichring (in 1970)Race detailsDate 16 August 1970Official name VIII Großer Preis von Österreich[1]Location ÖsterreichringSpielberg, Styria, AustriaCourse Permanent racing facilityCourse length 5.911 km (3.673 miles)Distance 60 laps, 354.66 km (220.38 miles)Pole positionDriver Jochen Rindt Lotus-FordTime 1:39.23Fastest lapDriver Jacky Ickx Clay Regazzoni FerrariFerrariTime 1:40.4PodiumFirst Jacky Ickx FerrariSecond Clay Regazzoni FerrariThird Rolf...
Christian HarrisonChristian Harrison nel 2023Nazionalità Stati Uniti Altezza180 cm Peso77 kg Tennis Carriera Singolare1 Vittorie/sconfitte 6-9 (40%) Titoli vinti 0 Miglior ranking 198º (2 luglio 2018) Ranking attuale ranking Risultati nei tornei del Grande Slam Australian Open Q2 (2018) Roland Garros - Wimbledon 2T (2022) US Open 1T (2016) Doppio1 Vittorie/sconfitte 13-16 (44.83%) Titoli vinti 0 Miglior ranking 99º (15 luglio 2024) Ranking attuale ranking Risul...
Operation HawkPart of the Kurdistan Workers' Party insurgencyDateApril 1996LocationDiyarbakır Province and Bingöl ProvinceResult Turkish victoryBelligerents Turkey PKKCommanders and leaders Hilmi Özkök UnknownStrength 10,000 UnknownCasualties and losses 40 241 vteKurdish–Turkish conflictTimeline First insurgency 1984 Karageçit N Iraq (1986) Ortabağ N Iraq (1987) Pınarcık Yeşilova Taşdelen Şırnak Kulp N Iraq (1992) Bingöl Başbağlar Lice Winter campaign Steel Tokat Hawk Tunceli...