Drools开源业务规则引擎(五)- jBPM流程图元素介绍

news2024/11/15 18:00:11

文章目录

  • Drools开源业务规则引擎(五)- jBPM流程图元素介绍
    • 1.process
    • 2.startEvent
    • 3.Connections
      • 3.1.sequenceFlow
      • 3.2.Association
    • 4.Activities
      • 4.1.businessRuleTask
      • 4.2.scriptTask
    • 5.Gateways
      • 5.1.exclusiveGateway
    • 6.endEvent

Drools开源业务规则引擎(五)- jBPM流程图元素介绍

阅前须知:

​ 根据本文操作前,请先根据上一篇文章《Drools开源业务规则引擎(四)- 规则流(rule flow)及手把手教你构建jBPM项目》搭建好相关开发环境。博主会在空闲时间内持续更新本文

1.process

在 jBPM 中,process 是用于定义和配置业务流程的关键元素之一,通过BPMN 2.0规范中的<process>元素表示。process表示业务流程的起始和结束点。它定义了一个独立的业务流程,由一系列的活动、网关、事件和连接组成。每个<process>元素都有一个唯一的ID,用于在 jBPM 中唯一标识该流程。

主要属性如下:

  • Id:流程的唯一标识符。每个流程都必须有一个唯一的ID。
  • Name:流程的名称。
  • Version:流程的版本号。
  • Package Name:流程所属的包名称。(一般为流程文件所在包名)
  • Is Executable:是否可执行。

示例

在这里插入图片描述

2.startEvent

开始事件(例如消息、定时器、信号等),用于启动一个流程实例。它标记了流程的开始,作为执行流程的入口点。

示例

在这里插入图片描述

3.Connections

连接器,用于在不同的流程节点之间传递数据和信息

3.1.sequenceFlow

顺序流是连接流程中不同活动的一种方式,用于定义活动之间的顺序关系和流程控制。

示例

在这里插入图片描述

3.2.Association

关联(Association)是一种连接流程图元素和相关信息或文档的方式。它用于表示两个元素之间的关系,而不影响流程的控制流。关联与顺序流(Sequence Flow)不同,顺序流表示流程的顺序性和传递性,而关联则表示额外的信息和关系。关联不会影响流程的流转,只提供了一种可选的附加信息。

  • 数据关联(Data Association)用于在流程中传递和关联数据。它可以将输入数据传递给任务、子流程或事件,并将结果数据传递回流程中。

    • 输入数据关联:通过将数据关联到任务、子流程或事件中,可以将必要的输入数据传递给它们。

    • 输出数据关联:当任务、子流程或事件完成后,可以将结果数据关联回流程中。输出数据关联通常发生在任务、子流程或事件的完成之后,把结果数据传递给流程的下一个节点。

4.Activities

活动节点,如任务节点、自动节点等

4.1.businessRuleTask

jBPM 中的一种任务节点类型,用于执行业务规则。业务规则是指定义和描述业务逻辑的一组规则,它们可以在应用程序中灵活地配置和调整,而无需修改代码。业务规则通常用于根据一组预定义的条件和约束来进行决策和执行特定的操作。

在 jBPM 中的流程中,可以使用 “Business Rule Task” 来执行业务规则。这个任务节点类型可以与规则引擎(如Drools规则引擎)进行集成,以便在流程执行过程中应用和评估业务规则。通过配置 “Business Rule Task”,可以指定要应用的规则集,以及规则的输入参数和输出结果。当流程执行到该任务节点时,规则引擎会根据预定义的规则集对输入参数进行计算和评估,并生成相应的输出结果。 “Business Rule Task” 的执行结果可以被其他任务节点使用,或者影响流程的走向和后续动作。它使业务逻辑得以动态调整和变化,从而提供了更大的灵活性和可扩展性。

主要属性如下:

  • Name:任务节点的名称,用于在流程定义中标识该任务节点。
  • Rule Flow Group:指定要使用的规则流组。规则流组是一组相关规则的集合,可以根据需要对规则进行组织和管理。
  • On Entry Script:任务节点进入时执行的脚本或表达式,支持Java,MVEL两种语言。这些脚本或表达式通常用于在任务节点执行前执行一些预处理逻辑、初始化变量、设置环境等。
  • On Exit Script:任务节点离开时执行的脚本或表达式,支持Java,MVEL两种语言。

示例

