Izhikevich 신경 세포는 단순한 이산 시간 스테핑 시뮬레이션에 사용하도록 설계 생물학적 뉴런의 또 매우 효과적인 모델이다. 이 골프 도전에서는이 모델을 구현하게됩니다.
매개 변수
이 모델은 생리적으로 정확한 모델의 수십 개의 매개 변수와 비교하여 2 개의 미분 방정식으로 구성된 7 개의 변수 만 포함합니다.
v
및u
신경 세포의 두 개의 상태 변수이다. 여기서,v
시간에 따른 세포 전위를 나타내는 "빠른"변수이고,u
특정 막 특성을 나타내는 "느린"변수이다.v
이 시뮬레이션의 출력 변수로서 가장 중요한 하나이다.a
,b
,c
및d
신경 세포의 특성을 설명하는 상수를 고정한다. 다른 유형의 뉴런은 원하는 행동에 따라 다른 상수를 갖습니다. 특히,c
리셋 전위는 스파이 킹 후 세포가 복귀하는 막 전위이다.I
는 뉴런의 입력 전류를 나타냅니다. 네트워크 시뮬레이션에서는 시간이 지남에 따라 변경되지만, 우리의 목적을 위해I
고정 상수로 입니다.
모델
이 모델에는 매우 간단한 의사 코드가 있습니다. 먼저 상수 값을 가져 와서 abcd
초기화 v
하고 사용합니다 u
.
v = c
u = b * c
다음으로 시뮬레이션 코드를 원하는 횟수만큼 반복합니다. 각 반복은 1 밀리 초의 시간을 나타냅니다.
for 1..t:
if v >= 30: # reset after a spike
v = c
u = u + d
v += 0.04*v^2 + 5*v + 140 - u + I
u += a * (b*v - u)
print v
특정 실제 구현에는 수치 정확도를위한 추가 단계가 포함되지만 여기에는 포함되지 않습니다.
입력
입력으로, 프로그램 / 함수의 값을 취해야한다 a
, b
, c
, d
, I
, 및 t
(시뮬레이션 시간 단계의 수). 일단 설정되면 간단한 시뮬레이션 중에 이러한 매개 변수가 변경되지 않습니다. 입력 순서는 중요 하지 않습니다 . 프로그램이 이러한 매개 변수를 취하는 순서를 지정할 수 있습니다.
산출
출력은 v
시뮬레이션 과정 에서 셀의 막 전위 (변수에 의해 주어진 )를 나타내는 숫자의 목록입니다 . 목록은 적절한 형식 일 수 있습니다.
출력에 시뮬레이션의 0 번째 값 (시간이 지나기 전에 초기 구성)을 포함할지 여부를 선택할 수 있습니다. 예를 들어 0.02 0.2 -50 2 10 6
(for a b c d I t
)의 입력에 대해
-50
-40
-16.04
73.876224
-42.667044096
-25.8262335380956
29.0355029192068
또는
-40
-16.04
73.876224
-42.667044096
-25.8262335380956
29.0355029192068
허용됩니다.
언어가 부동 소수점을 처리하는 방법에 따라 값이 위의 값 과 정확히 같을 필요는 없습니다 .
참조 구현
다음은 모델을 시연하기 위해 Perl로 작성한 TIO 구현 입니다. 매개 변수는 위에 링크 된 논문에서 "채터 링 (chattering)"뉴런의 매개 변수이며, 이는이 모델이 높은 활동 상태와 낮은 활동 상태 사이의 교대와 같은 뉴런의보다 복잡한 특성을 어떻게 재현 할 수 있는지를 보여줍니다. 출력을 보면 뉴런이 즉시 여러 번 스파이크하는 위치를 볼 수 있지만 몇 번 더 스파이크하기 전에 잠시 기다립니다 (셀 입력 전압 I
이 항상 일정하더라도).
t
이제까지 부정적?