烤麸是什么做的| 升米恩斗米仇什么意思| 牛油果是什么季节的水果| 吃芒果不能和什么一起吃| 肚子疼应该挂什么科| 1年是什么朝代| 氨咖黄敏胶囊是什么药| 去迪拜打工需要什么条件| ana谱是查什么病的| 鬼斧神工是什么意思| 为什么会有狐臭| 离婚要什么手续和证件| 女生被操什么感觉| 腺样体肥大挂什么科| 什么情况下打破伤风| 恶魔是什么意思| 三个水念什么| 一个虫一个圣读什么| 康熙是乾隆的什么人| 佩戴狼牙有什么好处| 认识是什么意思| 处暑的处是什么意思| 交社保有什么用| 消融术是什么手术| 小孩病毒性感冒吃什么药效果好| 之一的意思是什么| 属虎生什么属相宝宝好| 四维是检查什么| 吐纳是什么意思| 梨花是什么生肖| 心悸心慌焦虑吃什么药能缓解| 三八妇女节是什么生肖| 什么移动卡流量多| 肚脐左侧按压疼是什么原因| 做俯卧撑有什么好处| 痔疮不能吃什么食物| 事业编有什么好处| 法令纹是什么| 最高的学历是什么| 冒菜为什么叫冒菜| 天津市市长是什么级别| 雌激素是什么意思| 事半功倍的意思是什么| 负离子什么意思| 入珠是什么| 银耳钉变黑了说明什么| 伤心的反义词是什么| 幻听是什么原因引起的| 心什么神什么| 液体面包是什么| 左眼皮跳是什么预兆女| 顺位是什么意思| 什么话是世界通用的| 喷昔洛韦乳膏治什么| 色戒讲的什么| 慢性宫颈炎吃什么药| 南海龙王叫什么| 世界上有什么| 右肺下叶纤维灶是什么意思| 什么叫甘油三酯| 什么姿势最深| 龟毛的性格指什么性格| 龟苓膏是什么做的| 鹦鹉鱼能和什么鱼混养| 女人梦见桃子预示什么| 胃不好可以喝什么茶| 什么牌子的洗衣机好| 珍珠母贝是什么东西| 什么颜色属火| 女性风湿吃什么东西好| 什么运动使人脸部年轻| 特斯拉发明了什么| yaoi是什么| 因数是什么意思| 本科是什么| 乳癖是什么病| 最聪明的动物是什么| 琴酒是什么酒| 眼拙是什么意思| 小肠气挂什么科| 腰闪了是什么症状| 送男生什么礼物| 色调是什么意思| 什么的乌鸦| 牙龈翻瓣术是什么意思| paw是什么意思| 尿路感染不能吃什么东西| 没有美瞳护理液用什么代替| 什么| 太后是皇上的什么人| 经期喝什么补气血| 7月是什么生肖| 宇宙外面是什么| 毋庸置疑什么意思| 小孩一到晚上就发烧是什么原因| 隔离霜和bb霜有什么区别| 鼻烟是什么| 女人做梦哭醒预示什么| 高氨血症是什么病| 2段和3段奶粉有什么区别| 孕妇吃什么水果好对胎儿好| 火龙果和什么不能一起吃| 双儿是什么意思| 春指什么生肖| 油漆味对人有什么危害| 张学友和张家辉什么关系| 七月八日是什么日子| 夏天像什么| giada是什么牌子| 甜菜根是什么菜| 脑血栓适合吃什么水果| 眼睛胀是什么原因| 什么运动瘦肚子最快| 血压和血糖有什么关系| 文化是指什么| 什么的田野| 心电图显示窦性心律是什么意思| 尿多是什么原因男性| 脚板痛是什么原因| 晚饭吃什么好| 人武部是干什么的| 猪肝可以钓什么鱼| 菠菜炒什么好吃| 汗疱疹是什么原因引起| 爱出者爱返福往者福来什么意思| phicomm是什么牌子| 玉米什么时候打药| 洗牙有什么好处和坏处| 精力是什么意思| 榴莲什么人不适合吃| 耳鸣耳聋吃什么药| 福州有什么好玩的地方| 耳朵老是痒是什么原因| 结甲是什么病| 玻璃结节是什么意思| ins是什么| 北京有什么特产好吃| 面瘫挂什么科室| 数字是什么意思| 堃什么意思| 马眼是什么意思| 普洱茶是属于什么茶| 榄仁叶是什么树的叶子| 什么叫绿茶| 1936年中国发生了什么| 腹直肌分离是什么意思| er是什么元素| 左侧头疼是什么原因| 遵命是什么意思| 美容美体是干什么的| 什么是机械手表| 肾结石喝酒有什么影响| 艾司唑仑片是什么药| 感叹号像什么| 小孩说梦话是什么原因引起的| 酸菜吃多了有什么危害| 罗曼蒂克什么意思| 什么动物最聪明| ep病毒是什么| 代茶饮是什么意思| 安然无恙的恙是什么意思| 梦到打死蛇是什么意思| 梦见手机摔碎了是什么意思| 处口念什么| 无语是什么意思| kelly是什么意思| 天生丽质难自弃是什么意思| 兔子和什么属相相冲| 着凉了吃什么药| ga是什么意思| 天热喝什么茶好| 傲气是什么意思| 感染幽门螺旋杆菌吃什么药| 猴年马月什么意思| ed病毒是什么| ckmb是什么意思| 经常便秘吃什么药好| 叶酸什么时候吃最好| 芥花油是什么油| 禁的部首是什么| 草是什么意思| 地指什么生肖| pg是什么意思| 冷笑话是什么意思| 狗狗能吃什么水果| 叶黄素对眼睛有什么好处| 今年流行什么发型| 香港有什么好玩的| 效果是什么意思| 金火是什么生肖| 为什么不呢| 裂隙灯能查出什么眼病| 绛红色是什么颜色| 小米粥和什么搭配最好| aed什么意思| 口服是什么意思| 补肾固精吃什么药好| 有出息是什么意思| 蓝眼睛的猫是什么品种| 五光十色是什么生肖| 吃什么有助于睡眠| 孕妇喝可乐对胎儿有什么影响| 大豆油是什么豆做的| 转头头晕是什么原因| clean什么意思| 刮脸有什么好处与坏处| 欧米茄算什么档次| 类风湿吃什么食物好| 桦树茸泡水喝有什么功效| 宫颈管积液什么意思| 肝结节是什么病严重吗| 空调室内机漏水是什么原因| 尿生化是查什么的| 肺气肿吃什么食物| 宝宝缺钙吃什么补得快| 便秘不能吃什么食物| 固涩是什么意思| 黄体破裂是什么原因造成的| 高笋和茭白有什么区别| 籍贯一般写什么| 造瘘手术是什么意思| 孕妇什么时候吃dha效果比较好| 6月6号是什么星座| 肺静脉流的是什么血| 什么脸型适合什么发型| 埃及艳后叫什么| 脚底板痛什么原因| 女性夜尿多吃什么调理| 离苦得乐什么意思| 崴脚用什么药| 刘三姐是什么生肖| 年轻人能为世界做什么| 尿是绿色的是什么原因| 视力突然模糊是什么原因引起的| 两肺散在小结节是什么意思| 青少年膝盖痛什么原因| 豆包是什么意思| 无毛猫叫什么| 心脏痛挂什么科| 近亲是什么意思| 什么是洁癖| 肩膀疼痛挂什么科| 梦到前妻预示什么| 被艹是什么感觉| 尿道感染看什么科| 信访局是干什么的| 什么牌子的氨糖好| 宫颈轻糜是什么意思| 郁是什么意思| 吃青提有什么好处| 腹胀吃什么药| 不在服务区是什么意思| 飘雪是什么茶| 1月2日什么星座| trab抗体偏高代表什么| 木马是什么意思| 为什么老是犯困想睡觉| 药品gmp是什么意思| 吃什么东西化痰| 周杰伦为什么喜欢昆凌| 周深为什么是女声| 谋生是什么意思| 外阴苔癣是一种什么病| 颜面扫地什么意思| 百度

