图灵机

《网络攻防》- 学习心得

巧了我就是萌 提交于 2020-03-04 12:47:07
目录 冯诺依曼体系结构理解 设计思路 图灵机的理解 图灵的生平 人工智能 程序=指令+数据 组成 运行机制 图灵完备 冯诺依曼体系结构理解 当前计算机主要是基于冯诺依曼体系结构设计的,下面就简单分析一下冯诺依曼体系结构的计算机是如何工作的,首先下面的图就是冯诺依曼体系结构图。 主要由五大部件组成 1.存储器用来存放数据和程序 2.运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中 3.控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果 4.输入设备用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等 5.输出设备可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等 冯诺依曼体系结构的指令和数据均采用二进制码表示;指令和数据以同等地位存放于存储器中,均可按地址寻访;指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数所在存储器中的位置;指令在存储器中按顺序存放,通常指令是按顺序执行的,特定条件下,可以根据运算结果或者设定的条件改变执行顺序;机器以运算器为中心,输入输出设备和存储器的数据传送通过运算器。 然而现在的计算机基本以存储器作为中心 但是由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,通常将它们合起来统称为中央处理器,简称CPU,把输入输出设备简称为I/O设备

「知乎」如何证明不可计算的函数比可计算的函数多? - 高旭旭的博客

谁都会走 提交于 2020-02-27 12:54:50
这篇文章转载自 我在知乎上的回答 严谨的证明的话,可以使用「形式语言」( Formal language )来证明: 在可计算理论和计算复杂度理论中,每个「计算问题」都被描述为一个一个「形式语言」,即字符串的集合。比如对于判断一个图是否是无向连通图这个问题:我们可以写为一个描述所有无向连通图的集合: 由于图灵机只能接受字符串,所以这里的尖括号表示对图的「编码」。出于简单,我们全部使用现实计算机所使用的字母表 $Sigma = {0, 1}$,所以「编码」即一个对象的二进制字符串描述。 如果我们能构造出一个图灵机来「决定」这个「形式语言」,即可以判断一个「输入」是否属于这个集合(membership 与 non-membership),那么我们可以说我们用「图灵机」描述了一个「算法」来计算这个问题,而这个「计算问题」所对应的函数是「可计算的」,否则是「不可计算的」。(注 1) 那么,如果我们有一个包含了所有「可计算函数」的集合,这个集合会有多大呢? 由于 所有「可计算函数」总有一个对应的「图灵机」来计算它 每一个「图灵机」都可以被「编码」为一个不同的 0、1 序列,比如 000,010… 0、1 序列、即二进制,总是可以被转换为一个十进制数的 所以,我们这个集合实际上是与整数集 $Z$ 一样大(等势)的,我们把这个集合表示为 $Sigma^{*}$。 易知 $Z$ 是「无穷可数

元学习系列(六):神经图灵机详细分析

女生的网名这么多〃 提交于 2020-01-25 02:08:57
神经图灵机是LSTM、GRU的改进版本,本质上依然包含一个外部记忆结构、可对记忆进行读写操作,主要针对读写操作进行了改进,或者说提出了一种新的读写操作思路。 神经图灵机之所以叫这个名字是因为它通过深度学习模型模拟了图灵机,但是我觉得如果先去介绍图灵机的概念,就会搞得很混乱,所以这里主要从神经图灵机改进了LSTM的哪些方面入手进行讲解,同时,由于模型的结构比较复杂,为了让思路更清晰,这次也会分开几个部分进行讲解。 概述 首先我们来看一下神经图灵机是怎么运作的: 神经图灵机和LSTM一样,在每个时刻接受输入并返回输出,输入首先会通过controller处理,controller把处理过的输入以及一系列参数传给读写头,读写头会根据这些东西,计算权重,并对记忆矩阵memory进行消除、写入、读取操作,最后读头返回读取的记忆给controller,controller就可以根据这个记忆计算该时刻的输出,然后就可以等待下一时刻的输入了。 记忆权重 个人觉得神经图灵机主要改进了LSTM的门结构,以前,我们通过对上一时刻的输出和当前时刻的输入分别进行线性变换并相加,再用sigmoid函数进行处理,得到一个用于记忆或者遗忘的权重向量,再和长期记忆按位相乘。这种权重的计算机制是通过神经网络基于数据进行学习,当然可行。而神经图灵机则从注意力的角度,用更接近人的思维,提出分别从content

