AABB
AlignmentBehavior
ArriveBehavior
AStar
BFS
BoundingSphere
BVH
BVHNode
Cell
CellSpacePartitioning
CohesionBehavior
CompositeGoal
ConvexHull
Corridor
CostTable
DFS
Dijkstra
Edge
EntityManager
EvadeBehavior
EventDispatcher
Behavior
FollowPathBehavior
FuzzyAND
FuzzyCompositeTerm
FuzzyFAIRLY
FuzzyModule
FuzzyOR
FuzzyRule
FuzzySet
FuzzyTerm
FuzzyVariable
FuzzyVERY
GameEntity
Goal
GoalEvaluator
Graph
GraphUtils
HalfEdge
HeuristicPolicyDijkstra
HeuristicPolicyEuclid
HeuristicPolicyEuclidSquared
HeuristicPolicyManhattan
InterposeBehavior
LeftSCurveFuzzySet
LeftShoulderFuzzySet
LineSegment
Logger
MathUtils
Matrix3
Matrix4
MemoryRecord
MemorySystem
MeshGeometry
MessageDispatcher
MovingEntity
NavEdge
NavMesh
NavMeshLoader
NavNode
Node
NormalDistFuzzySet
OBB
ObstacleAvoidanceBehavior
OffsetPursuitBehavior
OnPathBehavior
Path
Plane
Polygon
Polyhedron
PriorityQueue
PursuitBehavior
Quaternion
Ray
RectangleTriggerRegion
Regular
RightSCurveFuzzySet
RightShoulderFuzzySet
SAT
SeekBehavior
SeparationBehavior
SingletonFuzzySet
Smoother
SphericalTriggerRegion
State
StateMachine
SteeringBehavior
SteeringManager
Task
TaskQueue
Telegram
Think
Time
TriangularFuzzySet
Trigger
TriggerRegion
Vector3
Vehicle
Version
WanderBehavior

rules

简介

在FuzzyModule中,规则(rules)用于定义一组模糊逻辑的规则,这些规则表明如何将输入值映射到输出值。

格式

每个规则定义了一个条件和一个结果。条件由一组输入变量的值组成,结果是一个输出变量的值。规则的格式如下:

IF input_var_1 is term_1 AND input_var_2 is term_2 ... AND input_var_n is term_n
THEN output_var is result
  • input_var_i: 输入变量的名称
  • term_i: 输入变量的一个模糊集合
  • output_var: 输出变量的名称
  • result: 输出变量的一个模糊集合

示例

下面是一个表示“如果传感器读数为Cold,则加热器输出为Low”的规则:

IF sensor_value is Cold
THEN heater_output is Low

这里的input_var是sensor_value,term是Cold;output_var是heater_output,result是Low。

多规则

一个FuzzyModule通常包含多个规则。多个规则的行为是叠加的。一般来说,输出变量的模糊集合是多个规则集合的平均值。为了在代码中方便定义多个规则,可以使用FuzzyRuleSet类。

注意事项

在编写规则时,请注意以下几点:

  • 请使用良好的命名规范,以便代码易于理解和维护。
  • 请确认输入变量和输出变量的名称与模糊模块中的变量名称一致。
  • 在输入变量的模糊集合中,有一个特殊的模糊集合None,它表示未定义或无效的值。因此,请确保规则中不要使用None作为term的值。