Parallel processing 编写程序的专家系统? 我在头脑中提出了一个想法,开发一个高级软件来处理矩阵代数方程,精确地处理张量操作,用几个标准,如系统的尺寸、可用内存等,来生成优化的C++代码。

Parallel processing 编写程序的专家系统? 我在头脑中提出了一个想法,开发一个高级软件来处理矩阵代数方程,精确地处理张量操作,用几个标准,如系统的尺寸、可用内存等,来生成优化的C++代码。,parallel-processing,expert-system,Parallel Processing,Expert System,在精神上类似于张量收缩引擎TCE的东西,但专门面向生成优化代码而不是通用代码。 最终的结果是希望在我的领域是在生产并行程序专家的软件 这种开发是否属于专家系统的范畴 考虑到约束条件,还有哪些其他项目在相同的代码生成领域工作 它不会被称为专家系统,至少在这个概念的传统意义上不会 专家系统是基于规则的推理机,因此,所涉及的专业知识被明确地封装在规则中。你所建议的系统,虽然可能将对问题领域本质的洞察封装在某种线性代数模型中,但与其说是专家系统,不如说是一个黑箱。专家系统的一个特点是,它们可以对自己的

在精神上类似于张量收缩引擎TCE的东西,但专门面向生成优化代码而不是通用代码。 最终的结果是希望在我的领域是在生产并行程序专家的软件

  • 这种开发是否属于专家系统的范畴
  • 考虑到约束条件,还有哪些其他项目在相同的代码生成领域工作

它不会被称为专家系统,至少在这个概念的传统意义上不会

专家系统是基于规则的推理机,因此,所涉及的专业知识被明确地封装在规则中。你所建议的系统,虽然可能将对问题领域本质的洞察封装在某种线性代数模型中,但与其说是专家系统,不如说是一个黑箱。专家系统的一个特点是,它们可以对自己的推理产生“解释”,而这种特点之所以可能,部分原因是知识表示虽然形式化,但仍然接近于自然语言中的简单语句;矩阵及其运算,虽然可能是根据对现实的类似观察而得出的,但透明度要低得多


问题中的描述不清楚您建议的系统是否会优化现有代码(可能在有限的领域内),或者是否会生成优化的代码,在这种情况下,是否会产生一些外部目标/功能

您所描述的更像是一种特定于领域的语言

油井生产系统(规则系统)是四种通用计算方法之一(图灵机、Church递归函数、后期生产系统和马尔可夫算法[列表中还添加了其他几种算法]),它们或多或少都有以下各自的实现:命令式编程、函数式编程、,基于规则的编程——据我所知,马尔可夫算法没有独立的实现。这些都是图灵等价物

因此,基于规则的编程可以用来编写任何东西。早期的数学/符号操作程序通常使用基于规则的编程,直到问题被充分理解为止(因此,该方法被更改为命令式或约束式编程-请参见MACSYMA-hmmm MACSYMA是用Lisp编写的,因此,也许我有一个不同的程序,或者他们最初在Lisp中为此实现了一个规则系统)

你可以很容易地编写一个规则系统来执行矩阵操作。你可以根据逻辑支持来保留一个跟踪来记录引发一个解决方案的实际规则(一些规则可能不会直接对解决方案做出贡献)。然后对于每一个规则,你都有一组C++指令的映射。(这些不必是“完整的”——它们更像是一个半可执行的需求)作为中间语言输出。然后由解析器读取,将其链接到所需的输入数据和所需的任何类型的修复。您可能会发现生成函数代码更容易——首先,修复后,您可以更容易地在函数源代码中优化输出代码

话虽如此,其他贡献者已经概述了一种特定领域的语言方法,这也是TED人员所做的(我的建议是,也只是使用规则)