基于图结构的计算分析和实现

简介: 这两天调研了下基于图结构的计算方式,并以图结构的方式实现了简单的算式计算,具体过程如下文。图结构构成使用简单的将所有节点通过数组或链表进行管理起来使用二维数组将节点之间的关系进行管理。

这两天调研了下基于图结构的计算方式,并以图结构的方式实现了简单的算式计算,具体过程如下文。

图结构构成

  1. 使用简单的将所有节点通过数组或链表进行管理起来
  2. 使用二维数组将节点之间的关系进行管理。
  3. 简单实现 BFS及DFS
  4. 通过查找依赖关系来构成执行顺序图
    如下图:
img_231984b2a46e677aa7477038756786ac.png
数据存储表

其数据结构图如下图:

img_78210aa81cf272b23d83242c313a1923.png
图结构

因此对于简单图结构来说,通过与节点等数量维度的二维数组能完整的描述图结构的所有关系。

执行图过程

对于计算使用的算式来说,算式中的加减优先级很重要,因此需要通过对优先级进行图的优化,如下为a + b * c 算式的优化过程图:

img_0fa6a8bf4cf5c47bbb043d1427161cdd.png
a + b * c 图优化过程

本文仅对图进行简单介绍及实现,详细请参见代码
上述的基本实现参考 Tanuki(狸)

如下是简单实现的样例代码:

GraphEngine engine = new GraphEngine();
engine.appendField("a", AnyObject.valueOf(2));
engine.appendField("b", AnyObject.valueOf(3));
engine.appendField("c", AnyObject.valueOf(4));
engine.appendField("d", AnyObject.valueOf(5));
engine.dumpFieldList();
String func = "a + b";
System.out.println(String.format("%s = %s", func, engine.exec(func)));
func = "a + b * c";
System.out.println(String.format("%s = %s", func, engine.exec(func)));
func = "( a + b ) * c";
System.out.println(String.format("%s = %s", func, engine.exec(func)));
func = "( ( a + b ) * c ) * d";
System.out.println(String.format("%s = %s", func, engine.exec(func)));
目录
相关文章
|
1月前
|
机器学习/深度学习 数据可视化 算法
数据处理方法—— 7 种数据降维操作 !!
数据处理方法—— 7 种数据降维操作 !!
42 0
|
3月前
|
机器学习/深度学习 数据挖掘 Python
时序数据的分类及质心的计算
时序数据的分类及质心的计算
|
7月前
|
机器学习/深度学习 数据采集 存储
【机器学习6】数据预处理(三)——处理类别数据(有序数据和标称数据)
【机器学习6】数据预处理(三)——处理类别数据(有序数据和标称数据)
185 0
|
4月前
SPSS两变量相关性分析
SPSS两变量相关性分析
60 0
|
8月前
|
存储 数据可视化 数据挖掘
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
|
10月前
|
机器学习/深度学习 Python
图(Graph)--经典图特征工程:节点分析
本文分享了关于学习参考多变博客文献后总结的 经典图特征工程 分析方法,以供参考学习
312 0
|
BI 数据库 开发者
高维向量检索的设计与实践|学习笔记
快速学习高维向量检索的设计与实践
96 0
高维向量检索的设计与实践|学习笔记
|
存储 机器学习/深度学习 数据采集
【GNN】task4-数据完整存储与内存的数据集类+节点预测与边预测任务实践
对于占用内存有限的数据集,我们可以将整个数据集的数据都存储到内存里。PyG为我们提供了方便的方式来构造数据完全存于内存的数据集类(简称为InMemory数据集类)。在此小节我们就将学习构造InMemory数据集类的方式。
468 0
|
机器学习/深度学习 搜索推荐 算法
行为稀疏场景下的图模型实践
本系列将系统介绍召回技术在内容推荐的实践与总结。第一篇:2021召回技术在内容推荐的实践总结第二篇:CMDM:基于异构序列融合的多兴趣深度召回模型在内容平台的探索和实践第三篇:内容推荐场景下多模态语义召回的若干实践第四篇:多序列融合召回在新用户冷启动上的应用第五篇:推荐场景下融合多模态信息的内容召回模型
289 0
行为稀疏场景下的图模型实践
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )(一)
【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )(一)
455 0
【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )(一)