计算机科学

为学生,研究人员和计算机科学从业者提供的问答

2
密集的NP完整语言表示P = NP
我们说,如果存在多项式使得,则语言是密集的所有换句话说,对于任何给定的长度,仅存在多项式中长度为多个单词,它们不在中 p | Ĵ ç ∩ Σ ñ | ≤ p (Ñ )ñ ∈ Ñ。n nJ⊆Σ∗J⊆Σ∗J \subseteq \Sigma^{*}ppp|Jc∩Σn|≤p(n)|Jc∩Σn|≤p(n) |J^c \cap \Sigma^n| \leq p(n)n∈N.n∈N.n \in \mathbb{N}.nnnññnĴ。Ĵ。J. 我目前正在研究的问题要求显示以下内容 如果存在密集的ñPñPNP语言,则P=NPP=NPP = NP 本文所建议的是考虑将多项式简化为 -,然后构造一种算法,该算法试图满足给定的公式,同时生成元素S A T C N F J c。333SATSATSATCNFCNFCNFJc.Jc.J^c. 我想知道的是 还有更直接的证据吗?在更一般的情况下知道这个概念吗?

3
二进制最小堆中的增加键和减少键
在许多关于二进制堆的讨论中,通常仅将减小键列为最小堆的受支持操作。例如,CLR第6.1章和此Wikipedia页面。为什么通常不会为最小堆列出增加密钥?我想可以通过将增加的元素(x)迭代替换为其最小的子元素来在O(height)中做到这一点,直到其子元素都不大于x为止。 例如 IncreaseKey(int pos, int newValue) { heap[pos] = newValue; while(left(pos) < heap.Length) { int smallest = left(pos); if(heap[right(pos)] < heap[left(pos)]) smallest = right(pos); if(heap[pos] < heap[smallest]) { swap(smallest, pos); pos= smallest; } else return; } } 以上正确吗?如果没有,为什么?如果是,为什么没有列出最小堆的增加密钥?

