本文主要是关于图灵可确定,不可确定问题和半确定问题等
本文中可判定或不可判定也翻译为可决定(确定),不可决定(确定),这里我统一用可判定与不可判定

预备知识

可数与不可数集合

可数集合

可数集合:一个集合MMM称为可数的,当MMM是空的,或者当有一个满射的函数c:N→Mc:\mathbb{N}\rightarrow Mc:N→M存在

  1. 每一个可数集合的元素都可以被枚举出来
  2. 每一个有限集合都是可数的
  3. 对于一个可数的无限集合都存在一个双射函数c:N→Mc:\mathbb{N}\rightarrow Mc:N→M
  4. 所有可数的无限集合和自然数集合N\mathbb{N}N等势

可数集合举例:

  1. 有限字母集合Σ\SigmaΣ所有构成的词的集合Σ∗\Sigma^*Σ∗,例如:{0,1}∗\{0,1\}^*{0,1}∗在卡农顺序下可以枚举为:

ϵ,0,1,00,01,10,11,000,001,010,011,100,101,...\epsilon,0,1,00,01,10,11,000,001,010,011,100,101,... ϵ,0,1,00,01,10,11,000,001,010,011,100,101,...

  1. 哥德尔数Gödelnummer的集合。因为Gödelnummer的词是关于字母集{0,1}的
  2. 所有图灵机的集合。因为每个图灵机都可以通过一个Gödelnummer表示

符号

对于二维字母集合Σ={0,1}\Sigma=\{0,1\}Σ={0,1}我们将在卡农顺序下的第i个词表示为wiw_iwi​

对于第i个卡农顺序下的图灵机Gödelnummer我们记为MiM_iMi​

不可数聚合

定理:自然数集的幂集P(N)\mathcal{P}(\mathbb{N})P(N)是不可数的

证明:反证法

  1. 假设P(N)\mathcal{P}(\mathbb{N})P(N)是可数的

  2. 那么令S0,S1,S2,S3,...S_0,S_1,S_2,S_3,...S0​,S1​,S2​,S3​,...为一个P(N)\mathcal{P}(\mathbb{N})P(N)的枚举

  3. 我们定义一个二维无限的邻接矩阵(Ai,j)i,j∈N(A_{i,j})_{i,j\in \mathbb{N}}(Ai,j​)i,j∈N​

