为工作流设计矩阵数据结构存在的问题[2013.6.27更新]

《矩阵实验室》(Mathworks.Matlab.R2013b)R2013b(8.2) 中文名: 矩阵实验室 英文名: Mathworks.Matlab.R2013b 别名: Matlab 资源格式: 光盘镜像 版本: R2013b(8.2) 发行时间: 2013年09月06日 地区: 美国 语言: 英文 简介:  matlab更新中文简介 MATLAB 产品系列  MATLAB:提供了适用于混合类型的表格数据以及有序和无序分类数据的数据类型 阅读详情


      从很多网络上公开的工作流研究方面的论文来看,很多研究者都用过矩阵表示工作流图,矩阵天生就是表示图形拓扑连接的一种数学工具,加之在程序设计上面,采用二维数组+自定义数据结构就可以很好的实现一个矩阵,所以用矩阵来为工作流图建模是一个发展的方向,但是今天在继续开发矩阵工作流数据结构的时候,发现这里还存在几个关键性的问题需要解决


      目前已经实现的工作流矩阵模型的构建是这样的,如下有一个简单的流程图

     

     

      如果我们按照流程图的矩阵表示法,可以构建出如下的一个矩阵出来

      (根据流程的节点之间的连接线的情况,比如说节点1到节点2有一条连接线,那么我们就在矩阵的第一行和第二列的交叉处用1来表示..节点2和节点3有一条连接线,那么我们就在第二行和第三列的交叉处用1来表示,如此类推,这个流程矩阵模型就完成了 )

    

     但是我发现这个矩阵模型存在着巨大的缺点,使其不足以像SQL数据库结构那样很完善的表达一个流程图,这些缺点是:


     1:这种矩阵结构无法清晰的表达出节点间连接的方向性,比如说节点1和节点2的连接方向是从节点1到节点2,还是从节点2到节点1,在这个矩阵里面无法表示出来


     2:这种矩阵的元素表示的是节点间连接线,而不是节点本身,而我们的工作流系统在处理流程的时候,需要读取和设置节点本身的状态参数,如果这个矩阵无法存储节点本身的信息,那么用矩阵来表示流程图对我们设计工作流引擎的API帮助不大。。。

    

     由于有这些缺点,所以用矩阵来表示工作流图的工作,还需要进一步的加强结构设计,起码要把上述的两个主要问题解决了。。。。

     大家都知道,现在的GPU运算正在如火如荼的发展。。。如果工作流能够用矩阵模型来表示,那么我们的工作流系统是否可以用到GPU硬件对矩阵运算的强力支持呢?  这样的发展方向-既超大规模的动态流程图-运行在并行GPU系统上面。。


     这里我还想进一步阐述我对于下一代工作流发展的看法,实际上工作流的结构近似于一个神经网络(http://www.iteye.com/topic/1129799),而如果我们实现了(节点数量>1000)的工作流图的存储和处理,以及自动处理过程,那么我们也可以在这样的系统基础上比较容易的实现一个类神经计算网络,如果工作流的拓扑结构发生变化,而矩阵存储的流程图拓扑数据也同步发生变化,那么这种自适应的动态工作流,完全可以在某种程度上变成人工智能系统的一个核心模块。。。也就是说。。现在打好工作流的基础,以后无论技术如何发展,我们都会拥有一个强有力的技术支撑。。。。

    

   我们个人做开源,虽然在技术的精细度和理论的完善程度上面无法和专业的大公司和研究机构相比,但是我们的优势是灵活,具有前瞻性,实践能力与理论基础很好的结合

   这个版本的JWFD是要好看些哈。。。嘿嘿

  

 

     2013.6.21  今天先从理论上解决这前面提到两个关键问题  我能够思考到的初步的解决办法 如下
  
     关键点1:   在矩阵元素中增加一个变量,表示连接线方向性的变量,用于标示连接线是从哪个节点到哪个节点。。。
     关键点2:   在矩阵元素对线段变量转换为两个节点的变量   原来是 A线段  现在是 (A节点,B节点)  
 
 
    综合上面对两个关键问题的解决思路,那么这个矩阵元素就起码应该包含3个变量(群)  {A,B,C}
  
     A是节点1,B是节点2,C是连接线方向标示变量,方向变量用一个正负号来表示,+号表示A->B  -号表示B->A  
     那么结合前面的设计   我们的流程矩阵元素数据结构应该是这样的  M12元素 {node1,node2,+}
    
     然后node2节点的状态和类型数据应该存储在另外一个数据文件中,拓扑结构和状态参数应该分开存储,是吗? 我不是很确定
    
     另外还有一些很重要的问题要考虑,比如说,以后要用GPU或者CPU对流程矩阵进行大规模数据读取和计算操作,那么这样的结构需要做什么改进?

      (需要了解一个GPU编程的一些基础数据结构,然后进行一些前瞻性的预设计,免得以后要用GPU的时候,数据结构还要做大规模的修改,就比较麻烦了)

      正在看GPU的资料,大概能够用到GPU里面的可编程顶点处理器进行矩阵处理。。。


      2013.6.24  愉快的周末结束之后,今天继续完成我们伟大的JWFD-矩阵数据结构设计工程

     

      今天把上周5设计出来的矩阵元素思路变成了代码,并全部输出出来,如下图(这个矩阵是一个6*6的流程矩阵,一个矩阵元素包含三个子数据结构)

      101表示节点1的运行状态(我这里只是测试初始值,第一个值1表示 节点 is_active的状态(判断节点是否处于活动状态,我是从JWFDV0.96版本的SQL数据库中继承这个参数设计思路的,第二个值0表示节点 visited (节点是否已经被访问过状态值)  第3个值1(actioned_time)表示节点的处理次数 

      类似的010表示节点2的运行状态,设计原理同上所述

      最后的+号如前面所说的是表示节点1和节点2之间的连接线的方向,+号就表示连接线方向是从节点1->节点2,-号表示反方向 

      那么这个矩阵应该就可以表示一个正在运行过程中的流程图的拓扑连接关系和节点运行状态参数值了,还需要添加什么东西呢? 还需要继续思考。。。。

      

       这个类就是包含前面定义的那个节点状态值类(MatrixElement)的主类,里面有节点1(ME01),节点2(ME02)和表示节点间连接线的方向性的+-号字符串LindDirection

 还有部分代码,我就没有贴出来了。。。太长了。。。等我把这个部分设计完,我会发布JWFD的矩阵数据结构建模模块代码的。。。



   设计到这个部分,下一步就是修改JWFD的XML-TO数据库解析部分,把XML解析到数据库的代码转换为XML-矩阵解析过程的代码。。。。听听音乐。。继续

    2013.6.27  这几天修复了几个JWFD原来的补丁,但是矩阵建模的工作仍然在继续    

    在初始化一个矩阵数据结构的时候,既把矩阵的元素全部用0来填充之后,我们要完成把XML图的节点和连接线信息转换到矩阵表中保存的时候,遇到一个技术细节上的问题,现在刚把这个问题解决掉,初始化之后的矩阵无法对单一的元素进行赋值,这可麻烦了,要知道,我们解析流程图XML数据的同时,就需要把XML文件中的流程图节点和连接线信息提取出来,并一一的写入矩阵(数据库)里面,无法对单一矩阵元素赋值,就意味着这个过程无法完成,真讨厌啊。。。

    一个刚初始化完成的流程矩阵如下(000表示节点X的状态序列,*的位置是连接线方向+-的存储点)

  

   然后我们调用如下的代码,模拟解析XML数据之后,把某几个节点信息写入这个矩阵的过程

  

     //建立两个流程矩阵元素实例 以便下一步写入到矩阵中
      WFMatrixElement WF01 = GM.new WFMatrixElement();
      
      //把节点信息状态值设置好,这段代码应该是流程运行过程中调用的
      WF01.ME01.Set_Actioned_Time(1);
      WF01.ME01.Set_IS_Active(1);
      WF01.ME01.Set_Visited(3);
      
      WF01.ME02.Set_Actioned_Time(1);
      WF01.ME02.Set_IS_Active(0);
      WF01.ME02.Set_Visited(5);
      
      WF01.Set_LineDirection("-");
      
      
      WFMatrixElement WF02 = GM.new WFMatrixElement();
      
      WF02.ME01.Set_Actioned_Time(0);
      WF02.ME01.Set_IS_Active(1);
      WF02.ME01.Set_Visited(2);
      
      WF02.ME02.Set_Actioned_Time(1);
      WF02.ME02.Set_IS_Active(2);
      WF02.ME02.Set_Visited(1);
      
      WF02.Set_LineDirection("+");
      
      //初始化矩阵
      for(int i=0;i<N;i++){
 		 for(int j=0;j<M;j++){ 
 	    	GM.CM[i][j] = GM.WFME;	
      }
 	 }
      
    //  用具体的节点信息数据填充矩阵的某个元素
        GM.ConstMatrix(WF01,2,3);
        GM.ConstMatrix(WF02,4,3);

上面的代码最后两句就是把连接线和节点信息写入矩阵的执行代码,执行完成之后,矩阵表如下所示 


 

   大家注意到没有,这个矩阵表中的两个元素A[2][3]和A[4][3]被写入了模拟的流程图节点信息,这表示我们已经完成一个重要的工作

扫清了把XML文件转换为矩阵表的一个重要技术问题。。。。。。。。。接下来,再对矩阵的结构和建模代码再进行一些修正和细化

我相信,不依赖数据库的工作流系统一定会成功建立起来。。。。。

  

 


Qwen3.6-27B本地部署实战:硬件门槛、GGUF量化与驱动避坑指南 大语言模型本地部署的核心在于理解‘模型’与‘系统’的协同关系——它不仅是加载一个文件,更是对显存容量、带宽、内存延迟、量化精度和驱动兼容性的综合工程。Qwen3.6-27B作为当前消费级平台可落地的最强稠密模型,其部署成败高度依赖GGUF格式支持与Q4_K_M量化技术:前者提供跨平台推理元数据与GPU优化布局,后者在精度损失<1.5%前提下实现显存占用压缩至17.2GB,并保障KV Cache高效量化。实际应用中,RTX 4090/5090D V2等高带宽GDDR6X/GDDR7显卡显著优于3090,关键不 阅读详情

相关推荐

独立开发者如何用AI智能体矩阵重构工作流:从Claude Code到Vercel的实战

在软件开发领域,自动化与智能化正深刻改变着传统的开发模式。其核心原理在于通过智能工具链将重复性任务自动化,从而释放开发者的创造力,聚焦于更高价值的设计与架构工作。这种模式的技术价值在于极大降低了产品从构思到上线的技术门槛与时间成本,尤其适用于快速验证产品想法(MVP)和独立开发场景。具体到应用层面,开发者可以借助AI代码助手进行架构设计与核心逻辑开发,利用AI UI生成工具快速构建前端原型,并通过自动化部署平台实现持续集成与交付,形成高效闭环。本文即以Claude Code、v0和Vercel构建的智能体矩

weixin_32705179的博客 358

关于矩阵工作流设计和研发的若干问题的说明

关于矩阵工作流设计和研发的若干问题的说明

comsci的专栏 223

全面掌握4X4矩阵键盘的设计与实现

原理图设计是电子设计自动化(EDA)的关键环节之一。合理地选择原理图设计工具,能够极大地提升设计效率和质量。接下来,我们将深入探讨原理图设计工具的功能与选型指南。事件驱动模型是一种常见的程序设计模型,它以事件的发生与处理为核心。在矩阵键盘的应用中,当一个按键被按下时,会触发一个事件。程序中的事件处理系统会捕获这个事件,并调用相应的处理函数来执行按键对应的操作。

weixin_29867767的博客 1135

JWFD开源工作流-矩阵引擎设计-高维向量空间分析法

矩阵是一种纯粹的数学模型,要在这种数学模型上实现循环,跳跃和回退等。根据我的研究 矩阵模型的维度高出链表一级,我们在矩阵模型上做的控制和操作。如何把矩阵表和路由表的参数结合起来,形成一个高维向量空间,然后在这个空间。探测到,遍历并没有完全的完成,仍然有泄露的节点在其中,这个问题需要进一步。在完成遍历和排序之后,矩阵的循环,跳跃和回退等模块是否和数据库模型的时候。亿级参数模型,可以进行智能模拟和生成式人工智能,但是我们的矩阵工作流开发。抛弃掉深度学习的那些看起来深奥的学术词汇,人工智能的最底层的模型和结构。

comsci的专栏 618

[JWFD开源工作流]大规模拓扑矩阵存储结构最新进展

NULL 博文链接:https://comsci.iteye.com/blog/2179404

工作流表结构

简单的系统工作流数据结构表,轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码

终极指南:如何使用Kronos AI模型实现金融市场的精准预测

还在为复杂的金融数据分析和市场预测而烦恼吗?想要一个能够理解K线语言、精准预测价格走势的智能助手吗?Kronos正是您需要的解决方案——这是首个专为金融K线序列设计的开源基础模型,能够将复杂的OHLCV数据转化为精准的预测信号。无论您是投资新手还是专业交易员,Kronos都能为您提供强大的AI预测支持,帮助您在金融市场中获得更明智的决策依据。 ## 🚀 为什么选择Kronos进行金融预测?

gitblog_01003的博客 687

数据结构知识点框架图

博客文章中的图片的源visio文件,主要涵盖有数据结构的主要知识点,ADT的内容,数据结构和算法的关系(后两者在右下角方框中展示),方便大家交流学习

[原创]JWFD工作流引擎设计--简单矩阵建模与应用(初步讨论)

暂时忽略工作流状态的问题,仅仅表示工作流的拓扑结构   为什么要搞这样的东东,jwfd v0.96版本中的引擎算法已经足以应付常见的工作流模型了,其它工作流系统的状态机模型也是比较不错的解决方案.因为在我设计0.96的引擎的时候,由于嵌入式代码模块和外部  数据(表单等)的加入,

comsci的专栏 3037

Java常见基本数据结构概览

主要介绍了Java常见的几种基本数据结构,包括其含义和用法,,需要的朋友可以参考下

CloudCompare横截面工具实战:从点云切片到轮廓提取的完整流程

本文详细介绍了CloudCompare软件中Cross Section工具的核心功能与实战流程。从交互式裁剪框的精准操控,到包络线提取的参数设置与优化,再到内部轮廓提取及批量处理技巧,完整解析了如何从三维点云中高效提取建筑立面、隧道断面等关键轮廓信息,是点云数据处理与分析的实用指南。

weixin_29290963的博客 286

关于JWFD工作流矩阵引擎的一些问题

本文讨论了大型流程图中矩阵引擎的死循环问题,提出通过限制节点访问次数来中断循环的解决方案。作者表示该控制代码曾在早期SQL版本中实现过,但未包含在1027.4版本中。由于个人事务繁忙导致博客更新延迟,作者承诺将在下次回来后完善矩阵引擎的循环访问控制代码。摘要突出了技术问题的核心解决方案和作者的后续计划。

comsci的专栏 58

【Cadence】 ADS Dynamic Link使用教程

在Cadence617上使用ADS Dynamic Link

乾巽的博客 6081

LoRA微调实战:基于Qwen3.6-27B与H3工作流的提示词优化

在深度学习与自然语言处理领域,模型微调是使通用大模型适应特定下游任务的核心技术。其原理是通过在特定数据集上继续训练,调整模型参数,从而让模型学习到领域特有的知识或技能。这项技术的核心价值在于,它能以远低于从头训练的成本,高效地将强大的基础模型能力迁移到垂直应用场景,例如智能客服、内容生成和代码补全等。参数高效微调技术(PEFT)作为微调的重要分支,旨在用极少的可训练参数实现性能逼近全量微调的效果,极大降低了计算和存储门槛。其中,LoRA(Low-Rank Adaptation)通过引入低秩矩阵分解来更新权重

weixin_29189373的博客 332

股票行情接口,最全的接入方法

股票行情接口一般有两种,一种是WebSocket,一种是http,通过WebSocket可以获取逐笔的股票tick数据,实时并且高效;通过http接口可以获取股票行情接口中的股票历史数据;WebSocket是一种高效的双向通信协议,它允许数据的实时推送,避免了不断的轮询请求。其次,WebSocket允许您订阅特定的数据源或股票数据产品,只接收您感兴趣的信息,提高了数据的效率和可用性。通过接入股票行情数据的HTTP接口,您可以将数据导入到自己的分析工具或系统中,进行更深入的数据分析、模型构建和决策支持。

apifinance的博客 3428

【笔记】2022.6.7 数据分析概论

已完结

SpriteNym的博客 1374

Cellchat更新以后的新工作流

【代码】Cellchat更新以后的新工作流。

Vioxel的博客 1112

线性回归做糖尿病分析(diabetes数据集),并分析单个特征值与病情的关系

1.diabetes数据集 共442个样本,每个样本有十个特征,分别是 [‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’],对应年龄、性别、体质指数、平均血压、S1~S6一年后疾病级数指标。 Targets为一年后患疾病的定量指标,值在25到346之间。 ...

t18438605018的博客 1万+

RuoYi集成Activiti:工作流引擎与流程设计器全指南

你是否还在为RuoYi项目中手动处理审批流程而烦恼?是否希望通过可视化界面设计复杂的业务流程?本文将带你从零开始,在RuoYi框架中集成Activiti工作流引擎与流程设计器,彻底解决传统审批流程开发效率低、维护成本高的痛点。读完本文,你将获得: - 完整的Activiti与RuoYi集成方案 - 可视化流程设计器的部署与使用 - 实战级请假流程开发案例 - 常见集成问题的解决方案 ## 环境准...

gitblog_00259的博客 969

OpenClaw进阶实战(二十三):微信公众号接入——被动回复、客服消息、素材管理

本文介绍了将OpenClaw接入微信公众号的完整方案,重点包含以下内容: 接入方案选型:对比官方插件、三方服务和自建中转三种方式,选择自建Node.js中转服务实现灵活控制 核心原理:通过中转服务器完成微信消息协议转换,处理5秒超时限制和异步回复机制 实战开发: 搭建Express中转服务 实现Token管理和消息处理 采用内存缓存对话历史 通过客服接口异步回复 官方插件方案:介绍2026年发布的ClawBot插件,支持文本/图片/文件收发 进阶功能:包括素材管理接口调用示例 该方案适用于需要深度定制公众号

PeterPan的博客 143

化工与制药软件:AVEVA E3D二次开发_(2).AVEVA E3D软件介绍

用户可以根据自己的需求创建自定义的设备模板,提高设备建模的效率。

kkchenjj的博客 1651

怎么监控对标账号更新:2026年作者监控工作流,5款深度对比

怎么监控对标账号更新?本文从多账号更新监控、竞品发新视频自动提醒到素材自动沉淀的完整链路拆解,横评5款作者监控工具。鲸剪 WhaleClip在自动化监控与后续剪辑批处理同平台衔接方面具备工程化优势,适合矩阵运营与内容团队。

m0_73753577的博客 186

Linux系统中u-boot启动流程分析(详解)

代码部分,具体如下;

嵌入式技术开发 1993

Jan 完整配置指南:三步定制你的离线 AI 助手行为与响应模式

Jan 是一款可以 100% 离线运行的开源 ChatGPT 替代品,模型和对话都留在你自己的电脑上。把 Jan 配置玩明白后,你能在 3 步内导入第一个模型,并按用途把 AI 的回答风格调成你要的样子——更敢写、更可靠,或者跑得更快、更省内存。下面按顺序讲清楚。 ## 新手起步 🚀 做完这一节,你的 Jan 里就有能对话的模型了,全程不超过 3 步: 1. **进设置**:点击 Jan

gitblog_00446的博客 991

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

基于8086矩阵键盘数码管显示设计

*单片机设计介绍,基于8086矩阵键盘数码管显示设计。

2301_79745346的博客 2005

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 工作流平台中用矩阵状态表代替关系型数据库的思考
下一篇: 感谢大家的支持,发布一个JWFDv0.96.3开发包补丁
comsci
博客等级 码龄22年 412粉丝 397原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值