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

JWFD工作流嵌入式公式解析模块 2010.12.12 最新更新 JWFD最新的官方博客地址为 http://blog.youkuaiyun.com/comsci JWFD最新官方下载地址 http://www.cnblogs.com/comsci/favorite/260690.html 本模块简称JGAM 是 jwfd GrammarAnalysis module (JWFD语法分析模块) 的缩写 用于JWFD或者其它流程系统中处理用户自定义的公式和脚本语言的模块 本模块使用开源软件ANTLR-3.0为基础,经过COMSCI对语法文件的修改而成,适用于各种流程引擎,可以结合JWFD使用 也可以嵌入到其它JAVA系统中使用 使用方法: 用户只需要在自己的系统中调用GrammarInterface类中的ScriptAnalysis()的方法即可,通过在ScriptAnalysis()方法中把string参数STR赋值为公式或者脚本 具体公式和脚本例子请参考代码中GrammarInterface类的方法说明 请将压缩包中的antlr-3.0.jar文件放在项目的JAR库中... 请用户根据项目具体情况自行修改类的package路径,默认路径为 org.jwfd.workflow.GrammarAnalysis ============================================================================================================ JWFD 是 java workflow designer JAVA工作流设计系统 的缩写 作者 comsci 官方群号: 7428804 推荐技术联盟 fireWorkflow 群,作者:非也 作品 FireWorkflow 工作流系统 群号:80347522 网站 www.fireflow.org 推荐技术联盟 OpenJweb 群,作者:阿宝 作品 OpenJweb 快速开发平台 群号:33724089 网站 http://code.google.com/p/openjweb/downloads/list 推荐技术联盟 family168 www.family168.com 专业的JBPM解决方案提供者 立即下载

  暂时忽略工作流状态的问题,仅仅表示工作流的拓扑结构

   为什么要搞这样的东东,jwfd v0.96版本中的引擎算法已经足以应付常见的工作流模型了,其它工作流系统的状态机模型也是比较不错的解决方案.因为在我设计0.96的引擎的时候,由于嵌入式代码模块和外部  数据(表单等)的加入,核心引擎的代码出现了膨胀,引擎算法的结构出现复杂化的趋势,这个变化趋势让我感到流程系统的引擎核心由于负担的功能的增加而产生的代码量的膨胀和结构的复杂化是流程系统设计的一大障碍,因此我们有必要为克服这个障碍而作出一些新的尝试,因此寻找一种更加清晰和简明的流程数学模型就成为必须
  
   这里还有一个重要的原因促使我要采用矩阵来构建流程的数学模型,因为在我前面对“JWFD工作流引擎设计--节点匹配搜索算法(再讨论)”这篇文章中我遇到了如何用算法来寻找一对匹配的节点的问题(带条件选择的并行汇聚路由问题 http://comsci.javaeye.com/blog/339756),虽然采用递归算法初步解决了这个问题,但是我始终认为有更为简单的办法来解决这个问题,经过一段时间的探索,我发现了一个比较有趣的现象,在流程矩阵中分支和汇聚的拓扑结构会在矩阵的数学模型中表现为一个类似对称子矩阵的结构,我们可以根据一些很简单的逻辑判断就可以发现一对互相匹配的分支汇聚点
 

 *  构造矩阵步骤
  
 *  1:用设计器画出流程图(验证用流程图相对比较简单,包含一个简单的对称分支和汇聚结构)

       
  
   2:统计流程图的节点总数N(流程图有多少个节点?)
     
        这个流程图一共有8个节点(包括开始和结束的点)
     
    3:生成一个N*N的空矩阵(N就是第一步中的节点总数,如果不了解或者忘记矩阵的概念,可以翻翻线性代数的教材)
     
          1  2  3  4  5  6  7  8
        **************************
    1  * 0  0  0  0  0  0  0  0 
    2  * 0  0  0  0  0  0  0  0
    3  * 0  0  0  0  0  0  0  0
    4  * 0  0  0  0  0  0  0  0
    5  * 0  0  0  0  0  0  0  0
    6  * 0  0  0  0  0  0  0  0
    7  * 0  0  0  0  0  0  0  0
    8  * 0  0  0  0  0  0  0  0
 *  
  
 *  4:根据流程图的节点之间的连接来填充第二步中生成的N*N空矩阵
 
     根据流程的节点之间的连接线的情况,比如说节点1到节点2有一条连接线,那么我们就在矩阵的第一行和第二列的交叉处用1来表示..节点2和节点3有一条连接线,那么我们就在第二行和第三列的交叉处用1来表示,如此类推,这个流程矩阵模型就完成了     (如果还不太理解这个流程模型的矩阵表示法,请参阅“算法导论”第22章-图的算法)
    
          1  2  3  4  5  6  7  8
        **************************
    1  * 0  1  0  0  0  0  0  0 
    2  * 0  0  1  1  1  0  0  0
    3  * 0  0  0  0  0  1  0  0
    4  * 0  0  0  0  0  1  0  0
    5  * 0  0  0  0  0  1  0  0
    6  * 0  0  0  0  0  0  1  0
    7  * 0  0  0  0  0  0  0  1
    8  * 0  0  0  0  0  0  0  0
 
    图2

   

      这个时候,我们观察到矩阵中有一个比较对称的地方,在第二行和第六列分别有三处为1的地方(矩阵中粗体的数字所在处),而这两组共6个为1的地方,恰巧是流程图中对称的分支和汇聚的拓扑结构所在之处(如图2),这个时候我在先前的文章“JWFD工作流引擎设计--节点匹配搜索算法(再讨论)”中曾经为寻找分支和汇聚的匹配点而做的一些工作显然又多了一种解决方案,以后我们在对一个工作流的进行矩阵建模之后,如果发现矩阵中出现这种行和列均有相同个数的连接点,且位置呈对角线对称的子矩阵,那么这个行数和列数所对应的流程节点既是一对分支和汇聚的匹配点,这个解决办法在逻辑上面比我原来使用的“节点匹配搜索算法”更为简洁明了。

    关于矩阵的存储结构,在计算机中有很多种办法,如果这种工作流的矩阵模型的存储比原来采用的邻接表数据库方式更为简单,占用的空间更加少,那么我认为在不抛弃过去邻接表数据库存储(流程在运行过程中的状态转换需要数据库,所以无法完全抛弃数据库)的基础上,增加矩阵结构的存储和运算,将为工作流引擎在处理复杂分支汇聚和其它拓扑结构的时候带来一些便利。。。。。。。。

    采取矩阵模型来表示工作流的拓扑结构的意义尚不局限在上面说的地方,随着我们的进一步的探索,相信会有更多的发现。。。。。。

 

JWFD工作流WEB插件源代码包 最简单的流程设计器,用于嵌入到WEB页面中,需要JRE 立即下载

相关推荐

开源工作流系统 JWFD.7z

开源工作流系统 JWFD.7z

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

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

comsci的专栏 223

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube

本教程基于群晖的NAS设备DS423+的docker功能进行搭建,DSM版为 7.2.1-69057 Update 5。MetaTube是一个媒体服务器插件,主要用于Emby和Jellyfin媒体服务器。它的主要功能是从互联网上抓取内容并响应 JSON 数据,然后通过预安装的 MetaTube 插件请求服务器并下载相应的元数据,以与 Jellyfin/Emby 服务器配合使用。使用 MetaTube 的步骤大致如下:部署后端:首先,需要部署一个名为​ 的后端 API 服务器来抓取内容。

小小笔记大大用处 1万+

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

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

comsci的专栏 2747

U型槽微带贴片天线:从理论公式到带宽扩展实战

本文深入探讨了U型槽微带贴片天线的设计与带宽扩展实战。针对传统微带天线带宽窄的痛点,详细解析了通过引入U型槽形成双谐振点以拓宽带宽的原理,并提供了从MATLAB理论计算、ANSYS HFSS仿真建模到参数优化的一站式工程指南。文章还分享了多种带宽扩展组合技巧及仿真与实测避坑经验,助力射频工程师设计出高性能的宽带微带天线。

weixin_29168153的博客 453

中小团队必看!用Harbor+Jenkins打造轻量级K3S交付流水线(含成本优化方案)

本文为中小团队详细介绍了如何利用K3S、Harbor与Jenkins构建一套高性价比的自动化交付流水线。内容涵盖单节点K3S集群的效能配置、Harbor镜像仓库的磁盘空间优化、Jenkins共享库实现流水线复用,并提供了完整的实战案例与成本优化方案,帮助团队以较低成本快速落地高效的自动化部署。

weixin_29223603的博客 504

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

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

comsci的专栏 618

英飞凌ADS开发环境搭建全流程:从安装到第一个程序烧录

本文详细介绍了英飞凌ADS开发环境搭建的全流程,包括环境准备、ADS安装与配置、MemTools烧录技巧等关键步骤。针对嵌入式开发者,特别提供了从安装到第一个程序烧录的实战指南,涵盖常见问题解决方案和优化建议,帮助开发者快速上手英飞凌AURIX系列微控制器的开发工作。

qsc901234的博客 339

关于JWFD开源工作流系统与电商平台的关系的说明

关于JWFD开源工作流系统与电商平台的关系的说明

comsci的专栏 385

如何实现MCGS与S7-200SMART PLC以太网多台通信控制?

第九步:(设备工具箱—设备管理—鼠标依次点击通用TCP/IP父设备—西门子_ Smart200到设备窗口里面去)数据类型:第0位(指PLC地址变量小数点后面的位数,例如我地址是M0.0,那么在数据类型应填写通道的第00位)第十步:(鼠标双击打开通用TCPIP父设备0--[通用TCP/IP父设备]进入通信配置)通道地址:0(指小数点前面起始字节的地址,例如我地址是M0.0,那么应在通道地填写0)。第七步:(选择通用TCP/IP父设备,点击新增,右侧选定设备就会自动添加进去。

u010670857的博客 6720

【以太网硬件九】1000base-X是什么?

简要描述1000base-X物理层规范

highman110的博客 1万+

JWFD工作流引擎设计--简单矩阵建模(初步讨论)

作者: comsci 发表于 2010-08-18 11:41 原文链接 阅读: 43 评论: 0 JWFD工作流引擎设计--简单矩阵建模(初步讨论) * 暂时忽略工作流状态的问题,仅仅表示工作流的拓扑结构 * * 为什么要搞这样的东东,jwfd v0.96版本中...

chenglan8953的博客 323

零基础学simulink仿真建模--使用Simulink来构建一个混合动力无人机中燃料电池与锂电池协同控制的仿真模型

延长飞行时间:燃料电池的能量密度高于锂电池,适合长时间稳定供电。提高功率密度:锂电池能够快速响应瞬时高功率需求,比如起飞和加速阶段。优化能源管理:通过有效的能量管理系统,可以根据实际需求动态调整燃料电池和锂电池的工作状态,从而提高整体效率。通过上述步骤,我们简要介绍了如何基于Simulink实现混合动力无人机中燃料电池与锂电池协同控制的仿真模型。

amy_mhd的博客 191

JWFD开源工作流-矩阵引擎设计-遍历排序算法运行测试

下标:(8,1): 节点标签:(node8,node1): 节点状态:(0,0): 节点标志:普通点。下标:(1,9): 节点标签:(node1,node9): 节点状态:(0,0): 节点标志:普通点。下标:(5,1): 节点标签:(node5,node1): 节点状态:(0,0): 节点标志:普通点。下标:(2,0): 节点标签:(node2,node0): 节点状态:(0,0): 节点标志:普通点。下标:(0,1): 节点标签:(node0,node1): 节点状态:(0,0): 节点标志:普通点。

comsci的专栏 1125

爬虫Incapsula reese84加密案例:Etihad航空(纯算法)

爬虫Incapsula reese84加密案例:Etihad航空,本文就不再讲解如何找加密参数、定位加密参数,以及分析加密的一个过程。就直接从扣算法开始,扣算法前先看之前讲解的加密函数生成的过程,文章会一个函数一个函数的讲解扣算法。fiddler根据规则替换本地文件。调试过程中遇到部分环境不一样是正常的,具体还要根据自己调试的js为准,就像之前补环境时是有二十一个循环,这次扣算法多出一个循环,不过大部分环境是一样的第一个函数:通过document.addEventListener添加了很多事件。

老衲爱洗头的博客 1994

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JWFD工作流引擎:高维向量空间分析法解析与实战

在复杂业务系统与工作流引擎设计中,流程的监控、分析与优化是核心挑战。传统基于流程图或状态机的方法,在面对高并发、多分支的动态场景时,往往难以进行量化分析和根因定位。高维向量空间分析作为一种数学建模方法,通过将流程中的实体(如节点、实例)抽象为多维向量,将复杂的流程关系与性能指标映射到可计算的空间中。其技术价值在于,能够借用成熟的线性代数、聚类分析等数学工具,对流程进行相似度计算、异常检测和模式挖掘,从而将黑盒的流程执行转化为白盒的、可度量的分析对象。这一原理在工程实践中,尤其适用于需要精细化运维和智能优化的

weixin_30466039的博客 566

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JWFD开源工作流-矩阵引擎-遍历伪代码算法

下标:(0,2): 节点标签:(node0,node2): 节点状态:(0,0): 节点标志:普通点。下标:(1,2): 节点标签:(node1,node2): 节点状态:(0,0): 节点标志:普通点。下标:(6,2): 节点标签:(node6,node2): 节点状态:(0,0): 节点标志:普通点。下标:(7,8): 节点标签:(node7,node8): 节点状态:(0,0): 节点标志:起始点。下标:(2,3): 节点标签:(node2,node3): 节点状态:(0,0): 节点标志:普通点。

comsci的专栏 317

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

comsci的专栏 58

JWFD开源工作流-矩阵大模型的最新进展

在JWFD的设计器上面,实现了103个节点,186个连接的拓扑图模型,使用矩阵建模,整个拓扑图的数据容量才36K,大概计算了一下,100万个节点150万连接数的矩阵模型不会超过300MB,在一个工作站级别的服务器上面建立人脑的神经网络图是完全可以的。另外,使用自建的矩阵引擎算法,跑这个拓扑图的时候,由于采用传统的递归算法,由于没有加入节点访问控制函数,导致出现内部子循环体,内存被无效循环消耗,出现溢出错误,说明大模型的计算过程不能够用传统的递归算法。下面是这个拓扑图的模型图。

comsci的专栏 186

JWFD开源工作流矩阵引擎测试版本BUG20231022修正代码

请把该函数覆盖到JWFD开发包的org.jwfd.workflowEngines.Matrix.DataMatrix.java文件的同名函数中,非常感谢大家的支持,因为矩阵引擎并没有任何先例可以借鉴,所以一步一步的再做,还有很多不完善的地方。。。。

comsci的专栏 513

JWFD开源工作流矩阵引擎BUG提示

由于这个测试版本的矩阵引擎在设计的时候,没有考虑到流程图节点数量超过10个以上的问题,导致引擎在进行节点匹配的时候,出现十位数以上的匹配错误,导致引擎运行失败,正在修复这个BUG,请大家注意这个问题。

comsci的专栏 134

工作流平台中用矩阵状态表代替关系型数据库的思考

现在的工作流系统都需要关系型数据库的支持,要使用一套工作流系统,特别是在运行过程中,启动工作流引擎的时候,都需要用数据库来跑流程的实例和记录流程的状态值,可以说工作流引擎和数据库的关系非常密切,没有数据库的支持,工作流就无法运行,但是如果我们把思路扩展一下,这样思考,如果工作流系统的运行都必须依赖关系型数据库,那么工作流的应用范围就会受到限制,比如说,在某些嵌入式平台中,磁盘和内存比较小,操作系统

comsci的专栏 2273

[原创]JWFDv0.96 结构图说明

在介绍JWFD之前,顺便推荐下朋友做的基于.net的流程设计器,有下载 http://www.cnblogs.com/l_dragon/archive/2004/12/28/83082.html 国内著名的WWF专家WXWinter的博客中介绍的微软体系的流程设计器 http://www.cnblogs.com/foundation/archive/2008/06/29/1

comsci的专栏 858

流程矩阵模型中的基本元素是什么?

一个传统的矩阵是这样的                              | 0  0  1   0   1 |                             | 1  1  0   0   1 |                             | 0  1  1   0   1 |                              | 0  0  1   1

comsci的专栏 2514

[原创]JWFDv0.96工作流系统--流程XML文档结构说明

作者: comsci 发表于 2010-10-08 09:27 原文链接 阅读: 7 评论: 0 本文简要介绍了JWFDv0.96工作流系统的流程图XML模型结构,其中带有少量的专业语言,浅显易懂,适合初学工作流系统的设计和开发者,在了解这个结构之后就需要大家把注意力集中到流程图X...

chenglan8953的博客 158
上一篇: [原创]物联网技术与工作流技术的结合
下一篇: JWFD最新更新
comsci
博客等级 码龄22年 412粉丝 397原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值