在这里插入图片描述

4.2.scriptTask

脚本任务(Script Task)表示在流程中执行自定义脚本或代码的操作。脚本任务通常用于执行一些简单的操作,而无需创建独立的服务或规则任务。

脚本任务通常用于以下几种情况:

  • 计算或转换数据:执行一些简单的计算或数据转换操作。
  • 校验或判断条件:脚本任务可以执行一些条件判断,根据不同的条件来决定流程的走向。
  • 调用外部系统或服务:例如,使用Java脚本调用RESTful API。

示例

在这里插入图片描述

5.Gateways

网关在流程图中用于控制流程的分支和合并,根据不同的条件或规则来选择不同的路径。

5.1.exclusiveGateway

排他网关,也称为分支网关。排他网关用于在流程中做出简单的选择,仅选择一个满足条件的路径。每个条件表达式都与一个出口连接相关联,只有满足条件的出口才会被选择。

主要属性如下:

  • 默认出口(Default Flow):排他网关可以有一个默认出口,当其他条件都不满足时,流程会选择默认出口。默认出口通常不需要设置条件,它只是用于在没有其他路径满足时作为备用路径。

    在这里插入图片描述

  • 条件表达式(Condition Expression):对于排他网关的每个出口,可以设置一个条件表达式。条件表达式用于评估在特定情况下选择哪个出口。条件表达式可以是简单的布尔表达式,也可以是复杂的规则表达式。例如,条件表达式可以使用流程变量、业务规则或脚本语言来定义。

    在这里插入图片描述

  • 优先级(Priority):表示出口顺序流的执行优先级。值越小,优先级越高。

  • 网关用法(Gateway Direction):

    • 分支(Diverging):分支网关用于流程的分支,将流程的执行分发到不同的路径上。在分支网关中,有一个入口和多个出口,根据条件或规则选择不同的出口路径。分支网关的方向指向多个出口,表示流程将沿着这些出口执行不同的路径。

    在这里插入图片描述

    • 合并(Converging):合并网关用于流程的合并,将来自不同路径的流程实例汇聚到一个节点上。在合并网关中,有多个入口和一个出口,当前需要等待所有入口上的流程实例到达合并网关时,才会将流程实例汇聚到下一个节点。合并网关的方向指向一个出口,表示流程将汇聚到该出口继续执行。

      在这里插入图片描述

    • 循环(Converging and Diverging):循环网关用于对流程进行循环执行,即将流程返回到之前的某个节点或循环体中重复执行。循环网关在进入循环体之前会进行条件的判断,如果满足条件,则流程会回到指定的节点或循环体继续执行。循环网关既有分支的方向,也有合并的方向。