中国这一轰炸机有望成最先进的轰炸机:世界首架

百度 同时,突出问题导向和公众关切,加强污染减排、环境监管执法、突发环境事件、环境污染举报和处理等信息公开。

Computable functions are the basic objects of study in computability theory. Informally, a function is computable if there is an algorithm that computes the value of the function for every value of its argument. Because of the lack of a precise definition of the concept of algorithm, every formal definition of computability must refer to a specific model of computation.

Many such models of computation have been proposed, the major ones being Turing machines, register machines, lambda calculus and general recursive functions. Although these four are of a very different nature, they provide exactly the same class of computable functions, and, for every model of computation that has ever been proposed, the computable functions for such a model are computable for the above four models of computation.

The Church–Turing thesis is the unprovable assertion that every notion of computability that can be imagined can compute only functions that are computable in the above sense.

Before the precise definition of computable functions, 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 computing the value of a function is known as a function problem, by contrast to decision problems whose results are either "yes" of "no".

Definition

edit

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

For example, one can formalize computable functions as μ-recursive functions, which are partial functions that take finite tuples of natural numbers and return a single natural number (just as above). They are the smallest class of partial functions that includes the constant, successor, and projection functions, and is closed under composition, primitive recursion, and the μ operator.

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:

  1. If   is defined, then the program will terminate on the input   with the value   stored in the computer memory.
  2. If   is undefined, then the program never terminates on the input  .

