RFTSystems's picture
Upload 7 files
e142bc5 verified
import numpy as np
import random
class RFTAgent:
def __init__(self, phi_init, tier, mutation_rate, drift_rate):
self.phi = phi_init
self.tau_eff = 0.0 # Initial tau_eff, will be updated
self.tier = tier
self.fitness = 0.0 # Initial fitness, will be updated
self.mutation_rate = mutation_rate
self.drift_rate = drift_rate
self.history = {
'phi': [],
'tau_eff': [],
'tier': [],
'fitness': []
}
def update_tau(self):
# tau_eff = 0.5*phi + random noise (using uniform for simplicity, can be normal)
self.tau_eff = 0.5 * self.phi + random.uniform(-0.1, 0.1)
def mutate(self):
# phi = phi + random.normal(0, mutation_rate)
self.phi += np.random.normal(0, self.mutation_rate)
def drift(self):
# phi = phi + drift_rate * tau_eff
self.phi += self.drift_rate * self.tau_eff
def update_fitness(self):
# fitness = abs(phi) + abs(tau_eff) + tier*0.1
self.fitness = abs(self.phi) + abs(self.tau_eff) + self.tier * 0.1
def step(self):
self.mutate()
self.drift()
self.update_tau()
self.update_fitness()
self._log_history()
def _log_history(self):
self.history['phi'].append(self.phi)
self.history['tau_eff'].append(self.tau_eff)
self.history['tier'].append(self.tier)
self.history['fitness'].append(self.fitness)
print("agent.py created successfully.")