Ai,j={1如果j∈Si0其他A_{i,j}= \begin{cases} 1& \quad 如果j\in S_i\\ 0& \quad 其他 \end{cases} Ai,j​={10​如果j∈Si​其他​

上述两行分别定义对角线集合SdiagS_{diag}Sdiag​和其补集Sˉdiag\bar S_{diag}Sˉdiag​

注:对角线集合SdiagS_{diag}Sdiag​和其补集Sˉdiag\bar S_{diag}Sˉdiag​都是自然数集合的子集,因此在P(N)\mathcal{P}(\mathbb{N})P(N)存在一个元素Sk,k∈NS_k,k\in\mathbb{N}Sk​,k∈N使得Sˉdiag=Sk\bar S_{diag} = S_kSˉdiag​=Sk​

现在有两种情况,都可以导致矛盾:

第一种情况:Ak,k=1⇒Def.Sˉdiagk∉Sˉdiag⇒k∉Sk⇒Def.AAk,k=0第一种情况: A_{k,k} = 1\overset{Def. \bar S_{diag}}\Rightarrow k\notin \bar S_{diag} \Rightarrow k\notin S_k \overset{Def. A}\Rightarrow A_{k,k}=0第一种情况:Ak,k​=1⇒Def.Sˉdiag​k∈/​Sˉdiag​⇒k∈/​Sk​⇒Def.AAk,k​=0
第二种情况:Ak,k=0⇒Def.Sˉdiagk∈Sˉdiag⇒k∈Sk⇒Def.AAk,k=1第二种情况: A_{k,k} = 0\overset{Def. \bar S_{diag}}\Rightarrow k\in \bar S_{diag} \Rightarrow k\in S_k \overset{Def. A}\Rightarrow A_{k,k}=1第二种情况:Ak,k​=0⇒Def.Sˉdiag​k∈Sˉdiag​⇒k∈Sk​⇒Def.AAk,k​=1

所以不存在P(N)\mathcal{P}(\mathbb{N})P(N)的枚举,因此不可数

不可判定问题

对角线语言

定义:D={w∈{0,1}∗∣w=wi且Mi不接受w}D=\{w\in\{0,1\}^*|w=w_i且M_i不接受w\}D={w∈{0,1}∗∣w=wi​且Mi​不接受w}

换句话说:第i个词wiw_iwi​(卡农顺序下对于{0,1}∗\{0,1\}^*{0,1}∗)在对角线语言D中,当且仅当第i个图灵机MiM_iMi​(在卡农顺序下的Gödelnummer)不接受这个词wiw_iwi​。

:这里图灵机MiM_iMi​不接受www有两种情况:1.图灵机MiM_iMi​拒绝了www;2.图灵机MiM_iMi​对于输入www不停

定理:对角线语言DDD是不可判定的

证明:反证法

假设对角线语言D是可判定的,则存在一个MjM_jMj​,可以判定D

对角线语言补集的不可判定性

相似的,对角线补集的定义为Dˉ={w∈{0,1}∗∣w=wi且Mi接受w}\bar D=\{w\in\{0,1\}^*|w=w_i且M_i接受w\}Dˉ={w∈{0,1}∗∣w=wi​且Mi​接受w}

定理:对角线语言补集Dˉ\bar DDˉ是不可判定的

证明:反证法

假设Dˉ\bar DDˉ是可判定的,那么存在一个图灵机MDˉM_{\bar D}MDˉ​,判定Dˉ\bar DDˉ。可以用图灵机MDˉM_{\bar D}MDˉ​构造出可以判定对角线语言DDD的图灵机MDM_DMD​,造成矛盾。

如下构造:

子程序技术

上面的这个证明过程就用到了子程序技术

其具体方法为:

已经有一个被证明是不可判定的语言L’,要求证一个新的语言L不可判定,只要构造运用一个子程序图灵机MLM_LML​(其可判定语言L)的图灵机也可以判定语言L’

观察

当一个语言L⊆{0,1}∗L\subseteq\{0,1\}^*L⊆{0,1}∗不可判定时,那么他的补集也不可判定

同样的当一个语言L⊆{0,1}∗L\subseteq\{0,1\}^*L⊆{0,1}∗可判定时,那么他的补集也可判定

停机问题

定义:H={<M>w∣M在输入为w的时候能停}H = \{<M>w|M在输入为w的时候能停\}H={<M>w∣M在输入为w的时候能停}

注:停机问题是所有图灵机Gödelnummer<M><M><M>加上能使他停的词www的集合

定理:停机问题H是不可判定的

证明:子程序

  1. 1号子程序根据输入w在卡农顺序下的下标i(也就是找到wi=ww_i = wwi​=w),然后根据下标i得到MiM_iMi​的Gödelnummer
  2. 将<Mi>wi<M_i>w_i<Mi​>wi​作为输入进入2号子程序MHM_HMH​,如果MiM_iMi​在w_i处不停机则拒绝,如果停机则接受进入3号子程序。(因为MHM_HMH​接受<Mi>wi<M_i>w_i<Mi​>wi​只是说明MiM_iMi​在输入wiw_iwi​处停了,接受或拒绝未知,而对于对角线语言补集是只要求能被MiM_iMi​接受的语言)
  3. 3号子程序通用图灵机模拟MiM_iMi​对于输入wiw_iwi​的运行过程。(因为MHM_HMH​接受<Mi>wi<M_i>w_i<Mi​>wi​,所以MiM_iMi​对于输入wiw_iwi​会停,当MiM_iMi​接受wiw_iwi​时,通用图灵机UUU也会接受,反过来也一样)

正确性证明

需要证明:

  1. w∈Dˉ⇒MDˉ接受ww \in \bar D \Rightarrow M_{\bar D} 接受ww∈Dˉ⇒MDˉ​接受w
  2. w∉Dˉ⇒MDˉ拒绝ww \notin \bar D \Rightarrow M_{\bar D} 拒绝ww∈/​Dˉ⇒MDˉ​拒绝w

ϵ\epsilonϵ-停机问题

定义:Hϵ={<M>w∣M在输入为ϵ的时候能停}H_\epsilon = \{<M>w|M在输入为\epsilon的时候能停\}Hϵ​={<M>w∣M在输入为ϵ的时候能停}

定理:ϵ\epsilonϵ-停机问题HϵH_\epsilonHϵ​是不可判定的

证明:子程序技术

  1. 首先判断输入是否是以正确的Gödelnummer开始的,如果不是,则直接拒绝

  2. 如果输入格式正确,则用该输入构造一个新的图灵机Gödelnummer<Mw∗><M^*_w><Mw∗​>,该图灵机有以下特征:

    1)如果Mw∗M^*_wMw∗​含有输入ϵ\epsilonϵ,那么在运行时,它先将词w写在带子上,之后模拟图灵机M在输入为w的行为(这里是使得w在M上停等价于下面MϵM_\epsilonMϵ​接受Mw∗M^*_wMw∗​,反之w在M上不停就不接受)

    2)如果输入不是ϵ\epsilonϵ,那么就无所谓Mw∗M^*_wMw∗​的行为(因为证明里不需要)。我们可以设定,Mw∗M^*_wMw∗​会进入无限循环,也就是不停

  3. 最后将Gödelnummer<Mw∗><M^*_w><Mw∗​>作为输入进入图灵机MϵM_\epsilonMϵ​,然后整个MHM_HMH​输出接受,当且仅当MϵM_\epsilonMϵ​接受