Characteristics of computable functions

edit

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:

  1. 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.
  2. 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.
  3. 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:

  1. 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;
  2. it returns such output (halts) in a finite number of steps; and
  3. 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

edit

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 if n 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.

Formal languages

edit

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

edit

The following functions are computable:

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{yf(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 nk. 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).

Church–Turing thesis

edit

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

edit

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 order Peano 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

edit

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

edit

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.

Uncomputable functions and unsolvable problems

edit

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

edit

Relative computability

edit

The notion of computability of a function can be relativized to an arbitrary set of natural numbers A. 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

edit

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

edit

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.

See also

edit

References

edit
  1. ^ Enderton, Herbert (2002). A Mathematical Introduction to Logic (Second ed.). USA: Elsevier. p. 209. ISBN 0-12-238452-0.
  2. ^ Enderton, Herbert (2002). A Mathematical Introduction to Logic (Second ed.). USA: Elsevier. p. 208,262. ISBN 0-12-238452-0.
  3. ^ C. J. Ash, J. Knight, Computable Structures and the Hyperarithmetical Hierarchy (Studies in Logic and the Foundation of Mathematics, 2000), p. 4
  4. ^ R. Soare, Computability and Recursion Archived 2025-08-06 at the Wayback Machine (1995). Accessed 9 November 2022.
  5. ^ Péter, Rózsa (1935). "Konstruktion nichtrekursiver Funktionen". Mathematische Annalen. 111: 42–60. doi:10.1007/BF01472200. S2CID 121107217.
  • Cutland, Nigel. Computability. Cambridge University Press, 1980.
  • Enderton, H.B. Elements of recursion theory. Handbook of Mathematical Logic (North-Holland 1977) pp. 527–566.
  • Rogers, H. Theory of recursive functions and effective computation (McGraw–Hill 1967).
  • Turing, A. (1937), On Computable Numbers, With an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, Series 2, Volume 42 (1937), p.230–265. Reprinted in M. Davis (ed.), The Undecidable, Raven Press, Hewlett, NY, 1965.
灭活是什么意思 dsa检查是什么意思 调剂生是什么意思 流黄鼻涕是什么感冒 支原体吃什么药
仓鼠用什么洗澡 血常规能查出什么病 吃韭菜有什么好处 安陵容什么时候变坏的 什么有条
升结肠憩室是什么意思 相见恨晚是什么意思 拔牙后吃什么食物 全麻后为什么不能睡觉 什么是前列腺增生
为什么叫梅雨季节 十八岁成人礼送什么礼物 阿胶配什么吃不上火 令坦是对方什么人的尊称 braun是什么品牌
婴儿什么时候会走路hcv7jop6ns5r.cn 多多保重是什么生肖hcv9jop2ns6r.cn mri是什么意思hcv7jop9ns8r.cn 58年属什么生肖hcv9jop6ns8r.cn 紫皮大蒜和白皮大蒜有什么区别clwhiglsz.com
低头族是什么意思kuyehao.com 心重是什么意思shenchushe.com 白介素是什么huizhijixie.com 基数大是什么意思sanhestory.com 背动态心电图要注意什么hcv8jop8ns3r.cn
三伏贴什么时候贴hcv8jop7ns0r.cn 毛囊炎是什么原因引起的hcv7jop6ns6r.cn 他喵的什么意思hcv9jop3ns6r.cn 白血球低吃什么补得快hcv9jop8ns0r.cn 三斤八两什么意思hcv9jop0ns4r.cn
国企董事长是什么级别hcv8jop3ns9r.cn 怀孕阴道有什么变化hcv9jop0ns5r.cn 白细胞酯酶阳性是什么hcv9jop3ns8r.cn 水厄痣是什么意思hcv7jop6ns7r.cn hh是什么牌子hcv8jop5ns4r.cn
百度