Negative Weight Mapping - A Reinforcement Learning framework using persistent potential fields
Project description
NWM - Negative Weight Mapping
Apprendimento per Esclusione - Un framework che guida l'esplorazione e la stabilita utilizzando memorie persistenti di fallimento e successo.
Cos'e NWM?
Il Negative Weight Mapping trasforma l'esperienza passata in un Campo di Forza Potenziale. L'agente naviga lo spazio degli stati reagendo a:
- Forze Attrattive - Successi passati che guidano verso azioni ottimali
- Forze Repulsive - Fallimenti passati che allontanano da azioni pericolose
Caratteristiche Principali
| Feature | Descrizione |
|---|---|
| Dynamic Smart Lock | Protegge automaticamente le memorie di alta qualita |
| Adaptive Exploration | Riduce l'esplorazione quando trova strategie vincenti |
| Persistent Memory | I centroidi evolvono con "stiffness" progressiva |
| Fear & Greed | Evita le azioni pericolose prima di cercare il guadagno |
Installazione
cd PYTHONLIB
pip install -e .
Quick Start
import gymnasium as gym
from nwm import NWM
# Crea ambiente e agente
env = gym.make("CartPole-v1")
agent = NWM(
state_dim=env.observation_space.shape[0],
num_actions=env.action_space.n
)
# Training loop
for episode in range(100):
state, _ = env.reset()
done = False
while not done:
action = agent.select_action(state)
next_state, reward, terminated, truncated, _ = env.step(action)
done = terminated or truncated
agent.step(state, action, reward, next_state, done)
state = next_state
print(f"Episode {episode + 1}: Best = {agent.best_reward:.0f}")
API Reference
NWM
from nwm import NWM, NWMConfig
# Con configurazione personalizzata
config = NWMConfig(
max_centroids=500, # Massimo numero di centroidi
warmup_episodes=50, # Episodi di pura esplorazione
exploration_rate=1.0, # Tasso iniziale di esplorazione
exploration_decay=0.99, # Decay dell'esplorazione
min_exploration=0.05, # Esplorazione minima
)
agent = NWM(state_dim=4, num_actions=2, config=config)
# Metodi principali
action = agent.select_action(state, training=True)
agent.step(state, action, reward, next_state, done)
stats = agent.get_stats()
# Save/Load
agent.save("agent.pkl")
agent = NWM.load("agent.pkl")
NWMConfig
| Parametro | Default | Descrizione |
|---|---|---|
max_centroids |
500 | Numero massimo di centroidi in memoria |
warmup_episodes |
50 | Episodi di warmup prima del learning |
exploration_rate |
1.0 | Tasso iniziale di esplorazione |
exploration_decay |
0.99 | Fattore di decay |
min_exploration |
0.05 | Esplorazione minima |
merge_threshold |
0.3 | Soglia per il merge dei centroidi |
distance_cutoff |
2.5 | Distanza massima di influenza |
Struttura del Package
PYTHONLIB/
├── nwm/ # Package principale
│ ├── agents/ # Implementazioni agenti
│ ├── core/ # Componenti core (centroid, potential_field)
│ └── utils/ # Utilities (config)
├── examples/ # Esempi di utilizzo
└── tests/ # Test suite
Esempi
# Quick start
python examples/quickstart.py
# Training completo
python examples/cartpole_training.py --episodes 500
# Demo visuale
python examples/cartpole_training.py --demo
Versione: 1.0.0 Licenza: MIT Autore: CusterMustOfficial
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nwm_rl-1.0.0.tar.gz.
File metadata
- Download URL: nwm_rl-1.0.0.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a15cc915f19102d4e12f5e57d5fceef78a25835567e936ae9bdc32614332b10d
|
|
| MD5 |
6b6ab5369b277f445f53154f5bc0cf7e
|
|
| BLAKE2b-256 |
cf8185bc0b1b2faca8b03ec3e2e904b97625bba116939732754972f681afbddf
|
File details
Details for the file nwm_rl-1.0.0-py3-none-any.whl.
File metadata
- Download URL: nwm_rl-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1886f3b291dfec35c13719be8e0f64747251fa142cd2a3eca9b8be9be73b1715
|
|
| MD5 |
0a9c6bcb49259a62cc4b84cea6a82100
|
|
| BLAKE2b-256 |
ffc86a30ceaa345c5c4180fc66094e91deb60013a7fabbc70dd5e6eb69bbd729
|