理论计算机科学

理论计算机科学家和相关领域的研究人员的问答

3
编写算法的良好做法
这是关于我们如何有效地表达手头的算法。我的本科教学需要这个。 我了解没有编写伪代码的标准方法。不同的作者遵循不同的约定。 如果这里的人们指出他们遵循和思考最佳方法的方式,那将是有帮助的。 是否有任何书籍对此进行了详细介绍?

2
检测两种几乎简单的多边形
我感兴趣的决定给定的非简单的多边形是否是复杂性几乎简单,在任何两个不同的正式感官:弱简单或者非自交。由于这些术语尚未广为人知,因此让我从一些定义开始。 甲多边形 是线段的闭合循环连接一些有限序列在平面上的点的。点称为多边形的顶点,线段称为多边形的边。我们可以通过仅按顺序列出其顶点来指定任何多边形。PPPp0,p1,p2,…,pn−1p0,p1,p2,…,pn−1p_0, p_1, p_2, \dots, p_{n-1}pipip_ipipi+1modnpipi+1modnp_i p_{i+1\bmod n} 如果所有n个顶点都不同并且边仅在其端点处相交,则多边形很简单。等效地,如果多边形对圆是同胚的,并且每个边的长度都为正,则该多边形是简单的。但是,通常,多边形的顶点和边缘可以任意相交,甚至重合。1个nnn 考虑两条多边形路径AAA和BBB,它们的交点是两者的共同子路径(可能是一个点)。我们说,如果AAA和B的端点A(0),B(0),A(1),B(1)在公共子路径A \ cap B的邻域边界上交替,则A BBB 交叉。如果多边形具有两个交叉子路径,则该多边形是自交叉的,否则具有 非自交叉的。2A(0),B(0),A(1),B(1)A(0),B(0),A(1),B(1)A(0), B(0), A(1), B(1)A∩BA∩BA\cap B 如果多边形是一连串简单多边形的极限,则多边形是弱简单的;或者等效地,如果顶点的任意小扰动使多边形简单,则多边形是弱简单的。每个弱简单多边形都是非自相交的。但是,一些非自相交的多边形并不是那么简单。 例如,考虑以下所示的六个点a,b,p,q,x,ya,b,p,q,x,ya,b,p,q,x,y。 多边形abpqyzabpqyzabpqyz很简单;见左图。 多边形papbpqyqzqpapbpqyqzqpapbpqyqzq很弱;中间的图显示了附近的简单多边形。但是,此多边形并不简单,因为它访问了ppp三次。 多边形是自交的,因为子路径和交叉。见右图以获得一些直觉。b p q z y q p apapbpqzqyqpapbpqzqyqpapbpqzqyqbpqzbpqzbpqzyqpayqpayqpa 最后,多边形(绕中间多边形缠绕两次)是非自交叉的,但并不是那么简单。直观地,此多边形的转弯数为,而任何简单多边形的转弯数必须为。(形式上的证明需要进行一些案例分析,部分原因是实际上对于角为多边形,转数实际上没有很好地定义!)± 2 ± 1 0 ∘papbpqyqzqpapbpqyqzqpapbpqyqzqpapbpqyqzqpapbpqyqzqpapbpqyqzq±2±2\pm 2±1±1\pm 10∘0∘0^\circ 更新(9月13日):在下图中,多边形是非自交叉的,并且具有转弯数字1,但是并不是那么简单。多边形可以说有几个交叉的非简单子路径,但没有交叉的简单子路径。(我之所以说“可以说”,是因为目前尚不清楚如何定义两个非简单步行的时间!)abcabcxyzxpqrxzyxabcabcxyzxpqrxzyxabcabcxyzxpqrxzyx 最后,这是我的实际问题: 我们能多快确定给定的多边形是否非自交叉? 我们多快可以确定给定的多边形是否是弱简单的? 可以在时间内解决第一个问题,如下所示。由于存在个顶点,因此存在个顶点到顶点子路径;我们可以测试任何特定的子路径在时间内是否简单(通过蛮力)。对于每对简单的顶点到顶点子路径,我们可以测试它们是否在时间内交叉。但这不可能是最好的算法。n O (n 2)O (n …

2
姚明关于蒙特卡罗算法的极小极大原理
著名的姚明的极小极大原理阐明了分布复杂度和随机复杂度之间的关系。设为输入PPP的有限集和确定性算法的有限集来解决。还令表示输入分布,而表示的概率分布。然后原理说明 XX\mathcal{X}AA\mathcal{A}PPPDD\mathcal{D}RR\mathcal{R}AA\mathcal{A}minA∈AEcost(A,D)≤maxx∈XEcost(R,x)for all D and R.minA∈AEcost(A,D)≤maxx∈XEcost(R,x)for all D and R.\min_{A\in\mathcal{A}}\quad\mathbb{E} cost(A,\mathcal{D}) \leq \max_{x\in\mathcal{X}}\quad\mathbb{E} cost(\mathcal{R},x) \quad\quad\text{for all $\mathcal{D}$ and $\mathcal{R}$}. 这个证明直接来自冯·诺依曼关于零和游戏的极小极大定理。 姚明的原理通常只涉及拉斯维加斯算法,但可以将其推广为蒙特卡洛算法,如下所示。 12minA∈AEcost2ϵ(A,D)≤maxx∈XEcostϵ(R,x)for all D, R and ϵ∈[0,1/2]12minA∈AEcost2ϵ(A,D)≤maxx∈XEcostϵ(R,x)for all D, R and ϵ∈[0,1/2]\frac12 \min_{A\in\mathcal{A}}\quad\mathbb{E} cost_{2\epsilon}(A,\mathcal{D}) \leq \max_{x\in\mathcal{X}}\quad\mathbb{E} cost_{\epsilon}(\mathcal{R},x)\quad\quad\text{for all $\mathcal{D}$, $\mathcal{R}$ and $\epsilon\in [0,1/2]$} 其中costϵ(⋅,⋅)costϵ(⋅,⋅)cost_\epsilon(\cdot,\cdot)表示的蒙特卡洛算法,至多犯错概率的成本ϵϵ\epsilon。 在Yao的原始论文中,定理3中给出了蒙特卡洛算法的关系,而没有证明。有任何提示证明吗?

5
现实世界中的Vertex Cover应用程序
顶点覆盖问题在现实世界中有什么应用? 哪个行业或研究项目使用了基于Vertex Cover问题理论结果而实际实施的软件?特别是,是否在二手软件中实现了以下任何理论结果? 顶点覆盖的近似算法 顶点覆盖的指数时间算法 顶点覆盖的固定参数可处理算法 顶点覆盖的内核化算法

1
是否有任何理由相信
我想知道是否有任何理由相信或相信N L ≠ L?ñL = LNL=LNL=LñL ≠ LNL≠LNL\neq L 已知的是,。上的去随机化的文献[R 大号是非常有说服力的是- [R 大号= 大号。有谁知道的一些文章或观点令人信服的ň 大号≠ 大号?ñ大号⊂ 大号2NL⊂L2NL \subset L^2[R 大号RLRLR L = LRL=LRL=LñL ≠ LNL≠LNL\neq L

1
NP硬度是否意味着P硬度?
如果问题是NP困难(使用多项式时间缩减),是否表示它是P困难(使用对数空间或NC缩减)?看起来很直观,如果与NP中的任何问题一样困难,那么它应该与P中的任何问题一样困难,但是我看不到如何链接减少项并获得对数空间(或NC)减少项。

3
用整数分解表示的整数与分解一样难吗?参考要求
我正在寻找以下结果的参考: 在因式分解表示中添加两个整数与在通常的二进制表示形式中分解两个整数一样困难。 (我很确定它在那里,因为这是我在某个时候想知道的,然后当我终于看到它印刷时感到很兴奋。) 问题是“在因式表示形式中添加两个整数”:给定两个数和y的素数分解,输出x + y的素数分解。请注意,针对此问题的朴素算法在标准二进制表示形式中使用分解作为子例程。xxxyyyx+yx+yx+y 更新:感谢Kaveh和Sadeq的证明。显然,更多的证据可以证明是更好的选择,但是我也想鼓励人们在寻找参考文献时提供更多帮助,正如我所说的那样,我很确定存在。我记得在一篇论文中读到它时有其他有趣且很少讨论的想法,但我不记得那些其他想法是什么或论文的总体含义。

1
使用Ford-Fulkerson和DFS的最大流量
这个问题是关于使用DFS查找增强路径时Ford-Fulkerson最大流量算法的时间复杂度的。 有一个众所周知的示例,显示使用DFS可能需要最大流中线性的迭代次数,例如,参见上面链接的Wikipedia页面。 但是,我对这个示例并没有真正的信服:标准DFS实现不会表现出B和C作为路径的第一个节点(使用Wikipedia页面的顶点名称)之间交替的行为。 因此,让我们施加一个非常自然的条件,即每当DFS访问节点 ,它总是以相同的顺序检查u的邻居。仍然有使用DFS的FF使用大量迭代的示例吗?uuuuuu 作为变体,假设我们具有附加的属性,即邻居的不同顺序与某些任意但固定的全局顶点顺序一致。这有什么区别吗? 在我看来,这是一个非常基本的问题;如果答案众所周知,我会事先道歉,但我不是流量专家,有些谷歌搜索没有发现任何问题。 编辑: 答案是肯定的,仍然有示例。看到的图2 本文。在这些示例中,具有DFS的FF进行了指数级(按顶点数计)迭代。似乎很容易证明这是紧密的,即迭代次数始终以为界(与容量的值无关)。2O(n)2O(n)2^{O(n)}

5
问题教学的可计算性
我很难教授可计算函数的概念。我试图提出一个想法,为什么像希尔伯特(Hilbert)/阿克曼(Ackermann)/戈德尔(Godel)/图灵/教堂/ ...这样的研究人员发明了“可计算性”的概念。学生们立即问:“可计算性是什么意思?” 除非我教他们图灵机,然后回答“如果图灵机对其进行计算,则该函数是可计算的”,我不会回答。 所以, 是否有不需要使用图灵机,λ演算或类似计算模型的可计算性描述?即使是直观的描述也足够了。

1
BosonSampling论文如何避免对复杂矩阵进行简单分类?
Scott Aaronson和Alex Arkhipov 在“线性光学的计算复杂性”(ECCC TR10-170)中指出,如果经典计算机可以有效地模拟量子计算机,则多项式层次将崩溃至第三级。激励问题是从由线性光学网络定义的分布中采样。这种分布可以表示为特定矩阵的永久性。在经典情况下,矩阵的所有项都是非负的,因此存在概率多项式时间算法,如Mark Jerrum,Alistair Sinclair和Eric Vigoda(JACM 2004,doi:10.1145 / 1008731.1008738)。在量子情况下,条目是复数。请注意,在一般情况下(当条目不要求是非负数时),Valiant的经典1979年结果即使在一个恒定因子内也无法近似永久值。 本文定义了由矩阵A定义的分布和一个采样问题d一种DAD_A一种AA BosonSampling 输入:矩阵样本:来自分布D A一种AA d一种DAD_A 使用硬度结果似乎不足以证明经典世界和量子世界之间存在分离,因为特定量子设置中的矩阵类别有可能全部采用特殊形式。它们可能具有复杂的条目,但仍可能具有很多结构。因此,即使一般问题是#P-hard,也可能存在针对此类矩阵的有效采样过程。 如何在论文中使用BosonSampling避免简单分类? 本文使用了许多我在量子复杂性方面没有的背景知识。考虑到该站点上的所有量子人物,我非常感谢朝着正确方向发展的指针。如果要发现在特定实验设置中看到的复值矩阵类别实际上对应于易于采样的一类分布,这些论点将如何成立?还是量子系统中固有的某种东西可以保证不会发生这种情况?

1
计算中的能源考虑
为了检验我的理解,我想分享一些关于计算能量需求的想法。这是我先前问题的跟进,可能与Vinay 有关保护法的问题有关。 从热力学的角度来看,对我而言,可以认为在某种程度上可以将计算视为类似于沿水平线移动砝码:唯一的能量损失是由于摩擦力造成的,原则上可以是摩擦力,任意缩小。 在没有耗散力的理想设置(可逆计算机的机械模拟)中,根本不需要任何能量消耗。您仍然必须提供能量以加速重量,但减速时可以将其全部恢复。可以通过投入足够的能量来任意减小运行时间(更准确地说,如果考虑到相对性,则运行时间从下方以,其中是距离)。dd/ cd/cd/cddd 类似地,一台可逆计算机不需要能源消耗,但是在计算结束时就可以收回能源投资,并且可以通过投入足够的能源以达到相对论的极限,来任意缩短运行时间(如http:// arxiv中所述)。赛斯·劳埃德(org / abs / quant-ph / 9908043)。 但是,存在与计算机构造相关的能源成本。通常,这将取决于实现细节,但是我猜想我们可以为其设置一个下限: 假设我们的计算机有三个(经典或量子)寄存器:Input,Output和Ancilla。 的输入和输出寄存器可以读出和由用户写入,而附属物寄存器是不可访问的。 在每次计算开始时,Ancilla寄存器均以固定(例如全零)状态开始,到计算结束,它将返回到相同的固定状态。因此,除非有外部噪音,否则在构建计算机时,Ancilla状态仅需要初始化一次。 因此,根据Landauer原理,我推测用位(或qubits)的Ancilla建造一台可逆计算机至少需要焦耳能量,其中是玻尔兹曼常数,是环境温度系统正在构建中。n k B T ln 2 k B Tñnnñ ķ乙Ťln2nkBTln⁡2n k_B T \ln2ķ乙kBk_BŤTT 问题: 以上考虑是否正确? 如果将可逆计算机安装在温度为的环境中,然后将其移动到温度为的环境中,将会发生什么情况?我想真正的可逆计算机无法真正冷却。原则上,如果我理解正确的话,它甚至不应具有正确定义的温度。T ' &lt; TŤTTT′&lt;TT′&lt;TT' < T 如果我们考虑使用不可逆的计算机,会发生什么?一台不可逆的计算机通常可以使用较少的ancilla位来执行相同的计算,而且,由于它与周围环境发生了热相互作用,因此我们可以安排其初始Ancilla状态是基态的一部分,因此我们可以通过简单地允许它来对其进行初始化冷却,不提供任何能量。当然,由于不可逆,我们必须为每次计算支付能源成本。 (与Kurt对Vinay问题的回答有关) 在机械类比中,我仅考虑沿水平线的运动。如果还沿垂直方向提起重物,则将需要额外的能量消耗(或者,如果减轻重物,则将回收能量)。是否有这种垂直运动的计算模拟,并且该过程是否消耗或产生了一定数量的量? 更新: 在我看来,拆卸计算机时,原则上可以完全收回构建计算机所需的能源成本(我认为)。 因此,对于每次计算,您都可以构建一台专用可逆计算机,该计算机具有所需的辅助位,添加更多能量以使其运转,等待计算完成,然后拆除计算机以收回所有已投入的资金。能源。因此,你可以定义能源投资的计算为: ,其中是实际的空间复杂度(数附属物位),是实际的时间复杂度(数量的时间步长)和是假设总运行时间恒定,则每个时间步的能量与速度折衷项。n s n t snskBTln2+ntsnskBTln⁡2+ntsn_s k_B …


3
半定式程序分析的教育资源还是调查?
在设计近似算法时,有时会求解一个半定程序,然后进行舍入步骤。一个经常使用的示例来说明这一点。(例如,参见Vijay Vazirani的近似算法。) 是否有超越Max-Cut问题的良好教育资源或调查资料来解释更复杂的舍入算法和用于其分析的技术?我正在考虑以下情况:SDP解决方案的向量在超球体上分布不均匀,长度不同或具有其他属性,使得分析变得更加困难。

6
课程:安全中的逻辑/正式方法
目前,我开设了一门小课程(在安全级别上为时两个小时的讲座),涉及安全中的逻辑方法,尽管标题“ 安全中的形式方法”可能更合适。它简要介绍了以下主题(以及相关的逻辑方法): 数字版权管理和政策执行(一般形式化,模态逻辑,通过自动机执行) 带有证明的代码和带有证明的认证(证明理论,逻辑系统,Curry-Howard同构,验证) 访问控制(非经典逻辑,证明理论) 堆栈检查(编程语言语义,上下文对等,双仿真) 当然,该课程有多个目标,其中一个目标是吸引潜在的研究生。 在未来几年中,该课程可能会扩展为常规课程,这将需要更多内容。鉴于这里的人的背景与我的背景完全不同,我想知道您将在此课程中包括哪些内容。

1
计算具有多边形障碍物的平面中最短路径的复杂性
假设我们在平面中得到了几个不相交的简单多边形,并且在每个多边形之外有两个点和t。欧几里德最短路径问题是计算从s到t不与任何多边形内部相交的欧几里德最短路径。为了具体起见,让我们假设s和t的坐标以及每个多边形顶点的坐标是整数。ssstttssstttsssttt 这个问题可以在多项式时间内解决吗? 当然,大多数计算几何体会立即回答是:John Hershberger和Subhash Suri描述了一种算法,该算法可在时间内计算欧几里得最短路径,并且此时间范围在代数计算树模型中是最佳的。不幸的是,Hershberger和Suri的算法(以及此之前和之后的几乎所有相关算法)似乎都需要从严格的意义上讲精确的实数算法。O(nlogn)O(nlog⁡n)O(n\log n) 如果所有内部顶点都是障碍顶点,则将其称为有效多边形路径;每条欧几里德最短路径均有效。任何有效路径的长度都是整数的平方根之和。因此,比较两个有效路径的长度需要比较两个平方根之和,我们不知道如何在多项式时间内进行。 此外,将平方根和问题的任意实例简化为等效的欧几里德最短路径问题似乎是完全合理的。 那么:是否有多项式时间算法来计算欧几里得最短路径?还是NP问题很难?或平方根总和很难?或者是其他东西? 一些注意事项: 使用标准漏斗算法,至少在给定多边形三角剖分的情况下,可以在时间内计算一个多边形内部(或外部)的最短路径,而不会出现任何奇怪的数值问题。O(n)O(n)O(n) 实际上,浮点算术足以计算最短至浮点精度的路径。我只对确切问题的复杂性感兴趣。 约翰·坎尼(John Canny)和约翰·里夫(John Reif)证明了3维空间中的相应问题是NP困难的(道德上是因为最短路径的数量可能成倍增加)。 崔俊,、尤根·塞伦和叶建庚描述了多项式时间近似方案。 Simon Kahan和Jack Snoeyink考虑了有关简单多边形中最小链接路径的相关问题的类似问题。

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.