Operation Modes
操作模式定义了改模式下的标准交互方式
Operation Modes
操作模式定义了改模式下的标准交互方式
NEGATIVE_CONDITIONS_REMOVING
消除否定条件
如:
Action enter_room(person):
Pre: not locked(door)
===>
```
Fluent door_unlocked = not locked(door) # 新建辅助流变量
Action enter_room(person): Pre: door_unlocked ```
DISJUNCTIVE_CONDITIONS_REMOVING
消除析取条件:拆解为纯合取范式
如?
Action board(vehicle):
Pre: at(vehicle) in {dock1 or dock2}
===>
```
Action board_at_dock1(vehicle):
Pre: at(vehicle)=dock1
Action board_at_dock2(vehicle): Pre: at(vehicle)=dock2 ```
CONDITIONAL_EFFECTS_REMOVING
消除条件化效果
如?
Action repair(robot):
if has_tool(robot):
then: status(robot) = operational
else: status(robot) = broken
===>
```
Action repair_with_tool(robot):
Pre: has_tool(robot)
Effect: status(robot)=operational
Action repair_without_tool(robot): Pre: not has_tool(robot) Effect: status(robot)=broken ```
GROUNDING
实例化
如?
Action move(vehicle: Vehicle, from: Location, to: Location)
===>
Action move_truckA_loc1_loc2
Action move_truckA_loc1_loc3
Action move_truckB_loc2_loc4
finite-domain parameter
有限域参数,和无限域参数对应
The “Compiler” OM defines a transformation of an AbstractProblem into another one.
将抽象规划问题(AbstractProblem)形式化重构为逻辑等价的另一种表达,消除特定复杂性以便高效求解
stateless
支持任意状态跳转(无需顺序执行)
SequentialSimulator
序列化模拟器。为给定规划问题提供交互式状态空间探索工具,支持动作可行性验证、状态跳转及为过程可视化提供可能。
PlanValidator
计划验证,返回计划是否OK
warm_start_plan
热启动:提供给规划器的一个初始可行解(或部分解)。规划器利用这个初始解来引导搜索过程,通常能够显著减少搜索时间或得到更高质量的解。
OptimalityGuarantee
最优解选项 1. SOLVED_OPTIMALLY:最优解 2. SATISFICING:次优解
PlanGenerationResultStatus
规划结果状态
OneshotPlanner
单次规划器,给定规划问题,返回解决方案路径(solution plan),或声明该问题不可解(unsolvable)。
which can be retrieved automatically from a problem p using the p.kind property
直接限定 或者 根据问题类型自动选择
plug-in system
可拔插的功能扩展槽.。主程序提供基础框架(插槽),开发者编写独立模块(插件),无需修改主程序即可动态添加新功能。
本质解耦:主程序只关心 «做什么»(接口标准),插件负责 «怎么做»(具体实现),通过插件管理器完成动态组装。
Factory class
工厂类,一个专门负责创建对象的“代工厂”,你告诉它“要什么”(条件),它负责造出对应对象。 如下: ```
class ShapeFactory: def create_shape(self, name): if name == "circle": return Circle() elif name == "square": return Square() # 新增只需扩展工厂内部 elif name == "triangle":<br /> return Triangle()
factory = ShapeFactory() shape = factory.create_shape("circle") # 无需知道Circle类细节 shape.draw() # 画出一个圆 ```
mixin
即“混入”,是一种编程模式,在 Python 等面向对象语言中,通常它是实现了某种功能单元的类,用于被其他子类继承,将功能组合到子类中。
如 继承下面的类(MappingMixin)的 子类可以具有使用字典一样调用属性的功能。 ``` class MappingMixin: def getitem(self, key): return self.dict.get(key)
def __setitem__(self, key, value):
return self.__dict__.set(key, value)
```