有限状态自动机

class torchhd.structures.FiniteStateAutomata(dimensions, vsa: Literal['BSC', 'MAP', 'HRR', 'FHRR', 'BSBC', 'VTB', 'MCR'] = 'MAP', device=None, dtype=None)[来源]

基于超向量的有限状态自动机数据结构。

创建一个空的有限状态自动机。

Parameters:
  • dimensions (int) – 自动机的维度。

  • vsa – (VSAOptions, 可选): 指定使用的超向量类型和操作 (默认: "MAP").

  • dtype (torch.dtype, 可选) – 返回张量的期望数据类型。默认值:如果 None,则使用全局默认值(参见 torch.set_default_tensor_type())。

  • device (torch.device, 可选) – 返回张量的期望设备。默认值:如果 None,则使用当前设备作为默认张量类型(参见 torch.set_default_tensor_type())。device 对于 CPU 张量类型将是 CPU,对于 CUDA 张量类型将是当前的 CUDA 设备。

示例:

>>> FSA = structures.FiniteStateAutomata(10000)
add_transition(token: VSATensor, initial_state: VSATensor, final_state: VSATensor) None[来源]

向自动机添加一个转换。

Parameters:
  • token (VSATensor) – 用于更改状态的token。

  • initial_state (VSATensor) – 转换的初始状态。

  • final_state (VSATensor) – 转换的最终状态。

示例:

>>> letters = list(string.ascii_lowercase)
>>> letters_hv = torchhd.random(len(letters), 10000)
>>> T.add_transition(letters_hv[0], letters_hv[1], letters_hv[2])
clear() None[来源]

清空树。

示例:

>>> FSA.clear()
transition(state: VSATensor, action: VSATensor) VSATensor[来源]

返回自动机的下一个状态加上一些噪声。

Parameters:
  • state (VSATensor) – 转换的初始状态。

  • action (VSATensor) – 用于改变状态的token。

示例:

>>> FSA.transition(letters_hv[1], letters_hv[0])
tensor([ 1.,  1., -1.,  ..., -1., -1.,  1.])