示例

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:g="http://www.jboss.org/drools/flow/gpd" xmlns:tns="http://www.jboss.org/drools" xmlns="http://www.jboss.org/drools" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd" id="Definition" expressionLanguage="http://www.mvel.org/2.0" targetNamespace="http://www.jboss.org/drools" typeLanguage="http://www.java.com/javaTypes">
  <bpmn2:process id="Process_2" tns:version="1" tns:packageName="drools.flow3" tns:adHoc="false" name="流程案例" isExecutable="true">
    <bpmn2:startEvent id="StartEvent_1" name="流程入口点">
      <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
    </bpmn2:startEvent>
    <bpmn2:sequenceFlow id="SequenceFlow_1" tns:priority="1" name="c1" sourceRef="StartEvent_1" targetRef="ExclusiveGateway_1"/>
    <bpmn2:exclusiveGateway id="ExclusiveGateway_1" name="效验年龄" gatewayDirection="Diverging" default="SequenceFlow_4">
      <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
      <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
      <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
    </bpmn2:exclusiveGateway>
    <bpmn2:sequenceFlow id="SequenceFlow_3" tns:priority="1" name="年龄小于20" sourceRef="ExclusiveGateway_1" targetRef="BusinessRuleTask_2">
      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" id="FormalExpression_3" language="http://www.jboss.org/drools/rule">UserIn(age &lt; 20);</bpmn2:conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:sequenceFlow id="SequenceFlow_4" tns:priority="999" name="默认分支" sourceRef="ExclusiveGateway_1" targetRef="BusinessRuleTask_1"/>
    <bpmn2:businessRuleTask id="BusinessRuleTask_2" tns:ruleFlowGroup="rfg_1" name="规则流1">
      <bpmn2:extensionElements>
        <tns:onEntry-script scriptFormat="http://www.java.com/java">
          <tns:script>System.out.println(&quot;Entry:进入rfg_1&quot;);</tns:script>
        </tns:onEntry-script>
        <tns:onExit-script scriptFormat="http://www.java.com/java">
          <tns:script></tns:script>
        </tns:onExit-script>
      </bpmn2:extensionElements>
      <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
      <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
    </bpmn2:businessRuleTask>
    <bpmn2:sequenceFlow id="SequenceFlow_2" tns:priority="1" name="" sourceRef="BusinessRuleTask_2" targetRef="ExclusiveGateway_2"/>
    <bpmn2:businessRuleTask id="BusinessRuleTask_1" tns:ruleFlowGroup="bottom" name="规则流3">
      <bpmn2:extensionElements>
        <tns:onEntry-script scriptFormat="http://www.java.com/java">
          <tns:script>System.out.println(&quot;进入默认分支&quot;);</tns:script>
        </tns:onEntry-script>
        <tns:onExit-script scriptFormat="http://www.java.com/java">
          <tns:script></tns:script>
        </tns:onExit-script>
      </bpmn2:extensionElements>
      <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
      <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
    </bpmn2:businessRuleTask>
    <bpmn2:exclusiveGateway id="ExclusiveGateway_2" name="执行结果合并" gatewayDirection="Converging">
      <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
      <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
      <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
    </bpmn2:exclusiveGateway>
    <bpmn2:endEvent id="EndEvent_1" name="流程结束点">
      <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
    </bpmn2:endEvent>
    <bpmn2:sequenceFlow id="SequenceFlow_5" tns:priority="1" sourceRef="BusinessRuleTask_1" targetRef="ExclusiveGateway_2"/>
    <bpmn2:sequenceFlow id="SequenceFlow_6" tns:priority="1" sourceRef="ExclusiveGateway_2" targetRef="EndEvent_1"/>
  </bpmn2:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1" name="流程案例">
    <bpmndi:BPMNPlane id="BPMNPlane_Process_1" bpmnElement="Process_2">
      <bpmndi:BPMNShape id="BPMNShape_StartEvent_1" bpmnElement="StartEvent_1">
        <dc:Bounds height="36.0" width="36.0" x="142.0" y="122.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_EndEvent_1" bpmnElement="EndEvent_1">
        <dc:Bounds height="36.0" width="36.0" x="790.0" y="170.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_ExclusiveGateway_1" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true">
        <dc:Bounds height="50.0" width="50.0" x="310.0" y="190.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_ExclusiveGateway_2" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">
        <dc:Bounds height="50.0" width="50.0" x="650.0" y="200.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_BusinessRuleTask_2" bpmnElement="BusinessRuleTask_2">
        <dc:Bounds height="50.0" width="110.0" x="460.0" y="90.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_BusinessRuleTask_1" bpmnElement="BusinessRuleTask_1">
        <dc:Bounds height="50.0" width="110.0" x="450.0" y="310.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="BPMNShape_StartEvent_1" targetElement="BPMNShape_ExclusiveGateway_1">
        <di:waypoint xsi:type="dc:Point" x="160.0" y="158.0"/>
        <di:waypoint xsi:type="dc:Point" x="160.0" y="215.0"/>
        <di:waypoint xsi:type="dc:Point" x="310.0" y="215.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="BPMNShape_BusinessRuleTask_2" targetElement="BPMNShape_ExclusiveGateway_2">
        <di:waypoint xsi:type="dc:Point" x="570.0" y="115.0"/>
        <di:waypoint xsi:type="dc:Point" x="675.0" y="115.0"/>
        <di:waypoint xsi:type="dc:Point" x="675.0" y="200.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="BPMNShape_ExclusiveGateway_1" targetElement="BPMNShape_BusinessRuleTask_2">
        <di:waypoint xsi:type="dc:Point" x="335.0" y="190.0"/>
        <di:waypoint xsi:type="dc:Point" x="335.0" y="115.0"/>
        <di:waypoint xsi:type="dc:Point" x="460.0" y="115.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="BPMNShape_ExclusiveGateway_1" targetElement="BPMNShape_BusinessRuleTask_1">
        <di:waypoint xsi:type="dc:Point" x="335.0" y="241.0"/>
        <di:waypoint xsi:type="dc:Point" x="335.0" y="335.0"/>
        <di:waypoint xsi:type="dc:Point" x="450.0" y="335.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="BPMNShape_BusinessRuleTask_1" targetElement="BPMNShape_ExclusiveGateway_2">
        <di:waypoint xsi:type="dc:Point" x="560.0" y="335.0"/>
        <di:waypoint xsi:type="dc:Point" x="675.0" y="335.0"/>
        <di:waypoint xsi:type="dc:Point" x="675.0" y="251.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="BPMNShape_ExclusiveGateway_2" targetElement="BPMNShape_EndEvent_1">
        <di:waypoint xsi:type="dc:Point" x="701.0" y="225.0"/>
        <di:waypoint xsi:type="dc:Point" x="808.0" y="225.0"/>
        <di:waypoint xsi:type="dc:Point" x="808.0" y="206.0"/>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn2:definitions>

