使用ConGolog对动态领域进行建模
1. 引言
为了说明如何使用框架对领域进行建模,我们以一个简单的邮购业务为例。假设该业务只销售一种产品,且只有两个主体:订单处理员和仓库管理员。订单处理员在等待电话铃声时处理订单付款,电话响起时接收客户订单;仓库管理员负责处理订单处理员收到的订单,当订单处理员处理完付款后发货,同时在供应商发货时接收货物。
订单处理有两种可能的方式,如下流程图所示:
graph LR
A[PhoneRinging?] -->|Yes| B[OrderMade(order)]
B --> C{PaymentProcessed(order)?}
B --> D{OrderFilled(order)?}
C -->|Yes| E[OrderShipped(order)]
D -->|Yes| E
2. 用GDL对领域动态进行建模
ConGolog模型的第一个组件是对领域动态和初始状态的规范说明,这里使用GDL。在模型中,世界从特定的初始状态开始,通过各主体的行动演变为其他可能的状态。状态用流(fluents)来描述,关系流的真值随状态变化,功能流的值也随状态变化。
例如, shipOrder(agt, order) 表示主体 agt 发货的动作, OrderShipped(order) 表示订单已发货的属性。这个属性在初始状态可能为假,但在 ship
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