正确性证明:

首先如果输入不符合<M>w<M>w<M>w这个形式的,MHM_HMH​直接拒绝,下面,当输入符合<M>w<M>w<M>w形式,则需要证明:

<M>w∈H⇒MH接受<M>w<M>w\in H \quad \Rightarrow \quad M_H 接受<M>w<M>w∈H⇒MH​接受<M>w

<M>w∉H⇒MH拒绝<M>w<M>w\notin H \quad \Rightarrow \quad M_H 拒绝<M>w<M>w∈/​H⇒MH​拒绝<M>w

莱斯定理

由图灵机计算的偏分方程具有以下形式:

fM:{0,1}∗→{0,1}∗∪{⊥}f_M:\{0,1\}^*\rightarrow \{0,1\}^*\cup\{\bot\}fM​:{0,1}∗→{0,1}∗∪{⊥}

对于判定问题有以下形式:

fM:{0,1}∗→{0,1,⊥}f_M:\{0,1\}^*\rightarrow \{0,1,\bot\}fM​:{0,1}∗→{0,1,⊥}

其中0表示拒绝,1表示接受,⊥\bot⊥表示不停

定理内容:

令R\mathcal{R}R是由图灵机计算的所有偏分方程的集合。

令S\mathcal{S}S是R\mathcal{R}R的一个子集,且有∅⊂S⊂R,S≠∅,S≠R\varnothing\subset \mathcal{S}\subset \mathcal{R},\mathcal{S}\ne\varnothing,\mathcal{S}\ne\mathcal{R}∅⊂S⊂R,S​=∅,S​=R

则语言L(S)={<M>∣M计算一个来自于S的函数}L(\mathcal{S}) =\{<M>|\ M 计算一个来自于\mathcal{S}的函数\}L(S)={<M>∣ M计算一个来自于S的函数}是不可判定的

注:莱斯定理只针对于计算函数的图灵机哥德尔编码,不涉及到图灵机的运行时间,运行内容

证明:ML(S)M_{L(\mathcal{S})}ML(S)​作为MϵM_\epsilonMϵ​的子程序

令u为一般的未定义的函数u(w)≡⊥u(w)\equiv \botu(w)≡⊥

u∉Su\notin \mathcal{S}u∈/​S

令f是S\mathcal{S}S里的一个函数

令N是一个计算f的图灵机

  1. 如果输入不是由正确的Gödelnummer组成,MϵM_\epsilonMϵ​则拒绝这个输入

  2. 否则,MϵM_\epsilonMϵ​则从输入<M><M><M>中计算图灵机M∗M^*M∗的Gödelnummer:

    输入x在M∗M^*M∗上的行为如下:

    1)首先M∗M^*M∗在一个事先设计好的路径(Spur)上模拟图灵机M在输入为ϵ\epsilonϵ时的行为(如果M不停机,那么M∗M^*M∗就也不停机,那也就是计算的是u(w)≡⊥u(w)\equiv \botu(w)≡⊥,那么在之后ML(S)M_{L(\mathcal{S})}ML(S)​肯定会输出拒绝)

    2)之后M∗M^*M∗模拟图灵机N在输入为x的行为。一旦N停下来,那么M∗M^*M∗也就停下来,并且将N的输出作为M∗M^*M∗的输出。(这里指当输入ϵ\epsilonϵ在M上停机了,那么运行N,输入为x,输出自然就是f(x))

  3. 最后将<M∗><M^*><M∗>作为输入进入图灵机ML(S)M_{L(\mathcal{S})}ML(S)​中。我们接受当且仅当ML(S)M_{L(\mathcal{S})}ML(S)​接受。