NP完全性理论与近似算法

本小妞迷上赌 提交于 2020-01-23 07:19:46
一、图灵机 根据有限状态控制器的当前状态及每个读写头读到的带符号,图灵机的一个计算步可实现下面3个操作之一或全部。 (1)改变有限状态控制器中的状态。 (2)清除当前读写头下的方格中原有带符号并写上新的带符号。 (3)独立地将任何一个或所有读写头,向左移动一个方格(L)或向右移动一个方格(R)或停在当前单元不动(S)。 k带图灵机可形式化地描述为一个7元组(Q,T,I,δ,b,q0,qf),其中: (1) Q是有限个状态的集合。 (2)T是有限个带符号的集合。 (3)I是输入符号的集合 。 (4)b是唯一的空白符,b∈T-I。 (5)q0是初始状态。 (6)qf是终止(或接受)状态。 (7)δ是移动函数。 它是从Q×Tk的某一子集映射到Q×(T×{L,R,S})k的函数。 图灵机M的时间复杂性T(n)是它处理所有长度为n的输入所需的最大计算步数。如果对某个长度为n的输入,图灵机不停机,T(n)对这个n值无定义。 图灵机的空间复杂性S(n)是它处理所有长度为n的输入时,在k条带上所使用过的方格数的总和。如果某个读写头无限地向右移动而不停机,S(n)也无定义。 确定型图灵机 有限状态集Q,状态q0:初始状态;qy:接受状态;状态qn:不接受状态。 字符集合{0, 1, b} ;其中b是空格符。 转换功能: 输入x = 101000b 执行顺序: q0输入1 (q0,r)右移磁头到0

P/NP问题

拟墨画扇 提交于 2020-01-12 09:36:39
1 什么是 P 问题? 这里的P代表Polynomial。P问题就是可以有一个确定型图灵机在多项式时间内解决的问题。即目前那些存在O(n), O(n k ), O(nlogn)等多项式时间复杂度解法的问题。比如排序问题、最小生成树、单源最短路径。直观的讲,我们将 P 问题视为可以较快解决的问题。 2 什么是 NP 问题? 那些可以在非确定型图灵机上在多项式时间内解决的问题。(在确定型图灵机(我们在使用的计算机吗?)上可以在多项式时间内验证解是否正确,但不能在多项式时间内找出最优解的问题)。非确定型图灵机:可以理解为无限个确定型图灵机的集合。应该是说的一种强大的目前还不存在的,也与目前的计算机无法比较的一种计算机吧。也许它具备跳跃思维、能联想能学习能推理…… NP是目前为止还未找到多项式解法的问题。对于这些问题,我们目前也不知道是否存在多项式的解法。所以叫非确定多项式问题。 NP 代表“ N on-deterministic(非确定性) P olynomial(多项式)”而 不是 代表“ N on- P olynomial(非多项式)。 典型的NP问题是旅行商问题(TSP)。 P 与 NP 问题的关系? NP问题如果找到了多项式解法就是P问题了。NP问题是目前为止我们还未找到多项式解法的问题。我们也不能证明它一定存在或不存在多项式解法。调查显示有的人持肯定态度

[nlp] NTM神经图灵机(Neural Turing Machine-DeepMind)

℡╲_俬逩灬. 提交于 2020-01-11 04:20:10
关于NTM:神经图灵机 神经图灵机包含两个基本组成部分: 神经网络控制器 和 记忆库 。 控制器通过输入输出向量和外界交互。 不同于标准神经网络的是,控制器还会使用 选择性的读写操作 和 记忆矩阵 进行交互。类比于图灵机,我们将 网络的参数化 这些操作的输出称为**“读头” 。 最关键的是,每个组成部分都是 可微的**,这样可以更加直接地使用梯度下降进行训练。 我们通过定义 模糊的读写操作 根据一个 更高或者更低的度(degree) 和的 记忆中的所有元素 进行交互(而不是像在正常的图灵机或者数字计算机那样一次只是处理一个单个的元素)。 这个模糊的度 由一种 注意力聚焦机制 确定,将每个读写操作限制在记忆中的一小块上,忽略其他部分。因为和记忆的交互是 高度稀疏 的,NTM 倾向于无干扰地存储数据。进入注意力聚焦的记忆位置由读头特定的输出确定。这些输出定义了一个规范化的权重在记忆矩阵的行上(对应于内存位置)。 每个权重,对应于一个读头或者写头,定义了在每个位置读写的程度 。读头可以在单个位置相当重视或者分散精力在若干位置。 来源: CSDN 作者: 熊熊的小心心 链接: https://blog.csdn.net/Trance95/article/details/103624118

