Questions tagged «reference-request»

要求文献提供有关特定,狭窄问题的问题。

2
测量FSA语法之间“相似性”的方法?
我正在使用一种模式匹配算法,该算法生成一个非循环的有限状态自动机,该自动机接受给定的文本字符串及其所有子字符串。FSA算法正在音乐流(例如MIDI数据)的符号表示上运行。音乐流已经过预处理,可以将每首歌曲分为未标记的“段”。一个FSA被用于每首歌曲的每个段中产生:如果我有歌曲,各自分成ÿ段,我会Ñ ⋅ ý单独的FSA。nnnyyyn⋅yn⋅yn \cdot y 我想将每个部分的FSA与我的语料库中的其他FSA进行比较。最终目标将是在相似性空间内进行聚类,并根据其构造指标的相似性提出细分的“类别”。因此,特别令人感兴趣的是每个FSA定义的语法(大致对应于片段中音乐内容的某些组成部分)。是否有一些技巧可以比较这样的东西?尽管可能存在更好/更有效的技术,但我想到了KL散度(例如,使用它比较与给定FSA相关联的字符串的分布)。 同样,如果这个问题是(1)轻而易举的或(2)表示有更深的误解或(3)在其他地方回答了,则表示歉意。我是一个真正的小伙子,伙计们!

2
我们能否从NP问题之间的Cook缩减中构造Karp缩减?
关于Cook和Karp约简的关系,我们有几个问题。显然,Cook约简(多项式时间Turing约简)与通常使用的Karp约简(多项式时间多一归约)没有定义相同的NP完整性概念。特别是,即使P NP ,Cook还原也无法将NP与co-NP分开。因此,我们不应该在典型的归约证明中使用Cook归约法。≠≠\neq 现在,学生们发现了一个经过同行评审的作品[1],该作品使用Cook归约法来表明问题是NP难题。我没有给他们从那里得到的减少的满分,但是我想知道。 因为库克还原法确实定义了与Karp还原法相似的硬度概念,所以我认为它们应该能够将N从NPC中分离出来。共同NPC,假设P NP。特别地,(类似)以下应为真:≠≠\neq L1∈NP,L2∈NPCKarp,L2≤CookL1⟹L1∈NPCKarpL1∈NP,L2∈NPCKarp,L2≤CookL1⟹L1∈NPCKarp\qquad\displaystyle L_1 \in \mathrm{NP}, L_2 \in \mathrm{NPC}_{\mathrm{Karp}}, L_2 \leq_{\mathrm{Cook}} L_1 \implies L_1 \in \mathrm{NPC}_{\mathrm{Karp}}。 重要的点是要避免上述不敏感的L1∈NPL1∈NPL_1 \in \mathrm{NP}。现在,根据NPC的定义,我们“知道” L2≤KarpL1L2≤KarpL1L_2 \leq_{\mathrm{Karp}} L_1。 正如Vor所指出的那样,这并不是那么容易(适应符号): 假设L1∈NPCCookL1∈NPCCookL_1 \in \mathrm{NPC}_{\mathrm{Cook}},然后根据定义,所有语言L2∈NPCKarp⊆NPL2∈NPCKarp⊆NPL_2 \in \mathrm{NPC}_{\mathrm{Karp}} \subseteq \mathrm{NP}我们有L2≤CookL1L2≤CookL1L_2 \leq_{\mathrm{Cook}} L_1;如果上述含义正确,则L1∈NPCKarpL1∈NPCKarpL_1 \in \mathrm{NPC}_{\mathrm{Karp}},因此NPCKarp=NPCCookNPCKarp=NPCCook\mathrm{NPC}_{\mathrm{Karp}} = \mathrm{NPC}_{\mathrm{Cook}}仍然是一个悬而未决的问题。 两个NPC之间可能存在其他差异,但共同NP。 如果没有,是否有任何已知的(非平凡的)判据可用于进行库克归约时隐含Karp-NP硬度,即我们是否知道谓词具有PPP L2∈NPCKarp,L2≤CookL1,P(L1,L2)⟹L1∈NPCKarpL2∈NPCKarp,L2≤CookL1,P(L1,L2)⟹L1∈NPCKarp\qquad\displaystyle L_2 \in \mathrm{NPC}_{\mathrm{Karp}}, L_2 \leq_{\mathrm{Cook}} L_1, P(L_1,L_2) …