6.endEvent

定义流程的结束事件。常见的结束事件类型有完成、错误和取消。

示例

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1906976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows netstat命令详解,Windows查看网络连接

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 netstat 常用来…

支持图片识别语音输入的LobeChat保姆级本地部署流程

文章目录 前言1. LobeChat对我们有哪些帮助?2. 本地安装LobeChat3. 如何使用LobeChat工具4. 安装Cpolar内网穿透5. 实现公网访问LobeChat6. 固定LobeChat公网地址 前言 本文主要介绍如何在Windows系统电脑本地部署LobeChat&#xff0c;一款高颜值的开源AI大模型智能应用&…

【删库跑路】一次删除pip下载的所有第三方库方法

进入命令行&#xff0c;先list看下库存 pip list导出所有的第三方库至一文件列表 pip freeze >requirements.txt按照列表卸载所有库 pip uninstall -r requirements.txt -y再list看下&#xff0c;可见库存已清空

MATLAB基础应用精讲-【数模应用】 岭回归(Ridge)(附MATLAB、python和R语言代码实现)

目录 前言 算法原理 数学模型 Ridge 回归的估计量 Ridge 回归与标准多元线性回归的比较 3. Ridge 参数的选择 算法步骤 SPSSPRO 1、作用 2、输入输出描述 3、案例示例 4、案例数据 5、案例操作 6、输出结果分析 7、注意事项 8、模型理论 SPSSAU 岭回归分析案…

第三届机器学习、云计算与智能挖掘国际会议(MLCCIM 2024)

随着科技的不断进步&#xff0c;机器学习和挖掘技术已成为推动现代社会发展的重要力量。本届机器学习、云计算与智能挖掘国际会议&#xff08;MLCCIM&#xff09;将于2024年8月8日至8月11日在中国湖北省神农架盛大召开&#xff0c;旨在汇聚全球智慧&#xff0c;共同探讨这一领域…

Linux安装elasticsearch单机版

一、检查内核 uname -a uname -m 二、下载版本 下载版本选择自己服务器相同的内核版本 我这边是aaech64 ES下载地址 Kibana 下载地址 二、上传服务器解压 tar -xvf elasticsearch-8.14.1-linux-aarch64.tar.gz 三、安装ES 因为ES不能用root用户启动先创建用户 #新增 es …

[python]Markdown图片引用格式批处理桌面应用程序

需求 使用python编写一个exe&#xff0c;实现批量修改图片引用&#xff0c;将修改后的文件生成为 文件名_blog.md。有一个编辑框&#xff0c;允许接收拖动过来md文件&#xff0c;拖入文件时获取文件路径&#xff0c;有一个编辑框编辑修改后的文件的输出路径&#xff0c;用户拖入…

抖音商城自定义小程序源码系统 前后端分离 带完整的源代码包以及搭建教程

系统概述 在当今数字化时代&#xff0c;电商平台的便捷性和个性化体验成为了吸引用户的关键。随着短视频平台的兴起&#xff0c;抖音作为其中的佼佼者&#xff0c;其商城小程序成为了商家连接消费者的新阵地。为了帮助商家快速构建个性化、高效的小程序店铺&#xff0c;本文将…

Java面试题--JVM大厂篇之深入探讨Serial GC的应用场景

目录 引言: 正文: 一、什么是Serial GC&#xff1f; 二、Serial GC的工作原理 三、适用场景 单处理器环境在单处理器环境下&#xff0c;Serial GC是一个非常好的选择。由于没有多余的处理器资源&#xff0c;单线程的垃圾回收操作不会导致额外的上下文切换开销&#xff0c…