正确性证明:

封闭性

当语言L是可判定的,那么它的补集Σ∗−L\Sigma^*-LΣ∗−L也是可判定的

当两个语言L1L_1L1​和L2L_2L2​是可判定的,则

  1. L1∩L2L_1\cap L_2L1​∩L2​可判定
  2. L1∪L2L1\cup L_2L1∪L2​可判定

可判定的语言集合在交并补下面是封闭的

递归可枚举性与归约

一个语言L被一个图灵机M所判定,当

  1. 对于任何一个输入M都会停
  2. M只接受来自于L里的词

一个语言L会被一个图灵机所识别,当

  1. M接受所有来自于L里的词
  2. M不接受任何一个不是L里的词

当存在一个图灵机,其可以识别L,那么则称这个语言L是半可判定的(semi-entscheidbar)

递归可枚举性

一个枚举器对于一个语言L⊆Σ∗L\subseteq\Sigma^*L⊆Σ∗是一个图灵机的变种,其连接着一个打印机

这个打印机是一个额外的输出带,读取头只能在这个带上向右移动且只能进行写操作。

  1. 枚举器会由空的工作带开始,并且随着时间会输出来自于L里的所有单词到打印机上
  2. 输出的词会被一个不来自于Σ\SigmaΣ分隔符分开
  3. 枚举器只打印来自于L里的单词

定义:当一个语言L有一个枚举器时,则称L是递归可枚举的

定理:一个语言L是递归可枚举的,当且仅当L是半可判定的

证明:

递归可枚举→\rightarrow→半可判定

假设L是递归可枚举的且A为其枚举器。如下方式构造一个图灵机M,使其识别语言L:

  • 在一条带上模拟这个枚举器A,并把结果输出到带子上(就是接管了打印机的功能)

  • 每当有一个单词在带子上打印出来之后,图灵机M就比较这个单词和w,并且当相等时u,输出接受。

正确性:

  • 当w∈Lw\in Lw∈L,则在某一时刻,www必然会被打印出来,那么这时候M会输出接受

  • 当w∉Lw\notin Lw∈/​L,则w永远都不会被打印出来,M就会不停也就不会输出接受

半可判定→\rightarrow→递归可枚举

假设L是半可判定的且被图灵机M所识别。如下方式构造一个枚举器A给语言L:

注:因为目的是要将能被图灵机M接受的词输出打印出来,但是对于某些词,M可能无限不停机。因此我们模拟是只运行固定步骤,然后采用多轮次进行模拟,每轮多模拟一个词,这样就解决了无限多个词语无限多步的冲突

在第k轮里(k=1,2,3,…)

  • 枚举器A用图灵机M模拟w1,w2,...,wkw_1,w_2,...,w_kw1​,w2​,...,wk​中每个词,并且每个词只运行k步

  • 在模拟过程中每当M接受了某个词,那么枚举器A就会把这个词打印出来

正确性:

很明显,构造出来的这个枚举器只接受来自于L的词。那么需要证明该枚举器是否能打印出所有来自L里的单词。

  • 令wiw_iwi​是语言L中的一个单词。那么wiw_iwi​会被图灵机M在有限步骤tit_iti​时接受
  • 所以,k轮过后(k≥max{i,ti}k\ge \mathbb{max}\{i,t_i\}k≥max{i,ti​}),wiw_iwi​在每一轮都会被打印出来

封闭性

当两个语言L1L_1L1​和L2L_2L2​是递归可枚举的,则

  1. L1∩L2L_1\cap L_2L1​∩L2​递归可枚举
  2. L1∪L2L1\cup L_2L1∪L2​递归可枚举

引理:

当一个语言L⊆Σ∗L\subseteq\Sigma^*L⊆Σ∗和其补集Lˉ:=Σ∗−L\bar L:=\Sigma^*-LLˉ:=Σ∗−L都是递归可枚举时,则LLL是可判定的

用子程序技术即可证明这个引理

Hˉ\bar HHˉ和Hˉϵ\bar H_\epsilonHˉϵ​不是递归可枚举的