1
线性规划的强对偶定理的简短证明
考虑线性程序 Primal:Ax⃗ ≤b⃗ maxc⃗ Tx⃗ Primal:Ax→≤b→maxc→Tx→\begin{array}{|ccc|} \hline Primal: & A\vec{x} \leq \vec{b} \hspace{.5cm} & \max \vec{c}^T\vec{x} \\ \hline \end{array} Dual:c⃗ ≤y⃗ TAminy⃗ Tb⃗ Dual:c→≤y→TAminy→Tb→\begin{array}{|ccc|} \hline Dual: & \vec{c} \leq \vec{y}^TA \hspace{.5cm} & \min \vec{y}^T\vec{b} \\ \hline \end{array} 弱对偶定理指出,如果x⃗ x→\vec{x}和y⃗ y→\vec{y}满足约束,则 c⃗ Tx⃗ ≤y⃗ Tb⃗ c→Tx→≤y→Tb→\vec{c}^T\vec{x} \leq \vec{y}^T\vec{b}。它具有使用线性代数的简短证明: c⃗ Tx⃗ ≤y⃗ …

1
给定一个弦图
如果图没有诱导出长度为4或更大的循环,则它是弦的。甲集团树Ť的ģ是一个树,其中该树的顶点的最大小集团ģ。T中的边对应于最小分隔符。在弦图中,不同的集团树的数量可以是顶点数量的指数。GGG444ŤŤTGGGGGGŤŤT 的降低派系图表 是所有集团树的并集ģ。也就是说,它具有所有相同的顶点和所有可能的边。给定G的计算C r(G )的复杂度是多少?C[R(G )C[R(G)C_r(G)GGGC[R(G )C[R(G)C_r(G)GGG 我想我曾经看过一个演示文稿,声称可以在O (m + n )时间内计算而无需证明。这意味着它与计算G的集团树一样容易。是否有参考文献可以证实这一点,或者给出了较慢的算法来计算?C[R(G )C[R(G)C_r(G)O (m + n )Ø(米+ñ)O(m+n)GGG

3
二维蛋糕的公平划分
我对公平分配土地的程序(即无嫉妒的划分,或至少按比例划分的划分)感兴趣。 与深入研究的蛋糕分割问题相反,土地分割是二维的,即用户的喜好在水平和垂直方向上都可以变化。因此,将算法限制为并行割是不切实际的。 到目前为止,我发现的唯一参考文献是Karthik Iyer和Michael Huhns,2007年。他们说:“到目前为止,对于通用土地分割问题,我们还没有遇到任何建设性(算法)解决方案。所有论文都为该问题的合格版本提供了存在性解决方案。” 他们自己证明了用于比例土地分割的O(n ^ 2)算法,但有一定的局限性(例如,n个代理中的每个代理都必须用效用1 / n标记n个矩形区域,并且如果矩形的重叠不太多,该算法保证每个代理都能获得其矩形之一)。 您是否知道有关此问题的任何新参考?我对实用算法特别感兴趣,它们可能是近似的。

3
程序分析入门
我正在寻找有关程序分析入门的资源。 我找到的关于该主题的唯一一本书是尼尔森与尼尔森的书。 除此之外,似乎只有“编译器”书中的“程序分析”将作为一章或类似内容。 人们是否还知道其他资源?


7
在哪里可以找到已发表的研究论文?
来自正在考虑攻读计算机科学博士学位的人的观点。 我在决定攻读博士学位时难以确定我的研究重点。另请参阅关于学术界的这个问题。 因此,我认为阅读/掌握正在进行的研究和发表哪些研究论文的最新信息是...灵感的好来源?加上要知道的好知识。 是否可以在中心位置/数据库/良好的起点查看最近发表的CS研究论文,或者它们全部隐藏在所写大学的网站内?

2
快速k不匹配字符串匹配算法
我正在寻找一种快速的k不匹配字符串匹配算法。给定长度为m的模式字符串P和长度为n的文本字符串T,我需要一种快速(线性时间)算法来查找P匹配T的子字符串(最多不匹配k个)的所有位置。这与k差问题(编辑距离)不同。不匹配意味着子字符串和模式在最多k个位置具有不同的字母。我真的只需要k = 1(最多1个不匹配),因此针对k = 1的特定情况的快速算法也足够了。字母的大小为26(不区分大小写的英文文本),因此空间要求不应随字母的大小而增长太快(例如,我相信FAAST算法占用的字母空间大小是指数的,因此仅适用于蛋白质和基因序列)。 在最坏的情况下,基于动态编程的方法将趋于O(mn),这将太慢。我相信对此有Boyer-Moore算法的修改,但是我无法获得此类论文。我没有订阅访问学术期刊或出版物的权限,因此任何参考文献都必须在公共领域。 我将不胜感激任何指针,或指向免费文档的引用,或针对此问题的算法本身。

1
确定给定字符串与字符串集合的相似程度
我不确定这个问题是否属于这里,如果没有,我深表歉意。我要做的是开发一种编程方式,通过该方式我可以概率确定给定的字符串是否“属于”一袋字符串。例如,如果我有10,000个美国城市名称,然后有字符串“费城”,我想根据我已经知道的美国城市名称,用某种定量方法来衡量“费城”是美国城市名称的可能性。虽然我知道在这种情况下我无法将真实的城市名称与假的城市名称区分开,但我至少会希望排除诸如“ 123.75”和“快速的红狐狸跳过懒惰的棕色狗”之类的字符串一些门槛。 首先,我研究了Levenshtein距离,并探讨了如何将其应用于至少与我要解决的问题类似的问题。我发现的一个有趣的应用是窃检测,其中一篇论文描述了如何使用Levenshtein距离和改进的Smith-Waterman算法对纸张进行打分,并根据它们是给定原纸的抄袭版本的可能性进行评分。我的问题是,是否有人可以用其他可能对我有帮助的既定算法或方法为我指明正确的方向。我感觉这可能是过去有人试图解决的问题,但到目前为止,我的Google-fu无法使我成功。


2
如何对仿真器输入优化问题进行分类,应该使用哪种算法进行处理?
由于问题的性质,我必须包括许多背景信息(因为我的问题是:如何缩小此范围?)也就是说,据我所知,可以总结为: 有哪些方法可以在极大的组合搜索空间中找到局部最优值? 背景 在工具辅助的超级游戏社区中,我们希望为视频游戏机或仿真器提供特制的(不是实时生成的)输入,以最大程度地减少成本(通常是完成时间)。这是目前做的方法是通过玩游戏帧一帧,并确定各帧的输入,经常重做多次运行的部分(例如,最近公布的运行塞尔达传说:时之笛有总共198,590次重试)。 使这些运行达到其目标通常可以归结为两个主要因素:路线规划和遍历。前者比后者更具“创造力”。 路线规划是确定玩家应该整体导航以完成游戏的方式,并且通常是奔跑过程中最重要的部分。例如,这类似于选择使用哪种排序方法。世界上最好的气泡排序根本不会胜过100万个元素的快速排序。 然而,在追求完美的过程中,遍历(路线的执行方式)也是一个巨大的因素。继续类推,这就是实现排序算法的方式。如果没有非常具体的输入帧,甚至无法执行某些路由。这是最繁琐的工具辅助过程,因此完成完整生产的过程要花费数月甚至数年。对于人类而言,这不是一个困难的过程,因为它可以尝试对同一想法进行不同的变体,直到被认为是最好的,但是人类只能在注意力范围上尝试如此多的变体。在这里,将计算机应用于此任务似乎是正确的。 我现在的目标是尝试使Nintendo 64系统的遍历过程自动化。对于这个问题的搜索空间是远远太大用蛮力的方法来攻击。N64运行的n帧段具有2个30n可能的输入,这意味着仅30帧输入(每秒30FPS)就有2 900个可能的输入;测试这些潜在的解决方案是不可能的,更不用说整整运行两个小时了。 但是,我对尝试(或者甚至不想尝试)完整的全局全局优化没有兴趣。相反,在给定初始输入的情况下,我想近似某个运行特定段的局部最优值(对于某种半全局优化,则近似为n个局部最优值)。也就是说,给定一条路线和该路线的初始遍历:搜索该遍历的邻居以最大程度地降低成本,但不要退化为尝试所有可以解决问题的情况。 因此,我的程序应采用启动状态,输入流,评估函数,并通过使评估结果最小化来输出局部最优值。 当前状态 目前,我已经处理了所有框架。这包括通过仿真器的操作,设置和拆卸,配置等评估输入流。作为各种占位符,优化器是一种非常基本的遗传算法。它只是评估输入流的总数,存储/替换获胜者,并通过更改获胜者流来生成新的总数。这个过程一直持续到满足一些任意标准,例如时间或世代号。 注意,到目前为止,该程序最慢的部分将是对输入流的评估。这是因为这涉及到模拟n帧游戏。(如果有时间,我要编写自己的仿真器来提供此类功能的钩子,但是现在,我剩下的工作是合成消息并为来自另一个进程的现有仿真器修改内存。)在我的主计算机上,相当现代,评估200帧大约需要14秒。因此,我更喜欢一种算法(给定的选择),该算法可以最大程度地减少函数求值的次数。 我在框架中创建了一个同时管理模拟器的系统。这样,我可以立即以线性性能尺度评估多个流,但是实际上,在系统性能下降之前,正在运行的仿真器的数量只能是8到32(并且实际上是在推动它)。这意味着(根据选择),可以在进行评估时执行处理的算法将非常有益,因为优化器可以在等待评估时进行一些繁重的工作。 作为测试,我的评估功能(对于游戏Banjo Kazooie)是每帧求出从玩家到目标点的距离之和。这意味着最佳解决方案是尽可能快地接近该点。仅将突变限制在模拟摇杆上,就花了一天的时间才得到一个好的解决方案。(这是在我实现并发之前。) 添加并发之后,我启用了A按钮按下的突变,并在需要跳转的区域执行了相同的评估功能。在运行24个仿真器的过程中,从最初空白的输入流中花费了大约1个小时才能达到目标,但可能要花几天时间才能达到接近最佳的水平。 问题 我面临的问题是,我对数学优化领域的了解不足,无法知道如何正确地对我的优化问题建模!例如,我可以大致遵循Wikipedia上描述的许多算法的概念,但是我不知道如何对问题进行分类或如何为该类别选择最新的算法。 据我所知,我在一个非常大的邻里中遇到一个组合问题。最重要的是,评估功能非常不连续,没有梯度,并且有很多平稳状态。而且,约束不多,但如果可以解决问题,我很乐意添加表达约束的能力;我想允许指定例如不应使用“开始”按钮,但这不是一般情况。 题 所以我的问题是:如何建模?我要解决哪种优化问题?我应该使用哪种算法?我不害怕阅读研究论文,所以让我知道我应该阅读什么! 直觉上,遗传算法不可能是最好的,因为它似乎并没有真正学习。例如,如果按Start(开始)似乎总是使评估变得更糟(因为它使游戏暂停),那么应该有一些设计师或大脑可以学习:“在任何时候按Start都是没有用的。” 但是,即使达到这个目标也不是那么简单,因为有时按启动是最佳选择,例如在Super Mario 64中所谓的“暂停向后跳远” !在这里,大脑必须学习一个更为复杂的模式:“按下开始是没有用的,除非玩家处于这种非常特定的状态,并且会继续进行某些按键组合。” 似乎我应该(或机器可以学习)以更适合修改的其他方式表示输入。每帧输入似乎太细粒度了,因为真正需要的是“动作”,它可能跨越多个帧...但是许多发现是逐帧进行的,因此我不能完全排除它(上述暂停向后长跳需要帧级精度)。似乎也可以串行处理输入,这是可以利用的事实,但我不确定如何使用。 目前,我正在阅读(反应式)禁忌搜索,超大规模邻域搜索,基于教学的优化以及蚁群优化。 除了随机遗传算法,这个问题是否真的很难解决?还是实际上是一个很久以前解决的琐碎问题?感谢您的阅读,并预先感谢您的任何答复。


3
寻找数学/ CS符号字典
数学和CS论文中有时会使用令人眼花symbols乱的符号。然而,许多人假设基本的熟悉程度似乎很少在一个地方教授。我正在寻找类似以下内容的字典,尤其是从CS角度来看。 它将列出所有基本的数学符号并给出其含义和示例。它将讨论有时以等效方式使用的符号。它会指出常见的初学者错误。 它将讨论围绕单个符号的不同含义的微妙之处(很像字典中同一单词的多个定义)。 它不仅是每个符号的非常简洁的描述,例如像“子集”这样的单词描述。 它会显示符号有时是如何“过载”的。例如,(xy)(xy)\binom{x}{y}可以将zzz作为整数,但是有时zzz可以是具有此符号的集合,这意味着要从该集合中选择元素。[n][n][n]有时表示整数1…n1…n1 \ldots n,或者有时表示它是一个单元素的数组。 它可能会讨论如何用不同的符号或引用它们的等效方法(但更清楚)来描述各种不同的“对象”以及对这些对象可能的操作。换句话说,有点像数学对象的API。 即有时也将是一本针对如何呈现数学写作的不同细节的“风格手册”。对于任何人在数学堆栈交换中写问题的人来说,这都是非常有用的资源,因为许多问题由于不适合棘手的数学约定而无法理解。 一些书籍介绍具有许多这些功能。但是理想情况下将是单独的处理。另外,理想情况下当然是在线的。虽然有乳胶符号表,但它们并不能真正满足上述许多标准。 有没有人看过符合这些特征的“符号词典”? (或者,如果不存在像这样的良好引用,这似乎是一个出色的Wiki或FAQ项目。)

1
是否存在一种有效的算法来确定图是否具有平凡的自同构性?
我正在研究与拉丁方有关的问题,并且我想要一种基本上可以归结为决策问题的方法: 输入:有限的简单图形G。 输出:YES如果G具有非平凡的自同构,NO否则。 因此... 问题:是否存在一种有效的算法来确定图是否具有平凡的自同构性? 我们可以使用Nauty或Bliss(可能还有其他一些软件包)来计算整个自同构组,但是我不需要它。我需要确定的只是它是否微不足道。 从理论上讲,这种决策问题在某种程度上“计算整个自同构组”的复杂性是等效的。我不确定。 对我而言,“有效”基本上意味着“在实践中比计算整个同构组更快”,但是我也对它的理论感兴趣。

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.