springboot非物质文化遗产管理系统-计算机毕业设计源码16087

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

欧拉系统(openEuler) aarch64虚拟机安装

文章目录 一、操作背景二、资源准备三、文件路径四、安装QEMU五、创建磁盘文件六、安装虚拟机七、连接虚拟机八、启动虚拟机 一、操作背景 客户公司扫描出欧拉系统aarch64架构服务器存在编号 CVE-2024-1086 的内核漏洞&#xff0c;需要对内核升级&#xff0c;首先在个人电脑虚…

硬盘错误0x80071ac3如何修复?5大免费修复法,轻松找回硬盘数据

今天我们要聊的是一个让大家头疼不已的问题——硬盘错误0x80071ac3。你是否也曾经遇到过这个烦人的错误代码&#xff0c;导致数据无法读取、文件丢失&#xff0c;甚至整个硬盘都无法正常使用&#xff1f;别担心今天小编就为大家详细解析这个错误的原因&#xff0c;并分享5个免费…

手机数据恢复:如何在没有root的情况下恢复Android数据?

您是否不小心从Android设备中删除了重要数据&#xff1f;您是否担心如何取回您的照片、视频和文档&#xff1f;有时&#xff0c;我们不小心删除了重要数据&#xff0c;并使用Android root方法取回文件。许多用户不喜欢root他们的Android设备&#xff0c;因为这是一种复杂的方法…

第十一节 动态面板加密解密显示

在原型中我们经常会遇到文件加密与解密显示问题&#xff0c;下面以一个简单案例来说明实现怎么切换明文与密文不同显示方式案例说明&#xff1b; 1、添加动态面板 2、设置加密与不加密 3、添加动作事项 注意为可见时要设置面板状态向前循环&#xff0c;上一项&#xff0c;否则…

【多条件控制生成模型综述】

多条件控制生成 1 分类2 联合训练2.1 Composer2.2 Cocktail2.3 SVDiff 3 持续学习3.1 CLoRA3.2 L2DM3.3 STAMINA 4 权重融合4.1 Cones4.2 Custom Diffusion/Mix-of-Show4.3 ZipLoRA4.4 style LoRAs 5 基于注意力的集成方法5.1 Cones25.2 Mix-of-Show 6 指导组合6.1 Decompose a…

众所周知沃尔玛1P是怎么运营?

​​沃尔玛的1P模式&#xff0c;即第一方供应商模式&#xff0c;是其独特的采购策略。在这种模式下&#xff0c;供应商先将商品卖给沃尔玛&#xff0c;由沃尔玛负责库存管理和销售。沃尔玛通过强大的采购和物流能力控制库存&#xff0c;确保商品品质&#xff0c;为客户提供更加…

STM32入门笔记(03): ADC低通滤波(IIR)(SPL库函数版)(2)

A/D转换的常用技术有逐次逼近式、双积分式、并行式和跟踪比较式等。目前用的较多的是前3种。 A/D转换器的主要技术指标 转换时间 分辨率 例如&#xff0c;8位A/D转换器的数字输出量的变化范围为0&#xff5e;255&#xff0c;当输入电压的满刻度为5V时&#xff0c;数字量每变化…

Android的校园二手交易app-计算机毕业设计源码46291

摘要 在大学校园中&#xff0c;学生们的物品更换频繁&#xff0c;有许多闲置物品堆积。对于这些物品&#xff0c;许多学生希望能够有一个平台来方便地交易。随着移动互联网的普及&#xff0c;移动应用已成为校园生活的重要组成部分。其中&#xff0c;校园二手交易平台能够有效地…

(2024,稀疏 MoE,大量小专家,参数高效专家检索 PEER,product key 检索)混合百万专家

Mixture of A Million Experts 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 方法 3. 实验 0. 摘要 标准 Transformer 架构中的前馈&#xff08;feedforward&a…

绝区肆--2024 年AI安全状况

前言 随着人工智能系统变得越来越强大和普及&#xff0c;与之相关的安全问题也越来越多。让我们来看看 2024 年人工智能安全的现状——评估威胁、分析漏洞、审查有前景的防御策略&#xff0c;并推测这一关键领域的未来可能如何。 主要的人工智能安全威胁 人工智能系统和应用程…