证:因为停机问题H是递归可枚举的,当Hˉ\bar HHˉ也是递归可枚举的,则根据上述引理可推出停机问题是可判定的。然而事实是停机问题不可判定,所以Hˉ\bar HHˉ不是递归可枚举的。

同理Hˉϵ\bar H_\epsilonHˉϵ​不是递归可枚举的。

可计算性语言分类

观察:每一个语言L都属于以下四个类别里中的一个

  1. L可判定的(L和Lˉ\bar LLˉ都是递归可枚举的)
  2. LLL是递归可枚举的,而Lˉ\bar LLˉ不是
  3. Lˉ\bar LLˉ是递归可枚举的,而LLL不是
  4. LLL和Lˉ\bar LLˉ都不是递归可枚举的

归约

定义:令L1L_1L1​和L2L_2L2​是两个关于字母集Σ\SigmaΣ的语言。我们称L1L_1L1​在L2L_2L2​上可归约的(L1≤L2L_1\le L_2L1​≤L2​),当存在一个可计算的函数f:Σ∗→Σ∗f: \Sigma^*\rightarrow \Sigma^*f:Σ∗→Σ∗,使得对于所有的x∈Σ∗x\in \Sigma^*x∈Σ∗满足:x∈L1⇔f(x)∈L2x\in L_1 \Leftrightarrow f(x)\in L_2x∈L1​⇔f(x)∈L2​.

即x∈L1⇒f(x)∈L2;x∉L1⇒f(x)∉L2x \in L_1 \Rightarrow f(x)\in L_2;x\notin L_1 \Rightarrow f(x)\notin L_2x∈L1​⇒f(x)∈L2​;x∈/​L1​⇒f(x)∈/​L2​

定理:如果两个语言L1≤L2L_1\le L_2L1​≤L2​

  • L2L_2L2​可判定的⇒\quad \Rightarrow \quad⇒$ L_1$可判定的

  • L2L_2L2​递归可枚举的⇒\quad \Rightarrow \quad⇒ L1L_1L1​递归可枚举的

  • L1L_1L1​不可确定的⇒\quad \Rightarrow \quad⇒$ L_2$不可判定的

  • L1L_1L1​不是递归可枚举的⇒\quad \Rightarrow \quad⇒L2L_2L2​不是递归可枚举的

使用子程序技术即可证明:

完全停机问题

定义:Htot={<M>∣M在每一个输入都会停}H_{tot} = \{<M>|M在每一个输入都会停\}Htot​={<M>∣M在每一个输入都会停}

就是HtotH_{tot}Htot​里的图灵机不存在对于某个输入会不停

定理:Hˉtot\bar H_{tot}Hˉtot​和HtotH_{tot}Htot​都不是递归可枚举的

证明:

已知Hˉϵ\bar H_\epsilonHˉϵ​不是递归可枚举的,那么需要证:

  • Hˉϵ≤Hˉtot\bar H_\epsilon \le \bar H_{tot}Hˉϵ​≤Hˉtot​
  • Hˉϵ≤Htot\bar H_\epsilon \le H_{tot}Hˉϵ​≤Htot​

Hˉϵ≤Hˉtot\bar H_\epsilon \le \bar H_{tot}Hˉϵ​≤Hˉtot​

构造一个可计算的函数fff,使得对于x∈Σ∗x\in \Sigma^*x∈Σ∗有x∈Hˉϵ→f(x)∈Hˉtot;x∉Hˉϵ→f(x)∉Hˉtot\quad x\in \bar H_\epsilon \rightarrow f(x)\in \bar H_{tot};\quad x\notin \bar H_\epsilon \rightarrow f(x)\notin \bar H_{tot}x∈Hˉϵ​→f(x)∈Hˉtot​;x∈/​Hˉϵ​→f(x)∈/​Hˉtot​,构造方式如下:

令www是Hˉϵ\bar H_\epsilonHˉϵ​的一个输入

  • 当www不是哥德尔数时,直接令f(w)=wf(w) = wf(w)=w

  • 当w=<M>w=<M>w=<M>对于一个图灵机M,则令f(w):=<Mϵ∗>f(w):=<M_\epsilon^*>f(w):=<Mϵ∗​>是图灵机Mϵ∗M_\epsilon^*Mϵ∗​的哥德尔数,并且该图灵机有以下行为:

    Mϵ∗M_\epsilon^*Mϵ∗​忽略它的输入直接模拟M在输入为ϵ\epsilonϵ时的行为