「知乎」如何证明不可计算的函数比可计算的函数多? - 陈威严的博客

寵の児 提交于 2019-12-25 23:55:10
这篇文章转载自 我在知乎上的回答 严谨的证明的话,可以使用「形式语言」( Formal language )来证明: 在可计算理论和计算复杂度理论中,每个「计算问题」都被描述为一个一个「形式语言」,即字符串的集合。比如对于判断一个图是否是无向连通图这个问题:我们可以写为一个描述所有无向连通图的集合: 由于图灵机只能接受字符串,所以这里的尖括号表示对图的「编码」。出于简单,我们全部使用现实计算机所使用的字母表 $Sigma = {0, 1}$,所以「编码」即一个对象的二进制字符串描述。 如果我们能构造出一个图灵机来「决定」这个「形式语言」,即可以判断一个「输入」是否属于这个集合(membership 与 non-membership),那么我们可以说我们用「图灵机」描述了一个「算法」来计算这个问题,而这个「计算问题」所对应的函数是「可计算的」,否则是「不可计算的」。(注 1) 那么,如果我们有一个包含了所有「可计算函数」的集合,这个集合会有多大呢? 由于 所有「可计算函数」总有一个对应的「图灵机」来计算它 每一个「图灵机」都可以被「编码」为一个不同的 0、1 序列,比如 000,010… 0、1 序列、即二进制,总是可以被转换为一个十进制数的 所以,我们这个集合实际上是与整数集 $Z$ 一样大(等势)的,我们把这个集合表示为 $Sigma^{*}$。 易知 $Z$ 是「无穷可数

程序语言编年史

喜欢而已 提交于 2019-12-11 16:18:48
程序语言编年史 概述 这次咱们聊下程序语言的发展史,除了程序语言,还会着重讲下程序语言密切相关的计算机的发展史,顺带讲下同时期与程序语言和计算机相关领域的发展,为什么要把程序语言和计算机相关领域放到一块讲, 因为这些领域和计算机的关系太密切了, 程序语言是 程序员 和计算机沟通交流唯一方式, 计算机的计算模型的发展, 还有计算机的应用领域的发展都对程序语言有着深刻的影响. 通过计算机相关领域的发展, 我们能从中可以找到一些影响程序语言关键因素, 看看 这些因素是如何推动程序语言一步步发展成今天这个样子的. 计算机发展史 计算机的发展可以分为两条线进行追溯, 一条是计算理论的发展, 一条是计算机实体的发展, 下面我们看看计算理论和计算机的发展轨迹. 理论模型的演变 计算理论是近现代才出现的一个数学分支,主要研究可计算性,计算的复杂度,计算模型(计算理论中两大计算模型:图灵机,lambda演算),形式语言(编程语言也是一种形式语言).我们可以看到计算理论主要研究的对象的名字中有三个带了 计算 ; 计算 这个词很常见,好像和这些词汇所表达的意思挺相近:四则运算,数值计算,逻辑运算.本节就以 计算 为主线介绍下计算是什么,以及其演变历史,还有它和计算理论的关系. 史前数学:数值计算 公元前2500年,在美索不达米亚的一块泥板上记录着谷仓里面有1152000,每个人分7分,可以分给多少人

Algorithm lesson final exam

纵饮孤独 提交于 2019-12-05 18:10:25
1、algorithm analysis O B/W/AV/AMOR,混入其他问题,设计+分析 2、传统算法(肯定要考) 1)divide and conquer master therem、 recursive tree、分析复杂度、递归树加起来得到最终结果 2)greedy algorithm example sort->select 拟阵 独立系统的贪心模板,直接得到近似比 3)dynamic programming sub-optimal structrue、编辑距离 3、graph algorithm 1)exproration bfs and dfs、最小生成树 2)最短路,single path all pair 负环、负边 3)max-flow 优化方式 4、turing machine Np/NPC NP-hard np-reduction 5、approximation greedy/sequential/local search/lp rouding 三种算法的设计、图算法、图灵机、近似算法 来源: https://www.cnblogs.com/elpsycongroo/p/11939165.html