UPDATE RULE PLUGINS

complement

image

Update rule plugin for auto-associative memory and temporal integration, updating the state by removing the current signal.

See also: https://creatingintelligence.org/#update-rules

Details

  • Plugin for auto, delay, and temporal components.
  • Transparently handles multisets and inhibitory signals.
  • Corresponds to the set complement after deduplication.

Auto-associative memory with complement update

As a plugin for the auto component, the complement update rule removes the query pattern from the retrieved pattern, returning only the completed or predicted elements.

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "send": [1]},
    {"component": "auto", "plugin": "complement", "send": [2], "receive": [1]},
    {"component": "output", "receive": [2]}
  ]}

image

See also: https://creatingintelligence.org/#auto-associative-memory

Delay with complement plugin

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "send": [1]},
    {"component": "delay", "plugin": "complement", 
        "send": [11], "receive": [1], "capacity": 1},
    {"component": "output", "receive": [11]}
  ]}

image

Temporal associative memory with complement plugin

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "send": [1]},
    {"component": "temporal", "plugin": "complement", 
        "send": [11], "receive": [1], "capacity": 2},
    {"component": "output", "receive": [11]}
  ]}

image

Source code

def complement(config):
    return {"updaterule": lambda y, x: resolve_graded(
        multiset([y, [-i for i in x]])), "label": "▽", "size": 20}