正确性证明:

  1. w∈Hˉϵ⇒f(w)∈Hˉtotw\in \bar H_\epsilon \Rightarrow f(w)\in \bar H_{tot}w∈Hˉϵ​⇒f(w)∈Hˉtot​

  2. w∉Hˉϵ⇒f(w)∉Hˉtotw\notin \bar H_\epsilon \Rightarrow f(w)\notin \bar H_{tot}w∈/​Hˉϵ​⇒f(w)∈/​Hˉtot​

首先当w不是哥德尔数时,满足w∈Hˉϵw\in \bar H_\epsilonw∈Hˉϵ​和f(w)∈Hˉtotf(w)\in \bar H_{tot}f(w)∈Hˉtot​

当w=<M>w=<M>w=<M>是一个图灵机的哥德尔数时,

Hˉϵ≤Htot\bar H_\epsilon \le H_{tot}Hˉϵ​≤Htot​

构造一个可计算的函数fff,使得对于x∈Σ∗x\in \Sigma^*x∈Σ∗有x∈Hˉϵ→f(x)∈Htot;x∉Hˉϵ→f(x)∉Htot\quad x\in \bar H_\epsilon \rightarrow f(x)\in H_{tot};\quad x\notin \bar H_\epsilon \rightarrow f(x)\notin H_{tot}x∈Hˉϵ​→f(x)∈Htot​;x∈/​Hˉϵ​→f(x)∈/​Htot​,构造方式如下:

令www是Hˉϵ\bar H_\epsilonHˉϵ​的一个输入。令w′w'w′是来自于HtotH_{tot}Htot​的任意一个输入。

  • 当w不是一个有效的哥德尔数时,令f(w)=w′f(w) = w'f(w)=w′

  • 当w=<M>w=<M>w=<M>是一个有效的哥德尔数时,则令f(w):=<M′>f(w):=<M'>f(w):=<M′>,图灵机M′M'M′在长度为lll的输入x时如下运行:

    首先M′M'M′模拟在lll步骤内模拟输入ϵ\epsilonϵ在M上面的行为。当M在这lll步内停下来,那么M′M'M′就进入无线循环;否则M没有在这lll步内停下来则M′M'M′停止

正确性证明:

  1. w∈Hˉϵ⇒f(w)∈Htotw\in \bar H_\epsilon \Rightarrow f(w)\in H_{tot}w∈Hˉϵ​⇒f(w)∈Htot​

  2. w∉Hˉϵ⇒f(w)∉Htotw\notin \bar H_\epsilon \Rightarrow f(w)\notin H_{tot}w∈/​Hˉϵ​⇒f(w)∈/​Htot​

首先当w不是哥德尔数时,满足w∈Hˉϵw\in \bar H_\epsilonw∈Hˉϵ​和f(w)=w′∈Htotf(w) = w'\in H_{tot}f(w)=w′∈Htot​

当w=<M>w=<M>w=<M>是一个图灵机的哥德尔数时,


解题思路

可判定证明:

  1. 设计出图灵机使其对于所有该语言中的词都接受,不属于该语言的都不接受

  2. 使用可计算性问题交并补的封闭性

  3. 证明该语言和其补集都是递归可枚举的

不可判定证明:

  1. 对角化构成矛盾, 当问题出现对于第i个语言,然后Mi不接受,就可以用
  2. 如果问题描述的是图灵机计算一个偏函数,则可以使用Satz von Rice定理
  3. 规约,将某个已判定不可判定问题规约到该问题上
  4. 子程序技术

递归可枚举证明:

  1. 构造一个图灵机,使得所有属于语言L的词能被这个图灵机接受,其他的不能被接受

不可递归可枚举证明:

  1. 先证明不可判定,然后证明补集递归可枚举即可
  2. 规约,将某个不可递归可枚举的问题规约到该问题上