1
与图灵机有关的有趣度量空间
在这个问题中,我们仅考虑在所有输入上都停止的图灵机。如果k∈Nk∈Nk \in \mathbb{N}然后通过TkTkT_k我们表示图灵机,其代码是kkk。 考虑以下功能 s(x,y)=min{k∣|L(Tk)∩{x,y}|=1}s(x,y)=min{k∣|L(Tk)∩{x,y}|=1}s(x,y) = \min\{k \mid |L(T_k) \cap \{x,y\}| = 1\} 换句话说,是最小的图灵机的代码,它可以精确识别字符串现在我们可以定义以下地图s(x,y)s(x,y)s(x,y)x,y.x,y.x,y. d(x,y)={2−s(x,y)0if x≠y,otherwise.d(x,y)={2−s(x,y)if x≠y,0otherwise.d(x,y) = \left\{ \begin{array}{ll} 2^{-s(x,y)} & \mbox{if } x \ne y, \\ 0 & \mbox{otherwise.} \end{array} \right. 可以快速验证)在上引起度量空间(实际上是超度量)Σ ∗。d(x,y)d(x,y)d(x,y)Σ∗.Σ∗.\Sigma^{*}. 现在,我想证明如果是一致连续的函数,那么对于每种递归语言L,也是递归的。f:Σ∗↦Σ∗f:Σ∗↦Σ∗f:\Sigma^{*} \mapsto \Sigma^{*}f−1(L)f−1(L)f^{-1}(L) 换句话说,让为一个映射,使得对于每个都有一个,使得对于字符串然后 然后我们需要证明是一种递归语言,因为L是递归的。ε > 0 δ > 0 X ,ý ∈ Σ *fffϵ>0ϵ>0\epsilon …

6
具有infima的部分排序优先级的优先级队列
我有一些优先级为复合类型的对象,并且仅部分排序。我需要按此优先级顺序选择对象(即每次产生最少的项)。但是,我宁愿选择队列是否稳定(从某种意义上说,如果存在多个最小元素,则应该首先返回最旧的元素),而不是随意完成订单。 是否有任何可用于部分排序的堆数据结构?还是修改了常规优先级队列才能使用它?我需要的算法的常见选择是简单的二进制或四进制堆,但这不适用于部分排序。 优先级值支持: 一个≼ b b ≼ 一个≼≼\preccurlyeqa≼ba≼ba \preccurlyeq bb≼ab≼ab \preccurlyeq a也可能为假。在这种情况下,我写。a⋚̸ba⋚̸ba \not\lesseqgtr b 查找INFI(glb)和uprema(lub)。是最大y,因此y \ preccurlyeq x_i。计算n个值的最小值需要O(n)时间。ý ý ≼ X 我 Ñ ø (Ñ )inf(xi)inf(xi)\inf(x_i)yyyy≼xiy≼xiy \preccurlyeq x_innnO(n)O(n)O(n)下确界(并确)每一组的存在。 可以定义部分排序的线性扩展。将其用于优先级队列是一种简便的方法,因为该算法确实可以正常工作。但是顺序会影响性能,插入顺序看起来应该最好,以避免最坏的情况。 另外,我要在其中使用的算法需要知道队列中所有优先级的最小值。 优先级具有现实意义,但可能会发生变化,因此依靠它们可能拥有的其他属性似乎并不可行。 注意:二进制堆不适用于部分排序。假设一个带有aaa,bbb和c的二进制堆ccc,其中a≼ca≼ca \preccurlyeq c和a⋚̸ba⋚̸ba \not\lesseqgtr b以及a⋚̸ca⋚̸ca \not\lesseqgtr c。它们按该顺序放置,所以 a (0) / \ b (1) c (2) 现在已插入d。下一个自由头寸是3,b的左孩子bbb,所以我们得到 a (0) / …

1
我想知道如果这甚至可能的,因为{anbncn∣n≥0}∉CFL{anbncn∣n≥0}∉CFL\{a^n b^n c^n \mid n \geq 0\} \not\in \mathrm{CFL}。因此,一个PDA,可以区分词w∈{anbncn∣n≥0}w∈{anbncn∣n≥0}w\in\{a^n b^n c^n \mid n \geq 0\}从其余{a∗b∗c∗}{a∗b∗c∗}\{a^*b^*c^*\}倒不如接受它,这听起来矛盾给我。 我想我需要利用PDA的不确定性,但是我没有主意。如果您能提供一些建议,我将不胜感激。

1
图灵机的通用仿真
令为固定的时间可构造函数。fff TM的经典通用仿真结果(Hennie和Stearns,1966年)指出,有两个磁带TM 使得UUU 的描述中,TM ,和⟨M⟩⟨M⟩\langle M \rangle 输入字符串,xxx 运行步骤并在x上返回M的答案。和克可以采取以任何函数ω (˚F (Ñ )LGg(|x|)g(|x|)g(|x|)MMMxxxggg。ω(f(n)lgf(n))ω(f(n)lg⁡f(n))\omega(f(n)\lg f(n)) 我的问题是: 单个磁带TM上最著名的模拟结果是什么?上面的结果还成立吗? [HS66]有什么改进吗?我们可以更快地在两带TM上模拟步的TM 吗?我们可以采取g ^ (ñ )是在ω (˚F (ñ ))代替ω (˚F (ñ )LG ˚F (ñ ))?f(n)f(n)f(n)g(n)g(n)g(n)ω(f(n))ω(f(n))\omega(f(n))ω(f(n)lgf(n))ω(f(n)lg⁡f(n))\omega(f(n)\lg f(n))


2
神经网络必须始终收敛吗?
介绍 步骤1 我编写了一个标准的反向传播神经网络,为了对其进行测试,我决定将其映射为XOR。 这是一个2-2-1网络(具有tanh激活功能) X1 M1 O1 X2 M2 B1 B2 为了进行测试,我手动将顶部中层神经元(M1)设置为AND门,将下层神经元(M2)设置为OR门(如果为true,则输出1;如果为false,则输出-1)。 现在,我还手动将连接M1-O1设置为-.5,将M2-O1设置为1,将B2设置为-.75 因此,如果M1 = 1且M2 = 1,则总和为(-0.5 +1 -0.75 = -.25)tanh(0.25)= -0.24 如果M1 = -1和M2 = 1,则总和为((-0.5)*(-1)+1 -0.75 = .75)tanh(0.75)= 0.63 如果M1 = -1和M2 = -1,则总和为((-0.5)*(-1)-1 -0.75 = -1.25)tanh(1.25)= -0.8 对于“第一次迭代”来说,这是一个相对较好的结果。 第二步 然后,我对这些权重进行了一些修改,然后使用误差传播算法(基于梯度下降)对它们进行训练。在此阶段,我保持输入神经元和中间神经元之间的权重不变,只是修改中间(和偏差)与输出之间的权重。 为了进行测试,我将权重设置为和.5 .4 .3(分别针对M1,M2和偏差) 但是,在这里,我开始遇到问题。 我的问题 我将学习率设置为0.2,然后让程序遍历训练数据(ABA …

1
蛮力Delaunay三角剖分算法的复杂度
在马克·德·伯格等人的“计算几何:算法和应用”一书中,有一种非常简单的蛮力算法,用于计算Delaunay三角剖分。该算法使用了非法边的概念-可能不会出现在有效Delaunay三角剖分中的边,必须用其他一些边替换。在每个步骤中,该算法仅查找这些非法边缘并执行所需的位移(称为“ 边缘翻转”),直到没有非法边缘为止。 算法LegalTriangulation(TTT) 输入。一些三角TTT点集的PPP。 输出。的合法三角剖分PPP。 而 TTT包含非法边缘pipjpipjp_ip_j do \quad让pipjpkpipjpkp_i p_j p_k和pipjplpipjplp_i p_j p_l邻近于两个三角形pipjpipjp_ip_j。 \quad从T删除,然后添加p k p l。返回牛逼。pipjpipjp_ip_jTTTpkplpkplp_kp_l TTT 我听说这种算法在最坏的情况下会在时间内运行;但是,我不清楚这句话是否正确。如果是,如何证明这一上限?O(n2)O(n2)O(n^2)

1
如何测试多边形相对于任意线是否为单调?
定义:多边形的平面被称为相对于直线单调,如果每线正交相交最多两次。大号大号PPPPLLLLLLPPP 给定多边形,是否可以确定是否存在任何线,使得多边形相对于是单调的?如果是,怎么办?大号P 大号PPPLLLPPP大号大号L 以前,我问了一个相关的问题(在那里,我问如何确定多边形是单调相对于一个特定的行),但现在我感兴趣的情况下,当是不提供或预先规定。大号大号L

1
用于确定n个离散单调函数的前导交点的多项式和多元空间算法
一些前沿问题:我是一名休闲计算机科学家和受雇的软件工程师。因此,请原谅,如果此提示似乎有点超出范围,我会无事可做时会例行数学模拟和开放式问题。 在研究黎曼假设时,我确定可以根据每个先前质数的倍数形成的所有n − 1个互补函数的交集,将质数差减少为递归关系(敏锐的观察者会注意到,这是对的埃拉托色尼的筛)。如果这对您完全没有意义,请不用担心-它仍然是最重要的。n−1n−1n-1 看到这些函数之间的关系,我意识到可以将每个素数的下一个实例简化为这些函数的第一个交集,然后无限重复地进行下去。但是,我无法确定这在多项时间和多项空间中是否易于处理。因此:我正在寻找的是一种可以确定多项式时间和空间中离散(如果适用的话,是单调)函数的第一个交点的算法。如果当前不存在或可能不存在这样的算法,则简短的证明或说明就足够了。nnn 到目前为止,我能找到的最接近的是Dykstra的投影算法(是的,这是RL Dykstra,而不是Edsger Dijkstra),我认为它可以解决整数编程的问题,因此是NP难的。类似地,如果对所有适用点进行传递集交集(因为它们目前被认为是有界的),由于当前弱界,我们仍必须将自己限制在指数空间以便递归任何实数素数(因此,每个素数空间)。ln(m)ln⁡(m)\ln(m)mmmenene^nnnn 在全球范围内,我想知道我对减少问题的理解是否是错误的。我不希望很快解决Riemann假设(或这个领域中任何深层,开放的问题)。相反,我正在尝试通过解决问题来了解更多信息,并且在研究中遇到了障碍。

2
聚类问题的最优贪婪
| P| =n|P|=n|P| = nķkkķkkñnnC= { c1个,c2,… ,cķ}C={c1,c2,…,ck}C = \{ c_1,c_2,\ldots,c_k\}ķkkD p i c j成本(C ^)= 最大值一世分Ĵd (p一世,cĴ)cost(C)=maximinjD(pi,cj)\text{cost}(C) = \max_i \min_j D(p_i, c_j)dDD表示输入点和中心点之间的欧几里得距离。每个点将自己分配给最近的聚类中心,将顶点分为k个不同的聚类。p一世pip_iCĴcjc_jķkk 该问题称为(离散)聚类问题,它是NP困难的。从NP完全控制集问题的简化可以看出,如果存在ρ &lt; 2的问题的ρ-近似算法,则P = NP。ķkkNPNP\text{NP}NPNP\text{NP}ρρ\rhoρ &lt; 2ρ&lt;2\rho < 2P = NPP=NP\text{P} = \text{NP} 最佳逼近算法非常简单直观。一个第一纬点p ∈ P任意,并把它在该组Ç聚类中心。然后,选择一个下一个群集中心,使其距离所有其他群集中心尽可能远。因此,当| C | &lt; ķ,我们发现反复的点Ĵ ∈ P的量,距离d (Ĵ ,Ç )最大化,并且将其添加到Ç。一次| C | …

2
斯科特连续函数:替代定义
我真的很挣扎于此属性: 令为相干空间,而f :C l (X )→ C l (Y )为单调函数。˚F是连续的,当且仅当˚F (⋃ X ∈ d X )= ⋃ X ∈ d ˚F (X ),对于所有的,使得是一个有向集。X,YX,YX,Yf:Cl(X)→Cl(Y)f:Cl(X)→Cl(Y)f: Cl(X) \rightarrow Cl(Y)ffff(⋃x∈Dx)=⋃x∈Df(x)f(⋃x∈Dx)=⋃x∈Df(x)f(\bigcup_{x\in D} x)=\bigcup_{x \in D}f(x)D⊆Cl(X)D⊆Cl(X)D \subseteq Cl(X)DDD 向集合被这样定义:偏序是一个有向组当且仅当这样和。Ç 升(X )表示X的派系:{ X &SubsetEqual; | X | | 一,b ∈ X ⇒ 一个连贯b }。D⊆D⊆D \subseteq ∀x,x′∈D∀x,x′∈D \forall …

2
任务完成时间的变化如何影响制造跨度?
比方说,我们有大量的任务τ 1,τ 2,。。。,τ Ñ和的相同集合(在性能方面)处理器ρ 1,ρ 2,。。。,ρ 米其完全并行操作。对于感兴趣的场景,我们可以假定米≤ ñ。每个τ 我需要时间/周期的一定量来完成,一旦它被分配给一个处理器ρ Ĵτ1,τ2,...,τn\tau_1, \tau_2, ..., \tau_nρ1,ρ2,...,ρm\rho_1, \rho_2, ..., \rho_mm≤nm \leq nτi\tau_iρj\rho_j,并且一旦分配,就无法重新分配,直到完成(处理器总是最终完成分配的任务)。让我们假定每个τ 我需要的时间量/周期X 我,在事先不知道,从一些离散的随机分布截取。对于这个问题,我们甚至可以假设一个简单的分布:P (X 我 = 1 )= P (X 我 = 5 )= 1 / 2,并且所有X 我是两两独立的。因此μ 我 = 3和στi\tau_iXiX_iP(Xi=1)=P(Xi=5)=1/2P(X_i = 1) = P(X_i = 5) = 1/2XiX_iμi=3\mu_i = 3 2= 4σ2=4\sigma^2 …

1
渐近下界与密码学有关吗?
一般认为,诸如指数硬度之类的渐近下界表示问题“固有地困难”。“本来就很难”破解的加密被认为是安全的。 但是,渐近下界并不排除存在大量但有限类别的问题实例(例如,所有大小小于实例)容易的可能性。10100010100010^{1000} 有没有理由认为基于渐近下界的密码会赋予任何特定级别的安全性?安全专家会考虑这种可能性,还是只是将其忽略? 一个例子是使用基于大量分解为其主要因素的活板门功能。曾经有人认为这是固有的困难(我认为指数是猜想),但现在许多人认为可能存在多项式算法(如素数测试一样)。似乎没有人非常在乎缺少指数下限。 我相信,已经提出了其他陷井门功能,这些功能被认为是NP困难的(请参阅相关问题),有些甚至可能具有较低的界限。我的问题更基本:渐近下界是什么?如果不是,那么任何密码的实际安全性是否与渐近复杂性完全相关?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.