Files
organism/modules/winnertakeall/winnertakeall.md
T
2026-05-29 11:07:54 +02:00

4.3 KiB

Table of Contents
include_toc
include_toc
true

winnertakeall.md

WINNERTAKEALL

Qui comprendiamo i behaviors che associamo al winnertakeall. I comportamenti li consideriamo avvenire di NIGHT. E' un po' una novita' ma ha senso, si tratta di un comportamento a livello di circuiti, e quindi riorganizzazione notturna.

  • Questo e' il nuovo tipo di espansione che permette di specificare un "circuito" di possibilita'. A differenza di BD che espande PRE implicitamente e trattando PRE tutti allo stesso modo.
  • l'espansione determina la forma dei "circuiti" espressi dal winnertakeall.
  • L'eventuale modulazione di winnertakeall, per ora non la prendo in considerazione. Sarebbe creare nuove relations che servirebbero quando si allungano AXON, o addirittura si creano nuovi neuroni.
  • in excitation e inhibition facciamo il binding di PRESYNAPSE, POSTSYNAPSE e ASTROSYNAPSE e implicitamente creaiamo e eliminiamo synapse
  • @XXX e' un'attualita' che viene espressa direttamente, non calcolata dal interprete come per espansione di PRESYNAPSE. L'attualita' espressa viene riferita.
WINNERTAKEALL

  type: comprehension

  include: 
    ../../elements/neuron.md

  expansion:
  
    @NEU_005: EXPAND [ comprehension: NEURON ]
    @NEU_006: EXPAND [ comprehension: NEURON ]

  instantiation:

    # Scope
    !NIGHT: SCOPE [ reference: &ORGANISM.!NIGHT]

    # Behaviour

    ## external

    @OUT-EXCI-001: BEHAVIOUR [ behaviour: OUT_EXCITATION, __GroupPossible: GROUP [
       pre: @NEU_001.@AXO_001._presynapse, 
       pre: @NEU_002.@AXO_001._presynapse ] ]

    @IN-EXCI-001: BEHAVIOUR [ behaviour: IN_EXCITATION, __GroupPossible: GROUP [
       post: @NEU_001.@D_BRANCH_002._postsynapse, 
       post: @NEU_002.@D_BRANCH_002._postsynapse, 
       astro: @NEU_001.@D_BRANCH_002._astrosynapse ] ]

    @IN-INHI-001: BEHAVIOUR [ behaviour: IN_INHIBITION, __GroupPossible: GROUP [
       post: @NEU_001.@SOMA_001._somasynapse, 
       post: @NEU_002.@SOMA_001._somasynapse, 
       astro: @NEU_001.@SOMA_001._somasynapse ] ]

    ## internal

    ### Area xxx

    @: BEHAVIOUR [ behaviour: EXCITATION, __GroupPossible: GROUP [ 
      pre: @NEU_001.@AXON-001._presynapse, 
      post: @NEU_001.@D_BRANCH_001._postsynapse, 
      astro: @NEU_001.@D_BRANCH_001._astrosynapse ] ]

EXCITATION

EXCITATION

  type: container

  activity_scope: !NIGHT

  snippet:

    # *Fixed
    @: CONTEXTOR [snip: ExcitationPossible, RF: active 60x]

    # *ActivateAstroPostPre
    @: BINDER [snippet: ExcitationBind, RF: active 6x]
    @: ACCUMULATOR [snippet: ClearTraces, RF: active 6x]

    *DeActivateAstroPost
    @: BINDER [snippet: ExcitationUnbind, RF: active 6x]

*Fixed

ExcitationPossible

Qui devo capire queste tracce chi le lascia e se sono esclusive?

ExcitationPossible

  in_context: &Fixed

    condition: ???
      out_context: *ActivateAstroPostPre

    condition: ( BadTraces fullness )
      out_context: *DeActivateAstroPost
*ActivateAstroPostPre
ExcitationBind

Qui attiviamo la Syn collegando Pre e Post. Lo facciamo per tutte le relazioni fino a quando GoodTraces fullness

ExcitationBind

  in_context: &ActivateAstroPostPre

    hypothesis: ( GoodTraces fullness ) AND NOT ( _Astrosynapse full ) AND NOT ( _Presynapse full ) AND NOT ( _Postsynapse full)
      bind: [_Presynapse increase, _Postsynapse increase, _Astrosynapse increase]
      trace: None?

    hypothesis: ( GoodTraces fullness ) AND 
      ( NOT __GroupPossible.pre full ) AND 
      ( NOT __GroupPossible.post full ) AND 
      ( NOT __GroupPossible.astro full)
      bind: [__GroupPossible.pre, __GroupPossible.post, __GroupPossible.astro ]
      trace: None?
ClearTraces
ClearTraces

  in_context: &ActivateAstroPostPre

    hypothesis: GoodTraces NOT empty
      action: GoodTraces decrease
      trace: None?
*DeActivateAstroPostPre
ExcitationUnbind

Qui deattiviamo la Syn

ExcitationUnbind

  # Devo essere sicuro di eliminare i 3 che sono collegati, non a caso. Qui forse il Bind e' prima della ipotesi, perche' dobbiamo assicurarci ci sia una sinapsi da sciogliere.

  in_context: &DeActivateSynPostPre
  
    hypothesis: (BadTraces fullness) AND (NOT bind_condition[__GroupPossible.pre, __GroupPossible.post, __GroupPossible.astro] empty )
      unbind: [__GroupPossible.pre, __GroupPossible.post, __GroupPossible.astro]
      trace: None?