计算性和复杂度理论2相关推荐

  1. 原创:语义相似度(理论篇)

    原创:语义相似度(理论篇) 如果本文观点有不对的地方,欢迎指正! author:佟学强 开场白:对于事物的理解,一般分3个层次:①看山是山,看水是水②看山不是山,看水不是水③看山是山,看水是水.对AI ...

  2. 可逆计算:下一代软件构造理论

    可逆计算:下一代软件构造理论 众所周知,计算机科学得以存在的基石是两个基本理论:图灵于1936年提出的图灵机理论和丘奇同年早期发表的Lambda演算理论.这两个理论奠定了所谓通用计算(Universa ...

  3. 语义相似度(理论篇)

    如果本文观点有不对的地方,欢迎指正! author:佟学强 开场白:对于事物的理解,一般分3个层次:①看山是山,看水是水②看山不是山,看水不是水③看山是山,看水是水.对AI和nlp的理解,同样会有这三 ...

  4. 使用spark计算文档相似度

    2019独角兽企业重金招聘Python工程师标准>>> 1.TF-IDF文档转换为向量 以下边三个句子为例 罗湖发布大梧桐新兴产业带整体规划 深化伙伴关系,增强发展动力 为世界经济发 ...

  5. ES : 软件工程学的复杂度理论及物理学解释

    系统论里面总是有一些通用的专业术语 比如复杂度.熵.焓,复杂度专门独立出来,成为复杂度理论 文章摘抄于:<非线性动力学> 刘秉政 编著  5.5 复杂性及其测度 热力学的几个专业术语 熵. ...

  6. ML:文本、图像等数值化数据相似度计算之余弦相似度计算三种python代码实现

    ML:文本.图像等数值化数据相似度计算之余弦相似度计算三种python代码实现 目录 相似度计算之余弦相似度计算 输出结果 三种python代码实现

  7. es6与java的相似度_计算字符串的相似度-两种解法

    一直不理解,为什么要计算两个字符串的相似度呢.什么叫做两个字符串的相似度.经常看别人的博客,碰到比较牛的人,然后就翻了翻,终于找到了比较全面的答案和为什么要计算字符串相似度的解释.因为搜索引擎要把通过 ...

  8. 【转载保存】在python中如何用word2vec来计算句子的相似度

    在python中,如何使用word2vec来计算句子的相似度呢? 第一种解决方法 如果使用word2vec,需要计算每个句子/文档中所有单词的平均向量,并使用向量之间的余弦相似度来计算句子相似度,代码 ...

  9. 计算字符串的相似度/华为机试(C/C++)

    题目描述 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把"a"替换为" ...

  10. 欧几里得最短距离公式_推荐算法原理(二)欧几里得距离计算物品间相似度

    在上篇文章中介绍了如何利用余弦定理计算两个物品间的相似度:KiKlaus:推荐算法原理(一)余弦定理计算物品间相似度​zhuanlan.zhihu.com 这种计算方法虽然简单,但是在衡量空间两个向量 ...

最新文章

  1. 图解DotNet框架系列
  2. Web开发者必备的12款超赞jQuery插件
  3. web.xml隐藏html,web.xml
  4. SSM查看详情功能逻辑代码以及关联码表显示
  5. 谷歌40人发表59页长文:为何真实场景中ML模型表现不好?
  6. python下载文件的11种方式_Python 中常见的几种下载文件方法
  7. TSYS2.0对动态碎片的一点理解
  8. Advanced Installer Architect创作工具
  9. Java面试题!mysql格式化查询结果
  10. 四大名著红楼梦第一回 甄士隐梦幻识通灵 贾雨村风尘怀闺秀
  11. NanUI 无边框拖拽
  12. Date类和Calander类
  13. 从零点亮一个led灯
  14. Android相关简述题
  15. 华为交换机查看网口光功率命令
  16. 11款最受欢迎的亚马逊卖家工具
  17. 使用Excel宏来群发邮件或工资条
  18. Python的选择语句
  19. CSS---Chrome 102:新增两个 HTML 属性(-^-)
  20. 第十二届蓝桥杯省赛c++b组—杨辉三角形

热门文章

  1. pip install xx 时遇到There was a problem confirming the ssl certificate...的解决办法
  2. There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED]
  3. 联想电脑 功能键切换正常键盘模式(简单)
  4. 服务器网卡不显示了,重装系统后网络适配器怎么不见了?没有网络适配器解决方法...
  5. php满一百人随机发放奖品,php按照奖品百分比随机抽奖 阿星小栈
  6. python 捕捉和模拟鼠标键盘操作
  7. 支持向量机_4:Outliers
  8. 乐动手环app下载安装_乐动健康手环app下载-乐动健康客户端v2.34 安卓最新版 - 极光下载站...
  9. 方便快捷给 PDF 加水印
  10. 抓包工具Fiddler : 启动后无法打开网页_您的连接不是私密连接_隐私设置错误