- commit
- 5907130
- parent
- d554217
- author
- im_wower
- date
- 2026-03-31 15:44:26 +0800 CST
fix: 数值稳定性——phi soft clamp + 边权递减增长
2 files changed,
+8,
-2
Raw patch view.
1diff --git a/cie/dynamics.py b/cie/dynamics.py
2index 488d2d30c8148aaf42060a29d6636d82cf9e6b75..5fc2dd3fe39b805fb58ca8b8214aa1e02f9d12a8 100644
3--- a/cie/dynamics.py
4+++ b/cie/dynamics.py
5@@ -62,6 +62,12 @@ class Dynamics:
6 - self.phi_damping * phi_v # 全局阻尼
7 )
8 self.state.phi.update(new_phi)
9+ # Soft clamp: prevent phi divergence
10+ max_phi = max((abs(v) for v in self.state.phi.values()), default=1.0)
11+ if max_phi > 10.0:
12+ scale = 10.0 / max_phi
13+ for k in self.state.phi:
14+ self.state.phi[k] *= scale
15
16 # ── 激活传播 ──
17
18diff --git a/cie/runtime.py b/cie/runtime.py
19index fd019adb63d1a3ed6f2ecd03c162b88865a562b1..11a99b71b747939f1bcb932d625e3c336d45028f 100644
20--- a/cie/runtime.py
21+++ b/cie/runtime.py
22@@ -87,8 +87,8 @@ class CIERuntime:
23 asym = self.rng.gauss(0.0, 0.1)
24 self.graph.add_edge(
25 src, dst,
26- weight=existing_w + 1.0 + abs(asym),
27- bwd_weight=existing_w + 1.0 - abs(asym) * 0.5,
28+ weight=existing_w + 1.0 / (1.0 + existing_w * 0.1) + abs(asym),
29+ bwd_weight=existing_w + 1.0 / (1.0 + existing_w * 0.1) - abs(asym) * 0.5,
30 edge_type='bigram'
31 )
32