复杂性是软件质量的关键要素。本文探讨了测量代码复杂性的问题,并讨论了一项受控实验的结果,以比较测量代码复杂性的不同观点和方法。参与者(27 名程序员)被要求阅读并(尝试)理解一组程序,而这些程序的复杂性则通过不同的方法和视角进行评估:(a)经典的代码复杂性指标,如 McCabe 和 Halstead 指标,(b)基于评分代码构造的认知复杂性指标,(c)来自 SonarQube 等最先进工具的认知复杂性指标,(d)依赖于使用眼动追踪直接评估程序员行为特征(例如阅读时间和重访)的人本指标,以及(e)使用脑电图 (EEG) 评估的认知负荷/心理努力。以人为本的观点与参与者使用 NASA 任务负荷指数 (TLX) 对理解程序所需的心理努力的主观评估相得益彰。此外,代码复杂度的评估在程序级别和尽可能低的代码构造/代码区域级别上进行测量,以识别可能引发程序员对代码理解难度感知的复杂性激增的实际代码元素和代码上下文。使用 EEG 测量的程序员认知负荷被用作参考,以评估不同指标如何表达(人类)理解代码的难度。大量实验结果表明,流行的指标(如 V(g) 和 SonarSource 工具的复杂性指标)与程序员对代码复杂性的感知存在很大偏差,并且通常不会显示预期的单调行为。本文
柯尔莫哥洛夫-所罗门诺夫-柴廷(Kolmogorov,简称 Kolmogorov)复杂度由 Solomonoff [ 1 ] 和 Kolmogorov [ 2 ] 独立提出,后来柴廷 [ 3 ] 也提出了这一复杂度。该复杂度基于可以模拟任何其他图灵机的通用图灵机的发现 [ 4 , 5 ]。单个有限字符串的柯尔莫哥洛夫复杂度是能够正确生成该字符串作为输出的通用图灵机的最短程序的长度,也是对字符串所含信息量的度量。已经证明,虽然存在多种图灵机,但最短程序的长度是不变的,在底层图灵机的选择下,其差异最多为一个加法常数 [ 6 ]。柯尔莫哥洛夫复杂度理论广泛应用于问答系统 [ 7 ]、组合学 [ 8 ]、学习理论 [ 9 ]、生物信息学 [ 10 ] 和密码学 [ 11 , 12 ] 等领域。1985 年,Deutsch [ 13 ] 引入量子图灵机作为量子计算机的理论模型。量子图灵机扩展了经典图灵机模型,因为它们允许在其计算路径上发生量子干涉。Bernstein 和 Vazirani [ 14 ] 表明量子图灵机在近似意义上具有通用性。最近,一些研究者提出了一些柯尔莫哥洛夫复杂度的量子版本。Vitányi [ 15 ] 提出了量子柯尔莫哥洛夫复杂度的定义,它度量近似量子态所需的经典信息量。Berthiaume 等人 [ 16 ] 提出了一种基于柯尔莫哥洛夫复杂度的量子柯尔莫哥洛夫复杂度定义。 [16] 提出了一种新的量子比特串量子柯尔莫哥洛夫复杂度定义,即通用量子计算机输出所需字符串的最短量子输入的长度。Zadeh [17] 提出了模糊计算的第一个公式,他基于图灵机和马尔可夫算法的模糊化,定义了模糊算法的概念。随后,Lee 和 Zadeh [18] 定义了模糊语言的概念。Santos [19] 证明了模糊算法和模糊图灵机之间的等价性。接下来,Wiedermann [20] 考虑了模糊计算的可计算性和复杂性。利用 Wiedermann 的工作,Bedregal 和 Figueira [21] 证明了不存在可以模拟所有模糊图灵机的通用模糊图灵机。随后,李[22,23]研究了模糊图灵机的一些变体。他证明了
1 法国图卢兹法国民航大学 OPTIM 团队;firstname.lastname@enac.fr 2 马德里卡罗来纳大学三世分校生物工程与航空航天工程系,西班牙;masolera@ing.uc3m.es * 通信地址:delahaye@recherche.enac.fr † 现地址:7 Avenue Edouard Belin 31055 图卢兹 ‡ 这些作者对这项工作做出了同等贡献。
信息可以通过量子单元内电子电荷的配置进行编码 [5]。在 QCA 中,没有电流流动。单元内的一对电子根据电子相互作用的原理改变其位置。QCA 技术是绕过基于晶体管的器件的理想解决方案,因为它在功耗和速度方面存在许多限制 [3]。QCA 技术具有许多有趣的特性,例如低功耗、高频处理和小特征尺寸 [6]。数字系统的当前趋势是降低电路的复杂性;在这种情况下,QCA 会派上用场。在这项工作中,提出了一种新的 2:1 QCA-MUX 结构。所提出的门在面积、复杂性(单元数)和成本方面都更胜一筹。2. 背景
与 Haimeng Zhao、Ishaan Kannan、Yihui Quek、Hsin-Yuan Huang 和 Matthias C. Caro 合作
1级列表量级:Hub.lexile.com/lexile-Grade-Level-Charts 2 Atos Analyzer:Renaissance Learning www.renlearn.com/ar/overview/atos/1级列表量级:Hub.lexile.com/lexile-Grade-Level-Charts 2 Atos Analyzer:Renaissance Learning www.renlearn.com/ar/overview/atos/
量子电路的标准模型假设操作以固定的连续“因果”顺序应用。近年来,放宽这一限制以获得因果不确定计算的可能性引起了广泛关注。例如,量子开关使用量子系统来连贯地控制操作顺序。已经证明了几种临时的计算和信息理论优势,这引发了这样一个问题:是否可以在更统一的复杂性理论框架中获得优势。在本文中,我们通过研究一般高阶量子计算下布尔函数的查询复杂性来解决这个问题。为此,我们将查询复杂性的框架从量子电路推广到量子超图,以便在平等的基础上比较不同的模型。我们表明,最近引入的具有因果顺序量子控制的量子电路类无法降低查询复杂度,并且因果不确定超级映射产生的任何潜在优势都可以用多项式方法限制,就像量子电路的情况一样。尽管如此,我们发现,当利用因果不确定超级映射时,使用两个查询计算某些函数的最小误差严格较低。
摘要:无线电探测和测距(雷达)技术的发展使得手势识别成为可能。在基于热图的手势识别中,特征图像尺寸很大,需要复杂的神经网络来提取信息。机器学习方法通常需要大量数据,而用雷达收集手势非常耗时耗能。因此,提出了一种基于调频连续波(FMCW)雷达和合成手势特征生成器的低计算复杂度手势识别算法。在低计算复杂度算法中,对雷达原始数据实施二维快速傅里叶变换以生成距离-多普勒矩阵。之后,应用背景建模来分离动态物体和静态背景。然后选择距离-多普勒矩阵中幅度最高的箱来定位目标并获得其距离和速度。可以利用天线维度上此位置的箱来使用傅里叶波束控制计算目标的角度。在合成生成器中,使用Blender软件生成不同的手势和轨迹,然后直接从轨迹中提取目标的距离、速度和角度。实验结果表明,当以合成数据作为训练集,以真实数据作为测试集时,模型在测试集上的平均识别准确率可达89.13%。这表明合成数据的生成在预训练阶段可以做出有意义的贡献。
脑机接口 (BCI) 是一种允许人类操作者仅使用心理命令来控制与周围世界交互的末端执行器的系统 [1]。该系统由一个测量设备组成,用于记录人类用户的大脑活动,然后将其处理为驱动系统末端执行器的命令。BCI 涉及两种测量方式:一种是侵入式测量,这种测量允许高复杂度控制,但通常不可行;另一种是非侵入式测量,这种测量提供的信号质量较低,但更实用。一般来说,尚未开发出既能高效、稳健、可扩展地执行高复杂度控制,又能保留非侵入式测量实用性的 BCI 系统。在这里,我们利用反馈信息理论的最新成果 [2、3] 来填补这一空白,将 BCI 建模为一个通信系统,并部署一种人类可实现的交互算法,用于对高复杂度机器人群进行非侵入式控制。我们构建了一个可扩展的机器人行为词典,BCI 用户可以轻松高效地搜索该词典,正如我们通过大规模用户研究测试我们的交互算法的可行性、对(虚拟和真实)机器人群进行完整 BCI 系统的用户测试以及根据理论模型验证我们结果的模拟所证明的那样。我们的结果提供了一个概念证明,即如何通过具有低复杂度和噪声输入的 BCI 系统有效地控制一大类高复杂度效应器(甚至超出机器人技术)。
许多量子算法需要使用量子纠错来克服物理量子比特固有的不可靠性。然而,量子纠错会带来一个独特的性能瓶颈,即 T 复杂度,这会使算法作为量子程序的实现比在理想硬件上运行得更慢。在这项工作中,我们发现控制流的编程抽象(例如量子 if 语句)会导致程序的 T 复杂度呈多项式增加。如果不加以缓解,这种减速会削弱量子算法的计算优势。为了能够推理控制流的成本,我们提出了一个成本模型,开发人员可以使用该模型准确分析量子纠错下程序的 T 复杂度并找出减速的根源。为了降低这些成本,我们提出了一组程序级优化,开发人员可以使用它来重写程序以降低其 T 复杂度,使用成本模型预测优化程序的 T 复杂度,然后通过一种简单的策略将其编译为高效电路。我们在 Spire(Tower 量子编译器的扩展)中实现程序级优化。使用一组 11 个使用控制流的基准程序,我们通过经验证明成本模型是准确的,并且 Spire 的优化可以恢复渐近高效的程序,这意味着它们在错误校正下的运行时 T 复杂度等于它们在理想硬件上的时间复杂度。我们的结果表明,在将程序编译成电路之前对其进行优化可以比将程序编译成低效电路然后调用先前工作中发现的量子电路优化器产生更好的结果。在我们的基准测试中,8 个经过测试的量子电路优化器中只有 2 个能够以渐近有效的 T 复杂度恢复电路。与这 2 个优化器相比,Spire 的编译时间减少了 54 × –2400 ×。