创建
图标

功能
创建新实体个体,包括Agent繁殖、创建新Agent和创建新Link三种情况。
要点
Agent繁殖
- 顾名思义,用于Agent个体需要继承性创建本种群新个体的场合
- 当组件用于一个Agent内个体流程时可以采用,其它情况不行
- 此时系统提供了方便“继承”式赋值新个体属性的操作,详见下设置方法。
所谓继承性创建,比如需要记录母体个体信息、需要保持某种母体特征,或者“稀释”某种母体的数值属性时,比如:
- 小羊继承了母羊的颜色(
Color内置属性) - 小羊的体力能量来自稀释母羊的一部分体力能量
创建新Agent
- 以旁观者视角创建任意Agent种群新个体。
- 相比于Agent繁殖的执行主体只能是母体对象,创建Agent可以被任意主体对象执行。
创建Agent常用于按一定规则生成,如产品用户群体规模的增长。
创建新Link
通过指定起止点Agent创建连接关系。
新生个体归属
任何情况下创建出的新个体都属于基础实体种群。
无论哪种类型,创建的前提都是模型有基础实体存在,哪怕他的个体数量为0。
新生个体的属性和行为
- 新个体行为与基础实体完全相同
- 新个体拥有基础实体个体的所有属性,属性状态可以在创建过程中赋值指定
- 如果创建时不指定属性,对Agent繁殖来说,新个体将按母体当时状态继承;对其它两种创建方式,将按默认值
- 在被创建后的下一个Tick中,新个体才会执行其主动行为
- 你可以让已有实体或观察者请求调用个体行为来实现让新个体在被创建的当前Tick就开始行动
设置方法

选择创建分类
- Agent繁殖/创建新Agent/创建新Link后,各种情况的配置详细见下。
- 当组件所在流程是Agent内流程时有Agent繁殖可选,其余两种任意情况都不可选。
Agent繁殖

-
繁殖数量
输入框接受返回自然数的表达式。
-
变异属性设置
设置与母体属性值不同的属性赋值

假设你研究一个物种种群的繁衍需要对个体间的血缘关系进行建模,以下做法可以参考
- 为该物种Agent创建名为
Mother的变量个体属性,用于在新个体时存储母体对象信息 - 在全局创建反映母子关系的单向Link实体,并在Agent繁殖动作后创建该Link实体从母体自己指向所有新生个体
创建新Agent

指定Agent种群
下拉菜单选择当前模型中已存在的Agent对象,未来的新个体也将属于该种群。

新个体属性设置

-
如果不配置,所有新个体属性将被赋予相应数据对象设置的初始值。在这种情况下,详细设置按钮右侧会显示“默认”标签,如上图所示。
-
如果需要统一或单独指定新创建个体的属性值,点击详细设置按钮后,在弹出如下图设置窗口中操作。

-
界面和设置方法与Agent属性面板中个体属性设置基本相同。
-
相比于Agent个体属性配置,右上角模式选择中多了统一指定新值选项,左上角是个体数量表达式输入栏。
-
操作方法相同不再赘述,这里说明三种模式(上图右上角)的含义:
- 默认:指新创建的所有个体的所有属性按照该Agent个体属性初值赋值
- 统一指定:指新创建的所有个体的所有属性统一按照指定值赋值,如上图
- 个体指定:可以指定每个新个体的每个属性值,同Agent属性面板中个体属性设置
-
配置完成后,点击“确认”按钮。
-
无论是统一指定还是个体指定,配置后的明细配置按钮右侧会显示“个性化”字样,如下图所示。

创建新Link

-
指定Link种群
下拉菜单选择当前模型中已经建模的任意Link对象,未来的新个体也将属于该种群。
-
指定Link的起点Agent

- 支持多个起点
- 点击按钮添加一个起点输入框,接受返回Agent或[Agent]格式的表达式
-
指定Link的终点Agent
- 支持多个终点
- 操作同起点,略
由于创建Link支持多起点(M个)、多终点(N个),所以组件会试图创建M*N次,当然实际创建的结果需要考虑重复无效、创建概率的情况。
-
指定权重
输入框接受Number格式的表达式,所有新创建的Link个体的权重执行该值。

-
指定创建概率
- 输入框接受取值范围为[0,1]的Number格式表达式。
- 运行时每个Link个体以该设定概率采样决定是否被创建。
组件输出数据
对于新创建的个体对象数据,
- 格式为[Entity](即使创建数量为1)。
- 后续对象计算公式以
component_name.Entities格式访问。 - 本组件动作后计算以"This.Entities"。
示例
- 红色母蚂蚁的初始能量为100
- 所有蚂蚁每2个Tick会繁殖1只后代
- 繁殖时母体会稀释50%的能量
有10个个体的用户Agent,每个个体随机找一个目标Agent建立Link,会形成一个关系网。
