nearFull, nearEmpty
This commit is contained in:
+59
-15
@@ -415,8 +415,8 @@ context: SeContext
|
||||
in_context: Fixed
|
||||
rf: ( active: 600x )
|
||||
|
||||
condition: NOT (Rrp empty)
|
||||
out_context: RRPNotEmpty
|
||||
condition: NOT (rp empty)
|
||||
out_context: RPNotEmpty
|
||||
|
||||
condition: NOT (CaTrace empty)
|
||||
out_context: CaTracesNotEmpty
|
||||
@@ -461,21 +461,65 @@ episode: CaTracesClearance
|
||||
|
||||
#### RP->RRP shuttling
|
||||
|
||||
How RP is moved to RRP
|
||||
This happens in the seconds loop, once per second. The recruitment step reads Tr_Ca and moves a fraction of the available RP into the RRP:
|
||||
This happens in the seconds loop, once per second.
|
||||
|
||||
current_recruitment_rate = map_trace_to_speed(Tr_Ca) # /s
|
||||
refill_amount = current_recruitment_rate *dt_slow_s* N_RP * (Max_RRP - N_RRP) / Max_RRP
|
||||
refill_amount = max(0.0, refill_amount)
|
||||
refill_amount = min(refill_amount, N_RP)
|
||||

|
||||
|
||||
N_RRP = min(N_RRP + refill_amount, Max_RRP)
|
||||
N_RP = max(0.0, N_RP - refill_amount)
|
||||
Three factors multiply together to determine how many vesicles move:
|
||||
current_recruitment_rate — set by Tr_Ca history. High recent activity means faster recruitment. This is the only place Tr_Ca has any effect in the model.
|
||||
N_RP — how many vesicles are available in the reserve. As N_RP depletes, fewer vesicles are available to move regardless of how fast the rate is. This is the depletion bottleneck — a synapse that has been firing for minutes may have a high Tr_Ca driving fast recruitment, but if N_RP is nearly empty there is nothing left to recruit.
|
||||
(Max_RRP - N_RRP) / Max_RRP — the headroom in the RRP, normalised. When the RRP is nearly full, recruitment slows automatically because there is little room to fill. When the RRP is empty after a burst, headroom is maximal and recruitment runs at full speed. This prevents overfilling and makes the system self-regulating — recruitment is fastest precisely when it is most needed.
|
||||
The two guard clauses ensure the arithmetic stays physical: refill_amount cannot be negative, and cannot exceed what N_RP actually contains.
|
||||
##### RP->RRPSlow: Episode
|
||||
|
||||
Recruitment machinery at base speed:
|
||||
|
||||
- Synapse quiet: CaTrace empty
|
||||
- Supply available: RP medium
|
||||
- Headroom available: RRP medium
|
||||
|
||||
```Gen
|
||||
episode: RP->RRPSlow
|
||||
contained_by: BEH-PRE
|
||||
|
||||
in_context: RPNotEmpty
|
||||
rf: ( active: 24x ) # Slow
|
||||
|
||||
hypothesis: (RRP medium) AND (RP Medium) AND (CaTrace empty)
|
||||
action: [RP decrease, RRP increase]
|
||||
trace: None
|
||||
```
|
||||
|
||||
##### RP->RRPFast: Episode
|
||||
|
||||
Recruitment high:
|
||||
|
||||
- Recent activity has primed the machinery: CaTrace medium
|
||||
- Supply Available: RP medium or full
|
||||
- Headroom available: RRP medium or
|
||||
|
||||
|
||||
```Gen
|
||||
episode: RP->RRPFast
|
||||
contained_by: BEH-PRE
|
||||
|
||||
in_context: RPNotEmpty
|
||||
rf: ( active: 24x ) # Fast
|
||||
|
||||
hypothesis:
|
||||
action: [RP decrease, RRP increase]
|
||||
trace: None
|
||||
```
|
||||
|
||||
##### RP->RRPMaximal: Episode
|
||||
|
||||
...
|
||||
|
||||
```Gen
|
||||
episode: RP->RRPMaximal
|
||||
contained_by: BEH-PRE
|
||||
|
||||
in_context: RPNotEmpty
|
||||
rf: ( active: 24x ) # Maximal
|
||||
|
||||
hypothesis:
|
||||
action: [RP decrease, RRP increase]
|
||||
trace: None
|
||||
|
||||
### min: behaviors
|
||||
|
||||
|
||||
Reference in New Issue
Block a user