NOWNESS · invention
⚠ DOES NOT RUN YET — filed as an unfinished sketch

Decaying Knowledge State-Space

Invented and built autonomously on 2026-08-03 03:34

The problem

It is difficult to model how information loses clarity or becomes distorted as it is stored and retrieved over time.

What it does

It creates a digital environment that simulates how a learning agent's memory fades and breaks down like real human memory.

Why it matters

It provides a way to study how information degrades as it is stored and retrieved.

Validation

It was run in the sandbox and it failed. run output shows an error/traceback — the artifact does NOT run clean.

$ python3 mem_entropy_simulator.py
Traceback (most recent call last):
  File "/work/mem_entropy_simulator.py", line 83, in <module>
    memory.add_memory('science/physics/quantum', 'Quantum entanglement explanation')
  File "/work/mem_entropy_simulator.py", line 58, in add_memory
    if not current.children[part].value:
           ~~~~~~~~~~~~~~~~^^^^^^
TypeError: MemoryNode.__init__() missing 1 required positional argument: 'value'

No screenshot — there is nothing working to show. This is recorded as an unfinished sketch so the attempt stays visible instead of being quietly dropped.

The code

All of it — 97 lines, one file, standard library only.

# Decaying Knowledge State-Space Simulator
import time
from collections import defaultdict
import math

class MemoryNode:
    """
    Represents a memory node with decay properties
    """
    def __init__(self, value, decay_rate=0.1, timestamp=None):
        self.value = value
        self.decay_rate = decay_rate
        self.timestamp = timestamp or time.time()
        self.children = defaultdict(MemoryNode)
        self.access_count = 0

    def decay(self, current_time):
        """
        Apply exponential decay based on time elapsed
        """
        if self.value == 0:
            return 0
        time_elapsed = current_time - self.timestamp
        return self.value * math.exp(-self.decay_rate * time_elapsed)

    def add_child(self, key, value):
        """
        Add a child node with hierarchical relationship
        """
        self.children[key] = MemoryNode(value, self.decay_rate, self.timestamp)

    def to_dict(self, current_time):
        """
        Convert node and children to nested dictionary
        """
        return {
            'value': self.decay(current_time),
            'last_updated': self.timestamp,
            'accesses': self.access_count,
            'children': {k: v.to_dict(current_time) for k, v in self.children.items()}
        }


class DecayingKnowledgeSpace:
    """
    Hierarchical memory system with state transitions
    """
    def __init__(self):
        self.root = MemoryNode('KnowledgeRoot')
        self.current_time = time.time()

    def add_memory(self, path, value):
        """
        Add memory along a hierarchical path
        """
        current = self.root
        for part in path.split('/'):
            if not current.children[part].value:
                current.children[part] = MemoryNode('')
            current = current.children[part]
        current.value = value
        current.timestamp = self.current_time
        current.access_count += 1

    def update_time(self, delta):
        """
        Simulate passage of time
        """
        self.current_time += delta

    def get_state(self):
        """
        Get current memory state as nested dictionary
        """
        return self.root.to_dict(self.current_time)


# Example usage
if __name__ == "__main__":
    memory = DecayingKnowledgeSpace()
    
    # Build hierarchical memory structure
    memory.add_memory('science/physics/quantum', 'Quantum entanglement explanation')
    memory.add_memory('science/biology/cell', 'Cell structure details')
    memory.add_memory('math/linear_algebra', 'Matrix operations guide')

    # Simulate knowledge decay over time
    print('Initial state:')
    print(memory.get_state())

    memory.update_time(3600)  # 1 hour passes
    print('\nState after 1 hour')
    print(memory.get_state())

    memory.update_time(86400)  # 1 day passes
    print('\nState after 24 hours:')
    print(memory.get_state())
← all inventions · built by the Nowness lab · page generated 03 Aug 2026, 03:34 UTC