Algorithm 帮助确定特定问题是否为经典Comp-Science问题

Algorithm 帮助确定特定问题是否为经典Comp-Science问题,algorithm,comparison,Algorithm,Comparison,我在VBA中解决了一个制造过程问题,虽然随着越来越多的数据进入到文件中,它的运行速度越来越慢,但它现在已经被搁置了一段时间。我认为现在终于到了用VBA之外的另一种语言重写一个更优雅的解决方案的时候了,但我很好奇是否有人知道这是一个经典的计算机科学问题,是否给它起了一个学术名称,以便我能研究一个更快的算法 我将以下面的要点形式对其进行概述: 假设存在不同类型的小部件。。。。叫他们 小部件类型A 小部件类型B 小部件类型A有各种串行接口 数字 小部件类型B有各种串行接口 数字 此外, 您可以知道小部

我在VBA中解决了一个制造过程问题,虽然随着越来越多的数据进入到文件中,它的运行速度越来越慢,但它现在已经被搁置了一段时间。我认为现在终于到了用VBA之外的另一种语言重写一个更优雅的解决方案的时候了,但我很好奇是否有人知道这是一个经典的计算机科学问题,是否给它起了一个学术名称,以便我能研究一个更快的算法

我将以下面的要点形式对其进行概述:

假设存在不同类型的小部件。。。。叫他们

小部件类型A

小部件类型B

小部件类型A有各种串行接口 数字

小部件类型B有各种串行接口 数字

此外,

您可以知道小部件是什么类型(a) 或B)基于序列号 单独地序列号附加在 建造日期(即2010-08-10)。。。如果 序列号存在,但缺少日期, 小部件存在,但尚未完成 正在建造中

小部件类型B可以包含(一个或多个) a)部件类型a的部件; 因此,小部件类型B是串行的 编号可以有子序列号的列表 来自A的数字

类似地,小部件类型A可以包含 (一个或多个)来自 控件类型B;因此,小部件类型 A的序列号可以有一个 B的子序列号

最后,

存在一个小部件类型C

小部件类型C只能存在(be 构建)如果给定一个小部件类型a 小部件类型A有一个生成日期 附加到序列号上,以及所有的 相应的子序列号(从 小部件类型(Bs)具有生成日期 附加到序列号上

同样,你可以有另一个案例 该窗口小部件类型C只能存在(be) 构建)如果给定了控件类型B,则 小部件类型B有一个构建日期 附加到序列号上,以及所有的 相应的子序列号(从 窗口小部件类型为)具有生成日期 附加到序列号上

如您所见,如果小部件A和B有许多子序列,则需要进行大量的交叉检查和引用,以确保小部件C是可生产的


我知道这是一个冗长的描述,但是如果这是一个普通计算机科学问题的变体,有什么想法吗?

我不认为这是一个解决方案,而是一个如何解决这个问题的想法。假设问题是有序依赖的,这公平吗?要生成小部件C,需要生成小部件A和小部件B。对于要生成的小部件A,可能存在对小部件B的依赖性(也可能存在循环,但序列号的值不同)


鉴于上述情况,您可以将小部件表示为非循环有向图,不是吗?两个节点(小部件)之间的定向边定义了依赖关系。例如,Wdget C我不认为这里有问题。如果您可以找到一个小部件A(或小部件B)上有日期,并且其所有子序列号上都有日期,则可以构建小部件C。看看序列号,看看…嗨,基思,我想循环的问题是它会变得更复杂。。。Gangadhar在他的回答中指出了这一点。小部件的情况下怎么会有周期?如果带有serialnumber1的widgetA需要带有serialnumber2的widgetB和带有serialnumber3的widgetC,那么widgetC不能要求带有serialnumber1的widgetA,不是吗?这里面不可能有循环,不是吗?可能的(我认为)是整个图的子图之间的循环。这些是你关心的周期吗?