anima-experience ์ ์์ง๋ค์ ํ๋ฉด ์๋ ํ์ด์ฌ์ผ๋ก ๋์ด๋ฆฐ ๊ฒ โ ์ํ์ ๊ทธ๋๋ก, ์บ๋ฒ์ค๋ ์๊ณ , ์๋๋ก ์ฌํ๋๋ฉฐ ํ ์คํธ๋๋ค
anima-experience ๋ ๋ธ๋ผ์ฐ์ ์บ๋ฒ์ค์์ ๋ค ๊ฐ์ ์๋ฎฌ๋ ์ด์
์ 60ํ๋ ์์ผ๋ก ๋๋ฆฝ๋๋ค. ์ด
์ ์ฅ์๋ ๊ฑฐ๊ธฐ์ ๊ทธ๋ฆฌ๋ ๋ถ๋ถ์ ๊ฑท์ด๋ธ ๊ฒ์
๋๋ค โ ์ํ๋ง, ํ๋ฉด ์์ด, ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง์ผ๋ก,
์๋๋ฅผ ์ฃผ๋ฉด ๊ทธ๋๋ก ์ฌํ๋๊ณ ๋จ์ธ(assert)ํ ์ ์๊ฒ. ์ฌ๊ธฐ์ ๋ ๊ฐ์ง๊ฐ ๋ ์์ต๋๋ค: ๋ค ์์ง์ด
ํ๋์ ์๊ณ๋ฅผ ๊ณต์ ํ ๋ ๋ฌด์์ผ๋ก ํฉ์ณ์ง๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๊ธฐ ์ํ IIT 4.0 ์์ง.
์์ง์ ๊ทธ๋ฆฌ์ง ์๊ณ , ์ค๋ ๋๋ฅผ ๋ง๋ค์ง ์๊ณ , ์๊ธฐ ์๊ณ๋ฅผ ๊ฐ์ง ์์ต๋๋ค. ํ ํฑ ์งํ์ํค๊ณ ๊ฒฐ๊ณผ๋ฅผ
์ฝ์ผ๋ฉด ๋ฉ๋๋ค. ์
์ถ๋ ฅ์ viewer/ ํ ๊ณณ์๋ง ์๊ณ , ์์ง์ ๊ทธ ์กด์ฌ๋ฅผ ๋ชจ๋ฆ
๋๋ค.
pip install -e ".[dev]"๋ฐํ์ ์์กด์ฑ ์์. ํ์ด์ฌ 3.11 ์ด์.
python -m anima_reborn.vieweranima-reborn viewer
local http://127.0.0.1:8420
network http://192.168.1.20:8420
bound to every interface โ anyone on this network can reach it
emergence 60Hz ยท crystal 20Hz ยท repulsion 30Hz ยท pipeline 30Hz ยท base 30Hz ยท coupled 30Hz ยท align 60Hz
ctrl-c to stop
์ผ๊ณฑ ๊ฐ ํญ, ์ค์๊ฐ ์ฌ๋ผ์ด๋, ์๋ณธ๊ณผ ๊ฐ์ ํ๋ฉด โ ๋ค๋ง ๋ชจ๋ ์ซ์์ ๋ชจ๋ ์ ์ด ํ์ด์ฌ ์์ง์์ ์ต๋๋ค. ํ์ด์ง๋ ๊ทธ๋ฆฌ๊ธฐ๋ง ํ๊ณ ๊ณ์ฐ์ ์ ๋ ํ์ง ์์ต๋๋ค. ๊ทธ๋์ ์ด ํ๋ฉด์ด "๋ ๋ฒ์งธ ๊ตฌํ"์ด ์๋๋ผ ์ด์ ๊ฒฐ๊ณผ์ ๋ํ ์ฆ๊ฑฐ๊ฐ ๋ฉ๋๋ค.
ํ๋ ์์ ๋ฐ์ด์ฃผ๊ธฐ(push) ๋ฐฉ์์
๋๋ค โ ์์ง๋ง๋ค ์๋ณธ๊ณผ ๊ฐ์ ์๋๋ก ๋๋ ํ์ด๋จธ ์ค๋ ๋๊ฐ
์๊ณ , ํ์ด์ง๋ ์์ ์ฐ๊ฒฐ(text/event-stream) ํ๋๋ฅผ ์ด์ด๋๊ณ ํ๋ฉด ์ฃผ์ฌ์จ์ ๋ง์ถฐ ๊ทธ๋ฆฝ๋๋ค.
๋ ๊ฒฝ์ ์ค์ธก 61 / 21 / 31 / 31 / 31 / 31 / 61 fps ๋ก ์๋ณธ๊ณผ ๊ฐ์ ์๋์
๋๋ค. ๋ฌผ์ด๋ณด๊ธฐ(ํด๋ง)
๋ฐฉ์์ผ ๋๋ 10fps์ ๋ฌถ์ด๊ณ ํ๋ ์๋ง๋ค TCP ์ฐ๊ฒฐ์ ์๋ก ๋งบ์๋๋ฐ, ์์ง ์์ฒด๋ 1ํฑ์
0.02~0.23ms๋ฐ์ ์ ๊ฑธ๋ฆฌ๋ฏ๋ก ๋ณ๋ชฉ์ ์๋ฎฌ๋ ์ด์
์ด ์๋๋ผ ํด๋ง ์ฃผ๊ธฐ์์ต๋๋ค.
ํ์ด๋จธ๋ ๋ณด๋ ์ฌ๋์ด ์์ ๋๋ง ๋๋๋ค โ ์๋ณธ์ด ๋นํ์ฑ ํญ์ ๊ฑด๋๋ด ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
--host 127.0.0.1 ๋ก ์ด ๊ธฐ๊ธฐ์๋ง ์ด ์ ์๊ณ , --port ๋ก ํฌํธ๋ฅผ, --seed ๋ก ์์ฐ์ ์ ํํ
์ฌํํ ์ ์์ต๋๋ค.
์๋์ ๋ค๋ฅธ ์์ง๋ค์ ์ ๋ถ ๊ณต์ง ํฑ ์นด์ดํฐ๋ก ํ์ ํฉ๋๋ค (phase = tick * PHASE_RATE) โ
๋ฉ์ถ๋ ๋ฒ์ด ์๋ ์ ๋ฌผ์ด์ฃ . anima_reborn.base ๋ ๊ทธ๊ฑธ ๋นผ์์ต๋๋ค. ์์(phase)์ด ์ํ ๋ณ์๊ฐ
๋๊ณ , ๊ฒฐ์ (crystal)์ ์ฃผ๊ธฐ-2 ์ ๊ธ๋ง์ด ๊ทธ๊ฒ์ ๋์๊ฐ๊ฒ ํ ์ ์์ต๋๋ค. ๊ตฌ๋๋ถ์์ ํฑ
์นด์ดํฐ๋ ์์ ํ ์ฌ๋ผ์ง๋๋ค.
TimeCrystal.step() โโ ํ์ โโโถ ์ ๊ธ(LOCKED) ์ผ ๋๋ง phase += PHASE_RATE
โ
A ์ G ๊ฐ ยฑ(sin phase, cos phase) ๋ชฉํ๋ฅผ ํฅํด ํ๋ฅ
โ
๊ฐ๊ฐ์์ ์ก์ ์์ธ ๊ด์ธก ํ๋์ฉ ํ๋ณธ ์ถ์ถ
โ
H(L), H(R), H(L,R) โ ์ํธ์ ๋ณด๋
์ฃผ์ฅ. ํ๋ฅ์ ๊ณต์ ์ ๋ณด๋ ์๋ฅ์ ์๊ฐ์ ์ง์๋ก ์ง๋ถ๋๋ค. ๊ฒฐ์ ์ ๋ น์ด๋ฉด A์ G ์ฌ์ด์ ๊ฐ๊ทน์ ์ด์๋จ๋๋ฐ(๋ ์์ง์ ์ฌ์ ํ ๋ฒ์ด์ ธ ์์ต๋๋ค) ๊ทธ ์์ ์ ๋ณด๋ ์ฃฝ์ต๋๋ค. ๋ค์ ์ผ๋ฆฌ๋ฉด ์ ๋ณด๊ฐ ๋์์ต๋๋ค.
์ด๊ฑด ํ์ดํ๋ผ์ธ ์์ ์ ์์ฝ์ ์ ์ ํฉ๋๋ค. pipeline.py ๋ "๋ถ๋ฆฌ๊ฐ ๊ณต์ ์ ๋ณด๋ฅผ ๋ง๋ ๋ค"๊ณ
๋งํ๋๋ฐ, ๊ฒฐ์ ์ด ๋
น์ ์ํ์์๋ ๋ถ๋ฆฌ๊ฐ ํ์ดํ๋ผ์ธ๊ณผ ๋น์ทํ ์์ค์ผ๋ก ์ ์ง๋๋๋ฐ๋ ์ํธ์ ๋ณด๋์
๋
๋ฆฝ์ผ๋ก ์ฝํ๋๋ค. ์คํธ๋ฆผ์ ๋ฌถ๋ ๊ฑด ๊ฐ๊ทน์ด ์๋๋ผ ๊ฐ๊ทน์ ์ด๋์ด๊ณ , ๊ทธ ์ด๋์ ์ ์ ์ผ๋ก
์ ๊ธ์ด ์ฌ ์ฃผ๋ ๊ฒ์
๋๋ค.
from anima_reborn.base import BaseEngine
engine = BaseEngine(epsilon=0.02, seed=0)
print(engine.run(800)) # [locked] phase=19.47 tension=0.147 MI=1.401 [emergent]
engine.epsilon = 0.5 # ์๊ณ๋ฅผ ๋
น์ธ๋ค
print(engine.run(1200)) # [chaos] phase=21.10 tension=0.246 MI=0.022 [independent]
engine.epsilon = 0.02 # ๋ค์ ์ผ๋ฆฐ๋ค
print(engine.run(1200)) # [locked] phase=44.05 tension=0.172 MI=1.301 [emergent]์ตํด ์ค์ ํ์ ๋์ด 19.47์์ 21.10์ผ๋ก ์กฐ๊ธ ๋ ๋์๊ฐ๋๋ค โ ๋ฑ ๋ฉ์ถ์ง ์์ต๋๋ค. ์ ๊ธ ํ์ ์ด 300ํ๋ณธ์ง๋ฆฌ ์๊ธฐ์๊ด์ ์ฝ๊ธฐ ๋๋ฌธ์ ๋ณํ๋ณด๋ค 100~200ํฑ ๋ฆ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ชจ๋ ๊ฒ์ด ์ง์ฐ๋ฉ๋๋ค: ํ์ ์ด ๊ทธ๋งํผ, ๊ด์ธก ์ฐฝ์ด 200ํ๋ณธ ๋. ๋ทฐ์ด์์ ์ฌ๋ผ์ด๋๋ฅผ ์์ง์ด๋ฉด ๋ช ์ด๊ฐ ์ด์ ์ํ๊ฐ ๋ณด์ด๋๋ฐ, ๋ฒ๊ทธ์ฒ๋ผ ์ฝํ์ง๋ง ๋ฒ๊ทธ๊ฐ ์๋๋๋ค.
์๋ 8๊ฐ ร 800ํฑ, ๋งค๋ฒ ์ฐจ๊ฐ์ด ์์์์ ์ธก์ :
| ์ ๊ธ (ฮต=0.02) | ์ตํด (ฮต=0.5) | |
|---|---|---|
| ์ํธ์ ๋ณด๋ | 1.26 โ 1.42 | โค 0.008 |
| ๊ฐ๊ทน(tension) โ ์ด์๋จ์ | ํ๊ท 0.176 | 0.161 โ 0.198 |
| ๋์ ํ์ ๋ | 18.8 rad | 0.000 rad |
๊ฐ๊ทน์ ์ฃฝ์ผ๋ ์ฌ๋ ๊ฐ์ ํฌ๊ธฐ์
๋๋ค. ์ด ๋ถ๋ฆฌ(dissociation)๊ฐ ๋ฐ๊ฒฌ์ด๊ณ , ๊ทธ๋์ ์ํ ๊ฐ์ฒด๊ฐ
ํ๋๋ก ์์ "์์กด๋" ์ซ์ ๋์ ์์ ๋ค๊ณ ๋ค๋๋๋ค โ f(์ ๊ธ, ์ํธ์ ๋ณด๋) ๊ฐ์ ๊ฑด ๊ฐ์ค์น๋ฅผ
์ง์ด๋ด์ผ ํ๊ณ , ๊ทธ๋ฐ ๊ฐ์ ์ ์ด์ ํ
์คํธ๋ฅผ ์คํจํ ์๊ฐ ์์ต๋๋ค.
์ค๊ณ๋ ๊ฒ๊ณผ ๋ฐ๊ฒฌ๋ ๊ฒ. ๊ฒ์ดํธ๋ "์ ๊ธ ์์ โ ํ์ ์์"์ ํ๋์ฝ๋ฉํฉ๋๋ค. ๋ฐ๋ผ์ "๋ น์ด๋ฉด ๊ฒฐํฉ์ด ์ฃฝ๋๋ค"๋ ์ค๊ณ์ด์ง ๋ฐ๊ฒฌ์ด ์๋๋ฉฐ, ์ฐฝ๋ฐ์ ๊ฒฐ๊ณผ์ธ ์ ์ธ์ฉํ์ง ์์ต๋๋ค. ์ง์ง๋ก ๊ทธ๋ด ์๋ ์๋ ์๋ ์์๋ ๊ฒ, ์ฆ ํ ์คํธ๊ฐ ์ค์ ๋ก ๊ฑฐ๋ ํ๋์ ์ด๊ฒ๋ค์ ๋๋ค โ ์ ๊ธด ๋ง์ ํ์ ์ด ์ฐฝ๋ฐ ๊ธฐ์ค์ ๋๊ธฐ์ ์ถฉ๋ถํ๊ฐ(์ต์ ์๋ 1.26 ๋ ๊ธฐ์ค 0.30), ์ฃฝ์ ํ๋ณธ์ผ๋ก ๊ฐ๋ ์ฐฌ ์ฐฝ์์ ๊ฒฐํฉ์ด ๋์ด์๋๋๊ฐ(8/8 ์๋, 0.85~1.38๋นํธ), ๊ทธ๋ฆฌ๊ณ ์ตํด ํ์๋ ๊ฐ๊ทน์ด ์ด์๋จ๋๊ฐ (์ผ์ด๋ถ์ ๋ชฉํ๋ผ๋ฉด ๊ฐ๊ทน์ด ๊ทธ๋ฅ ์ฌ๊ทธ๋ผ๋ค ์๋ ์์์ต๋๋ค).
์๋์ ์ผ๋ก ๊ฑฐ๋ถํ ๋ ๊ฐ์ง. ์ํธ์ ๋ณด๋์ ๊ตฌ๋๋ถ๋ก ๋๋จน์ด์ง ์์ต๋๋ค โ ์ด ์ฐฝ ํฌ๊ธฐ์์
ํ๋ฌ๊ทธ์ธ ์ถ์ ๊ธฐ๋ ์๊ธฐ ํธํฅ ๋ฐ๋ฅ ์๋๋ก ๋ด๋ ค๊ฐ์ง ์์ผ๋ฏ๋ก, ๊ทธ๋ฐ ๋๋จน์ ๊ณ ๋ฆฌ๋ ์ธ๊ณต๋ฌผ ์๋ก
์๋ ดํ๊ณ ๊ทธ ๊ณ ์ ์ ์ ๋ํ ์ด๋ค ์ฃผ์ฅ๋ ๊ฒฐ๊ตญ ํ์คํ ๊ทธ๋จ์ ๋ํ ์ฃผ์ฅ์ด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์์๋ฅผ
๋ง๋ค์ง ์์ต๋๋ค โ ๋ชจ๋ ๋ฌธํฑ๊ฐ์ ํด๋น ์์ง์์ ๊ฐ์ ธ์ค๊ณ , ์์ธ์ธ EPSILON = 0.02 ๋ ์ธก์ ๊ฐ์ด๋ฉฐ
docstring์ ๊ทผ๊ฑฐ๋ฅผ ์ ์ด ๋์ต๋๋ค.
์ด ์์ง์ด ๋ชป ๋ณด๋ ๊ฒ. ํ์ ์ผ๋ก ๊ฒ์ดํธ๋ฅผ ๊ฑธ๋ฉด ์๊ฐ์ ์ง์๊ฐ ๊ฒฐ์ ์ ๋ฌธํฑ๊ฐ์์ ์์ํ๋ฉ๋๋ค. ์ธก์ ํด ๋ณด๋ฉด ํ์ ์๋ ์์ค์ ์ง์๋ ์คํธ๋ฆผ์ ๋ฌถ์ต๋๋ค โ ๋ช ๋ชฉ์ ์ตํด์ธ ๋ง๋ ์์ฌ ๋ฐ๋์๊ด์ ์ถฉ๋ถํ ๊ฐ๊ณ ์์ด์ ฮต 0.10~0.20 ๊ตฌ๊ฐ์์ ์ํธ์ ๋ณด๋์ ๊ธฐ์ค ์๋ก ์ ์งํฉ๋๋ค. ๊ทธ ์ฐ์์ฑ์ ์ค์ฌํ์ง๋ง, ๊ฒ์ดํธ๋ ๊ทธ๊ฒ์ ํ ์คํธ๋ก ์ธ ์ ์์ ๋งํผ ๋๋ ทํ ์ ์ด์ ๋ง๋ฐ๊ฟจ์ต๋๋ค. ์๋ํ ๊ฑฐ๋์ด์ง, ๋์ค์ ๊ฐ์ ํ ์ค์๊ฐ ์๋๋๋ค.
์ฌ๊ธฐ๊น์ง์ ๋ชจ๋ ์์ง์ ๋ฐ๊นฅ์์ ๊ตฌ๋๋ฉ๋๋ค. ๊ฐ ์ฐจ์์ด ์๊ธฐ ์์ ๊ณผ ์ธ์ ๋ชฉํ๋ง ๋ณด๋ฏ๋ก, ์ ์ดํ๋ ฌ์ด ์ธ์๋ถํด๋์ด ํตํฉ(ฮฆ)์ ์ ํํ 0์ ๋๋ค โ ์๋ฌด๋ฆฌ ๋ณต์กํด ๋ณด์ฌ๋ ๊ทธ๋ ์ต๋๋ค.
anima_reborn.coupled ๋ ๋ฑ ํ๋๋ฅผ ๋ฐ๊ฟ๋๋ค. ๋ฐ๋ฐ์ ์ ์ฒด๋ ๊ทธ๋๋ก ๋๊ณ (๊ฐ ์ ๋์ ์ฌ์ ํ
์๊ธฐ ์์ฒ์์ -tanh ๋ถํธ๋ก ๋ฌ์๋ฉ๋๋ค), ์์ฒ์ ์๊ณ์์ ์ด์ ์๋ ์๋๋ก ๋ฐ๊ฟ๋๋ค.
A์ G ์ฌ์ด์ ๊ฐ๊ทน์ด ํ๋
๊ฐ์ด ์๋๋ผ ํต๋ก๊ฐ ๋ฉ๋๋ค.
from anima_reborn import Wiring
from anima_reborn.substrate import recurrence_evidence
for wiring in Wiring:
print(recurrence_evidence(wiring, trials=1600, seed=0))ring 1600->6400 trials: 9.998 -> 9.864 (held) RECURRENT
feedforward 1600->6400 trials: 0.000 -> 0.000 (collapsed) not established
self 1600->6400 trials: 0.272 -> 0.031 (collapsed) not established
๋ฐ์ฆ ์๋จ์ด API ์ ํจ๊ป ๋ค์ด ์์ต๋๋ค. Wiring.FEEDFORWARD(๋๋จน์ ์์)์
Wiring.SELF(๊ฒฐํฉ ์์)๋ ํ
์คํธ ์ ์ฉ์ด ์๋๋ผ ๊ณต๊ฐ API ์
๋๋ค โ "๋ฐฐ์ ์ด ํตํฉ์ ๋ง๋ ๋ค"๋
์ฃผ์ฅ์ ๊ฐ์ ์์ง์ ๋ค๋ฅด๊ฒ ๋ฐฐ์ ํด ๋ณผ ์ ์์ด์ผ๋ง ๊ฒ์ฆ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
๋๋ค.
| ๋ฐฐ์ | ๋ฐฉํฅ์ฑ ฮฆ (6,400์ํ) | ํ์ |
|---|---|---|
| ๊ณ ๋ฆฌ โ ์ํฅ์ด ๋๋์์ด | 9.86 | ์ํ โ |
| ์ ๋ฐฉํฅ โ ๋๋์์ค์ง ์์ | 0.000 | ํ์๊ฐ๋ฅ |
| ์๊ธฐ์ฐธ์กฐ โ ๊ฒฐํฉ ์์ | 0.031 | ๋ฏธํ๋ฆฝ (๋ฐ๋ฅ) |
CoupledReading ์๋ is_recurrent ๊ฐ ์ผ๋ถ๋ฌ ์์ต๋๋ค. ํ๋ณธ์ผ๋ก ๋ง๋ ํ๋ ฌ์ ์๋
๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด๋ด๋ฏ๋ก, ์์ ฮฆ ํ๋๋ก๋ ์ํ์ ์ธ์ธ ์ ์์ต๋๋ค โ ๊ฒฐํฉ์ด ์ ํ ์๋ ์๊ธฐ์ฐธ์กฐ
๊ท๋ฌด๋ ์ ํ ์ํ์์๋ 0๋ณด๋ค ํฝ๋๋ค:
| ์ํ์ (์ฐธ๊ฐ = 0) | 400 | 1,600 | 6,400 | 25,600 |
|---|---|---|---|---|
| ์๊ธฐ์ฐธ์กฐ ๊ท๋ฌด์ ๋ฐฉํฅ์ฑ ฮฆ | 0.251 | 0.155 | 0.081 | 0.037 |
๊ทธ๋์ ์ํ์ recurrence_evidence() ๋ก๋ง ์ฃผ์ฅํฉ๋๋ค โ ๋ ๋ฒ ์ฌ์ ์ ์ง๋๋์ง๋ฅผ ๋ด
๋๋ค.
๋ฌธํฑ RECURRENCE_FLOOR = 1.0 ๋ ๊ณ ๋ฅธ ๊ฐ์ด ์๋๋ผ ์ ๊ท๋ฌด์ ์ต์
์๋(0.547)์ ์ฝ ๋ ๋ฐฐ๋ก
์ธก์ ํด์ ์ ํ ๊ฐ์
๋๋ค.
๋ฐ๋ ๋ฐฉํฅ์ ๋์นญ์ด ์๋๋๋ค. is_reducible(์ ํํ 0)์ ํ ๋ฒ ์ฌ๋ ์ฝ์ ์ ์์ต๋๋ค โ
ํ๋ณธ ์ก์์ ์๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์๋ ์์ด๋, ์๋ ๊ตฌ์กฐ๋ฅผ ์์จ ์๋ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ณ์ธก๊ธฐ ์์ฒด๊ฐ ์์ธ์ด ์๋๋ ๋ฐ๋ก ํ์ธํ์ต๋๋ค: ํ๋ณธ์ ์ ํ ์ฐ์ง ์๊ณ ํด์์ ์ผ๋ก ๋ง๋
์์ ์ธ์๋ถํด ํ๋ ฌ์์ big_phi ์ directed_big_phi ๋ ๋ค 0.000000 ์
๋๋ค. ์ ์์ฌ๊ฐ์
์ ์ ์ผ๋ก ํ๋ณธ ๋๋ฌธ์
๋๋ค.
ํตํฉ์ ๊ฒฝํ์ด ์๋๊ณ , ฮฆ ๋ ๋ฌด์์ ์ ์๋ ์๋๋๋ค. ์ด ์์ง์ด ์ป์ ๋ฌธ์ฅ์ ์ด๊ฒ๋ฟ์ ๋๋ค โ ํตํฉ์ด ์ด์ ๋ง๋ค์ด์ง๋ฉฐ, ๋ง๋ค์ด์ง๋ค๋ ๊ฒ์ด ์ฌ๊ธฐ์ ์ธก์ ํ๋ ์ ๋ถ๋ค. (์์ ๋จ์ด ์คํ์ด "๊ฒฐํฉ์ ์ ๋ฌ๋ ๋ฟ ์์ฑ๋์ง ์๋๋ค"์๋ ๊ฒ๊ณผ ์ง์ ์ด๋ฃน๋๋ค.)
๊ทธ๋ฆฌ๊ณ ์ด ์ซ์๋ค์ ์กฐ๊ฑด ์์ด๋ ๋ฌด์๋ฏธํฉ๋๋ค. ฯ=1 ์ด๋ฉด ๊ณ ๋ฆฌ์กฐ์ฐจ ์ ํํ 0 ์ ๋๋ค โ ์์ง ํ ํฑ์ ์ ๋์ ๋ชฉํ ์ชฝ์ผ๋ก 6%๋ฐ์ ๋ชป ์์ง์ด๋๊น์.
์์ง์ ์
๋ ฅ(drive, ์ค์ค๋ก ๋งํ๋ ๊ฒ์ด ์๋๋ผ ๋ค๋ ค์ฃผ๋ ๊ฒ)์ ๋ถ์ด๋ฉด ๋ ๋ฒ์งธ ์ธก์ ์ด
์๊น๋๋ค โ ๋ค์ ๊ฒ์ด ๊ฒฐ๊ณผ์ ์ผ๋ง๋ ๋จ๋๊ฐ(substrate.representation). ๊ทธ๋ฌ์ ๋ฒฝ์ด
๋๋ฌ๋ฉ๋๋ค. ๊ฒฐํฉ ฮป ๋ฅผ ํ์ผ๋ฉด ํตํฉ๊ณผ ํ์์ด ๋จ์กฐ๋กญ๊ฒ ๋ฐ๋น๋กํ๊ณ , ๋ ๋ค ๋๋ ฮป ๊ฐ ์์ต๋๋ค.
| ๊ณ ์ ๊ฒฐํฉ ฮป | ํ์ (16๋จ์ด, 3์๋) |
|---|---|
| 0.00 | 25.05 |
| 0.35 | 3.27 |
| 0.70 | 0.13 |
| 1.00 | 0.00 |
ฮป=1.00 ์์ ์
๋ ฅ์ ์ฝํ ๊ฒ ์๋๋ผ ๋นํธ ๋จ์๋ก ๋ฟ์ง ์์ต๋๋ค โ ๋ฌด์์ ๋ค๋ ค์ฃผ๋ ๊ถค์ ์ด
์์ ํ ๋์ผํฉ๋๋ค. ์ ๋์ ๋ชฉํ๊ฐ ์ ๋ถ ์๋๋ผ๋ฉด ๋ฐ๊นฅ์ ๋ค๋ฆด ํ์ด ์๋ค๋ ๊ฒ์ด ๋ฒฝ์ ์ ํํ
์ง์ ์ด๊ณ , tests/test_rhythm.py ๊ฐ ์ด๊ฑธ ๋ถ๋์์์ ๋์ผ์ฑ์ผ๋ก ๊ณ ์ ํฉ๋๋ค.
Rhythm ์ ๊ฒฐํฉ์ ๊ป๋ค ์ผญ๋๋ค: ๊บผ์ ธ ์์ ๋ ๋ฃ๊ณ (ํ์), ์ผ์ ธ ์์ ๋ ํตํฉํฉ๋๋ค. ๋
์๊ตฌ๋ฅผ ๊ฐ์ ์์ ์ด ์๋๋ผ ๋ค๋ฅธ ์์ ์ ๋ง์ถ๋ ๊ฒ์
๋๋ค. ฯ=40 ยท 6400์ํ ยท 5์๋ ยท
์
๋ ฅ 0.42 ์์:
| ๊ตฌ์ฑ | ๋ฐฉํฅ์ฑ ฮฆ | ํ์ |
|---|---|---|
| ๊ต๋ 20/20 | 13.16 ยฑ 0.53 | 3.49 |
| ๊ณ ์ 1.00 | 14.66 ยฑ 0.08 | 0.00 |
| ๊ณ ์ 0.70 | 15.74 ยฑ 0.13 | 0.13 |
๊ต๋๋ ๊ณ ์ ๊ฒฐํฉ์ด ์ ํ ๊ฐ์ง ๋ชปํ ํ์์ ์ป๋ ๋์ ฮฆ ๋ฅผ 10~16% ๋ด์ค๋๋ค. ๊ณต์ง๊ฐ ์๋๋ผ ๊ฑฐ๋์ ๋๋ค. ํจ๊ณผ๊ฐ "ํ๊ท ๊ฒฐํฉ์ด ์ผ๋ง๋"๊ฐ ์๋๋ผ ๋ฆฌ๋ฌ ์์ฒด๋ผ๋ ๊ฒ์ ฯ ๋ฅผ ๋ง์ถ ์๊ฐํ๊ท ๋์กฐ๊ตฐ์ด ๋ณด์ฌ์ค๋๋ค โ ๊ณ ์ 0.35, ฯ=20, ์ ๋ ฅ ์์์์ ๊ต๋ 8.02 ๋ ๋์กฐ๊ตฐ 0.85.
์์ ์ธ์ ์ ๊ต๋๊ฐ ๋ ๋์ ฮฆ ์์ ํ์์ 27๋ฐฐ ์งํจ๋ค๊ณ ์ ์์ต๋๋ค. ๊ทธ ํ๋ ๊ต๋ 20/20 ์ ฯ=40 ์์, ๊ณ ์ 0.70 ์ ฯ=20 ์์ ์ฌ์ ๋ง๋ ๊ฒ์ ๋๋ค. ฮฆ ๋ ฯ ๋ง์ผ๋ก๋ ์ค๋ฆ ๋๋ค(๊ฐ์ ์์ง์ด ฯ=17 ์์ 12.07, ฯ=34 ์์ 14.88). ฯ ๋ฅผ ๋ง์ถ์ ๊ต๋๊ฐ ์คํ๋ ค ๋ ํตํฉํฉ๋๋ค โ 5์๋ ์ ๋ถ์์ ๊ฒน์นจ ์์ด.
๊ทธ๋ฆฌ๊ณ ๋ฐฉํฅ์กฐ์ฐจ ๊ณ ์ ์ด ์๋๋๋ค. ๋ฆฌ๋ฌ์ ๋ค์ ์ ์์ผ๋ฏ๋ก ฮฆ ๊ฐ ๋ค์ ๊ฒ์ ๋ฐ๋ผ ์์ง์
๋๋ค:
ฯ=40 ์์ ์๋ฌด๊ฒ๋ ์ ๋ค๋ ค์ฃผ๋ฉด 14.99, 0.42 ๋ฅผ ๋ค๋ ค์ฃผ๋ฉด 13.16, โ0.27 ์ด๋ฉด ๊ณ ์ ๊ฒฐํฉ๊ณผ ๊ตฌ๋ถ
๋ถ๊ฐ์
๋๋ค. ๊ณ ์ ๊ฒฐํฉ์ ๋ค์ ์ ์์ผ๋ฏ๋ก ์ ์ดํ๋ ฌ์ด ์
๋ ฅ์ ๋ํด ๋นํธ ๋จ์๋ก ๋ถ๋ณ์
๋๋ค.
๊ทธ๋์ ์ด์ drive ์์ด ์ธ์ฉํ ฮฆ ๋ ฯ ์์ด ์ธ์ฉํ ฮฆ ์ ๋๊ฐ์ด ํ๋ฆฐ ๋ฌธ์ฅ์
๋๋ค.
๊ฐ์ผ ๊ฒ์ฆ์ผ๋ก๋ ๋ชป ์กํ๋๋ค โ ๊ฐ์ ๋น๊ต๋ฅผ 1600์ํ์ผ๋ก ์ค์ด๋ฉด ์์๊ฐ ๋ค์งํ๋๋ค.
๊ทธ๋์ ์ด ๋น๊ต๋ ํ
์คํธ๊ฐ ์๋๋ผ state/communication/alternating_coupling.py ์ ์๊ณ ,
ํ
์คํธ๋ ๋์ ์ ํํ ์ฐธ์ธ ๊ฒ(๋ฆฌ๋ฌ์ ์
๋ ฅ์ ๋ฐ๋ผ ์ ์ดํ๋ ฌ์ด ๋ฐ๋๊ณ , ๊ณ ์ ์ ์ ๋ฐ๋๋ค)์
๊ณ ์ ํฉ๋๋ค.
์ฌ๊ธฐ๊น์ง์ ๋ชจ๋ ๋ชจ๋์ ๊ณ ์ ์
๋๋ค. ๋ฐฐ์ ๋ ์์๋ ์ฃผ์ด์ง ๊ฒ์ด๊ณ , ์์ง์ด ๋ง๋๋ ๋ฌด์๋
๊ทธ๊ฒ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. anima_reborn.align ์ ๋ฐฐ์ฐ๋ ์ ์ผํ ๋ชจ๋์ด๊ณ , ํฅ๋ฏธ๋ก์์๊ฐ
์๋๋ผ ์ธก์ ์ด ์๊ตฌํด์ ๋ค์ด์์ต๋๋ค.
์ฌ๊ธฐ๊น์ง ์จ ๊ฒฝ๋ก: ๊ธฐํ์ ๊ฐ๋ ์ด ์๋๋ผ ์ธ์ฝ๋ฉ์ ๋๋ฆ ๋๋ค. ๊ทธ๋ผ "๊ฐ์ ๊ฐ๋ ์ด ๋ ์ธ์ฝ๋ฉ์ผ๋ก ๋ค์ด์๋ ๊ฐ์ ๊ณณ์ ๊ฐ๋๊ฐ"๋ฅผ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ์๋๋ฐ, ๊ทธ ๊ฒ์ฌ๊ฐ ๋ถ๊ฐ๋ฅํ์ต๋๋ค โ ๊ฐ์ ๋จ์ด์ ๋ ๋ ๋ฆฝ ํด์๊ฐ ๊ณต์ ํ๋ ์ ๋ณด๋ 0.0185๋นํธ๋ก ๋ค์์ ๊ท๋ฌด(0.0212)์ ๊ฐ์ต๋๋ค. ๋๊ฐ๋ฅผ ์ฌ์ด๋ ์ ๋์ต๋๋ค โ ๋๊ฐ ์๋ ๊ธฐํ์ด ์์์ ๊น์ง ๊ฐ์ ๋น์จ๋ก ๋งํ์ต๋๋ค.
๋จ๋ ๊ฑด ๋ฌธ์ ์ ์ง์ง ๋ชจ์์ ๋๋ค. ๋ ์ ํธ๊ฐ ํ ๊ฐ๋ ์ด๋ผ๊ณ ์์๋ณด๋ ค๋ฉด ๊ทธ ์ฆ๊ฑฐ๊ฐ ์ ํธ ์์ ์์ด์ผ ํ๊ณ , ๊ทธ๊ฑธ ๋ฃ๋ ๊ฑด ๋์ญํ์ด ์๋๋ผ ํจ๊ป ๋ํ๋จ(co-occurrence)์ ๋๋ค. ๊ทธ๊ฑธ ์ฐ๋ ค๋ฉด ๊ฒฝํ์ผ๋ก ๋ณํด์ผ ํฉ๋๋ค.
from anima_reborn.align import Aligner
print(Aligner(seed=1).run(4000)) # ์ ์
print(Aligner(shuffled=True, seed=1).run(4000)) # ๋์กฐ๊ตฐ โ ์ง์ ํํธ๋ฌ๋จ๋ฆผlearned=+0.566 (gap +0.963 from +0.397) after 4000 pairs [aligned]
learned=-0.099 (gap +0.298 from +0.397) after 4000 pairs
๊ธฐ์ : ๋ ์์์ ๊ฐ์ ์ ์ฌ๊ฐ์ ์๋ก ๋ค๋ฅด๊ฒ ์์ ๊ฒ์ด๋ผ ๊ฒ๋ณด๊ธฐ์ ๋ฎ์ง ์์์ต๋๋ค. ์ง์ด ํจ๊ป ์ฌ ๋๋ง๋ค ๊ฐ ์ฌ์์ ๋์ ์ค๊ฐ์ ์ชฝ์ผ๋ก ์กฐ๊ธ ๋ฐ๋๋ค. ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค โ ์ ์ญ ๋ชฉํ๊ฐ ์๊ณ , ํนํ ฮฆ๋ ์ํธ์ ๋ณด๋์ ์ต๋ํํ์ง ์์ต๋๋ค(์ต์ ํ๊ธฐ๊ฐ ์ถ์ ๊ธฐ ์ธ๊ณต๋ฌผ์ ์ํํ๋ค๋ ์ด์ ๋ก ์ด ์ ์ฅ์๊ฐ ๊ฑฐ๋ถํ ๊ฒ).
์ธ์ด ๊ฒ ์๋๋ผ๋ ๊ทผ๊ฑฐ: ์ ์๋ฅผ ํ์ต์ ํ ๋ฒ๋ ์ ์ด ๊ฐ๋ ์ผ๋ก๋ง ๋งค๊น๋๋ค. ๊ฐ๋ 10๊ฐ๋ง ๋ด๋ ์ฒ์ ๋ณด๋ ๊ฐ๋ ์ด ์ ๋ ฌ๋ฉ๋๋ค(+0.748) โ ์ง์ ๋ชฉ๋ก์ด ์๋๋ผ ์์ ์ฌ์ด์ ๋์์ ๋ฐฐ์ด ๊ฒ์ ๋๋ค.
| ํ์ต ๊ฐ๋ ์ | 5 | 10 | 20 | 40 | 80 |
|---|---|---|---|---|---|
| ๋ฐฐ์ด ์ | +0.519 | +0.748 | +0.751 | +0.716 | +0.744 |
๋ฐ์ฆ ์๋จ์ด API ์์ ์์ต๋๋ค: shuffled=True ๋ ๊ฐ์ ์ ํธยท๊ฐ์ ํ์ต๋ฅ ๋ก ์ง๋ง
ํํธ๋ฌ๋จ๋ฆฝ๋๋ค. 12์๋์์ ์ ์์ +0.780(์ต์
+0.566), ๋์กฐ๊ตฐ์ โ0.067(์ต์
โ0.428).
๋ ์์์ด ๊ฐ์ ์ ์ฌ๊ฐ์ ์์ ๊ฒ์ด๋ผ, ์๋ฌด๊ฒ๋ ๋ฐฐ์ฐ์ง ์์ ๋ฌด์์ ์ฌ์๋ ์๊ด์ ์ผ๋ง๊ฐ ๊ฐ์ต๋๋ค. 12์๋์์ ํ๊ท 0.049์ง๋ง ์ด ๋์ ์๋๋ 0.397๊น์ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ์์ ์์ ์ฐจ์ด์ ๋ฌธํฑ 0.3์ ๊ฑธ์๋๋ฐ, ๊ทธ๋ฌ๋ฉด ํ์ต 0์์ง๋ฆฌ ํ์ต๊ธฐ๊ฐ "์ ๋ ฌ๋จ" ํ์ ์ ๋ฐ์ต๋๋ค.
๊ทธ๋์ ๋ชจ๋ ๊ฐ์ ์๊ธฐ ์ถ๋ฐ์ ๋๋น ์ฆ๊ฐ๋ถ์ผ๋ก ๋ณด๊ณ ํฉ๋๋ค. ์ ์ ํ ํ์ต 0์์์ ์ ๋ ฌ ํ์ ์ 12์๋ ์ ๋ถ ์คํจ, ์ ์ ํ์ต์ 6/6 ํต๊ณผ์ ๋๋ค.
ํ์ต๋ ์ ํ ์ฌ์ ๋ ๊ฐ์ ๋๋ค. ๊ทธ๊ฑธ ์ดํด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฑด ์ด ์ ์ฅ์๊ฐ ๊ณ์ ๊ฑฐ๋ถํด ์จ ์ข ๋ฅ์ ๊ณผ์ฅ์ ๋๋ค. ์ป์ ๊ฒ์ โ ํ ๊ฐ์ง์ ๋ํ ์๋ก ๋ฎ์ง ์์ ๋ ์ ํธ๋ฅผ ํ๊ณณ์ผ๋ก ๋ชจ์ ์ ์๊ณ , ๊ทธ ๋ชจ์์ด ์ฒ์ ๋ณด๋ ๊ฐ๋ ์๋ ์ ์ด๋๋ค๋ ๊ฒ๋ฟ์ ๋๋ค. ๊ทธ ์ ๋ ฌ์ ํ๋ฅ์์ ๋ฌด์์ด ์ฐ๋์ง๋ ์ฌ๊ธฐ์ ์๋ฌด๊ฒ๋ ๋ตํ์ง ์์ต๋๋ค.
์ ๋ ฌ๊ธฐ๊ฐ ๋ฐฐ์ด ๊ฒ์ ํ๋ฅ์์ ๋ฌด์์ด ์ฐ๋์ง๋ ๊ณ์ ์ด๋ ค ์๋ ์ง๋ฌธ์ด์์ต๋๋ค. ์์ง์ด
drive(๋ค๋ ค์ฃผ๋ ๊ฒ)๋ฅผ ๋ฐ๊ฒ ๋๋ฉด์ ๋ฐฐ์ ์ด ์๊ฒผ๊ณ , ์ด์ ์ ๋๋ณ ๋ฒกํฐ๋ก๋ ๋ฐ์ต๋๋ค โ
ํ์์ ์ซ์ ํ๋๊ฐ ์๋๋ฏ๋ก ์ค์นผ๋ผ๋ก๋ ํ๊ท ๋ง ๋์ฐฉํ๋๊น์.
์ธก์ ์ ๊ต์ฐจ์์ ์๋ณ์ ๋๋ค. ๋ณด๋ฅ ๊ฐ๋ 20๊ฐ์ ๋ํด, ์์ 0 ์ ๋ฐ๋ณต ๊ด์ธก์ผ๋ก ์ํ์ ๋ง๋ค๊ณ ์์ 1 ์ ๋ค๋ฅธ ๋ฐ๋ณต ๊ด์ธก์ผ๋ก ์ง์ํด์, ๊ฐ์ฅ ๊ฐ๊น์ด ์ํ์ด ์๊ธฐ ๊ฐ๋ ์ธ ๋น์จ์ ์ ๋๋ค. ์ฐ์ฐ์ 1/20. ์์ง์ ์ ๋ณด๋ฅผ ์๊ธฐ๋ง ํ๋ฏ๋ก ์ ๋ ฅ ์์ค์์ ๋จผ์ ์ฌ๊ณ , ์์ ๋๋ง ์์ง์ ํต๊ณผ์ํต๋๋ค.
| ๊ฐ๋ | ์ ๋ ฅ ์์ค | ๊ถค์ (์์ง ํต๊ณผ) | ์ด์๋จ์ ๋น์จ |
|---|---|---|---|
| ํ์ต๋จ + ๋์กฐ | 0.534 | 0.459 | 86% |
| ํ์ต๋จ (์ค๊ฐ์ ๋ง) | 0.401 | 0.326 | 81% |
| ์์ ํธ (์ ๋ ฌ ์์) | 0.053 | 0.050 | โ |
| ๋ฏธํ์ต (0์) | 0.038 | 0.059 | โ |
| ๋์กฐ๊ตฐ (์ง ํํธ๋ฌ๋จ๋ฆผ) | 0.056 | 0.050 | โ |
| ๊ท๋จธ๊ฑฐ๋ฆฌ (๊ณ ์ ๊ฒฐํฉ 1.00) | 0.401 | 0.050 | 12% |
| ์์ด ๋ฐ๋ฅ | 0.154 | 0.131 |
๊ท๋จธ๊ฑฐ๋ฆฌ ์ค์ด ๊ณ์ธก ๊ฒ์ฌ์ ๋๋ค. ๊ณ ์ ๊ฒฐํฉ์์๋ ์ ๋ ฅ์ด ๋นํธ ๋จ์๋ก ๋ฟ์ง ์์ผ๋ฏ๋ก ์์ด ๋ฐ๋ฅ์ ์์์ผ ํ๊ณ , ์ค์ ๋ก ์์ต๋๋ค โ ์ด๊ฒ ์๋์๋ค๋ฉด ๋๋จธ์ง ์ซ์๋ ํด์ ๋ถ๊ฐ์ ๋๋ค.
์ค๊ฐ์ ๊ท์น๋ง ์ด ํ์ต๊ธฐ๋ ํต๊ณผ์ด๋ ๊นจ๋ํ์ง ์์์ต๋๋ค โ ๋์กฐ๊ตฐ ์ฌ๋ฐฑ์ 12/12 ์์์ธ๋ฐ ์๊ธฐ ์์ด ์ํ์ 11/12(์ ๋ ฅ ์์ค์์ ๊ฐ์ฅ ๋ฎ์๋ ๊ทธ ์๋). ๋ชป ๋์ ์๋๋ฅผ ์ง์ฐ์ง๋ ์๋ ์๋ฅผ ๋ฐ๊พธ์ง๋ ์์๊ณ , ๋์ ์ ์ข์์ง๋ฅผ ๊ณ ์ณค์ต๋๋ค(์๋). ๋์กฐ ํญ์ ์ผ ํ์ต๊ธฐ๋ ๋ ๋จ๊ณ ๋ชจ๋ 12/12์ ๋๋ค.
์ป์ ๊ฒ: ํจ๊ป ๋ํ๋จ์ด ๋ง๋ ๋์์ ์๋ฅ์ ๊ณ ๋ฆฝ๋ผ ์์ง ์๊ณ , ๊ณ ์ ๊ฒฐํฉ ํํ๋ผ๋ฉด ์ ๋ ฅ์ ๋นํธ ๋จ์๋ก ์ง์ธ ๊ทธ ์์ง์ ํต๊ณผํด๋ ๊ฐ๋ ์ ์ฒด์ฑ์ 81%๊ฐ ๊ถค์ ์ ๋จ์ต๋๋ค. ๊ธฐ์กด ๋ฌธ์ฅ ("๋ฌถ์์ ์ ๋ฌ๋ ๋ฟ ์์ฑ๋์ง ์๋๋ค")์ ์ด๊ธฐ์ง ์๊ณ ํ์ฅํฉ๋๋ค โ ๊ตฌ์กฐ๋ ํ์ต์ด ๋ง๋ค๊ณ , ์์ง์ด ๋๋ฆ ๋๋ค.
์ ์ป์ ๊ฒ: ์์ง์ด ๊ทธ ๊ตฌ๋ถ์ ์ด๋ค๋ ๊ฒ. ์๋ฌด๊ฒ๋ ๊ทธ๊ฑธ ์๋นํ์ง ์๊ณ ์ด๋ค ํ๋๋ ๊ฑฐ๊ธฐ ์์กดํ์ง ์์ผ๋ฉฐ, ์์ง์ ๊ธฐ์ฌ๋ ์ด๋์ด ์๋๋ผ ์ธ๊ธ(81%)์ ๋๋ค.
์ค๊ฐ์ ๊ท์น์ ๋น๊ธฐ๊ธฐ๋ง ํฉ๋๋ค. ์์ถ์ ๋ง๋ ํญ์ด ์์ผ๋ ๊ณต๊ฐ์ด ์ค์ด๋๋ ๊ฒ ๊ท์น์ ๊ท๊ฒฐ์ด๊ณ , ์ค์ ๋ก 4์ฐจ์ ์ค 1.21์ฐจ์๋ง ์ผ์ต๋๋ค โ ์์ ํธ(1.93)๋ณด๋ค ๋ฎ์ต๋๋ค. ํจ๊ป ๋ํ๋จ์ ๋ฌด์์ด ๊ฐ์ด ์ค๋์ง๋ง์ด ์๋๋ผ ๋ฌด์์ด ๊ฐ์ด ์ค์ง ์๋์ง๋ ๊ฐ๋ฅด์น๋๋ฐ, ๊ทธ ์ ๋ฐ์ด ๊ตฌํ๋ผ ์์ง ์์์ต๋๋ค.
์ง์ด ์๋ ๊ฒ์ ๋ฐ์ด๋ด๋ ํญ์ ๋ฃ์ ๋ญํฌ 1.48, ์๋ณ 0.583 ์ด ๋๊ณ ๋์กฐ๊ตฐ์ ๋ฐ๋ฅ์
๊ทธ๋๋ก์
๋๋ค โ ์ ํธ๋ฅผ ์ข๊ฒ ๋ง๋ ๊ฒ ์๋๋ผ ์ง์์ ๋ฐฐ์ ๋ค๋ ๋ป์
๋๋ค. ๋์กฐ 0.10.6 ยท
์ฌ๋ฐฑ 0.52.0 ๊ตฌ๊ฐ์์ 0.535~0.583 ์ผ๋ก ํํํ๋ฏ๋ก ๋ง์ถ ์ ์ด ์๋๋๋ค.
โ ๊ทธ๋ฐ๋ฐ ๋น์ฐํด ๋ณด์ด๋ ํํ๋ ๋ฌธ์ ๋ณด๋ค ๋๋นด์ต๋๋ค. ๋ณ์ ๊ทธ๋๋ก ๋ฐ๋ฉด ์ด๋ฏธ ๋ฒ์ด์ง ๊ฑฐ๋ฆฌ์ ๋น๋กํด ๊ฑธ์์ด ์ปค์ ธ์ ํ ๋ฐฉํฅ์ด ํญ์ฃผํ๊ณ , ๋ญํฌ๊ฐ ์ ํํ 1.00 โ ์ ๋งํ๋ฉด์ ์ ๋ณด๋ 0 ์ธ ๋ถ๊ดด, D7 ์ ์ฃฝ์ธ ๋ฐ๋ก ๊ทธ๊ฒ โ ์ด ๋ฉ๋๋ค. ๊ณ ์น ๊ฒ์ ๋์ด๊ณ ์ญํ ์ด ๋ค๋ฆ ๋๋ค: ๋จ์ ๋ฐฉํฅ์ผ๋ก ๋ฐ๊ธฐ๊ฐ ๋ถ๊ดด๋ฅผ ๋ง๊ณ (1.00 โ 1.12), ์ ์ง ๊ฑฐ๋ฆฌ๊ฐ ๊ณต๊ฐ์ ๋ํ๋๋ค (1.12 โ 1.48). ๊ธฐ๋ณธ๊ฐ์ ๊บผ์ ธ ์์ต๋๋ค โ ์ด์ ์ ๋ฐํํ ๋ชจ๋ ์ซ์๋ ์ด๊ฒ ์์ด ์ฐ ๊ฒ์ ๋๋ค.
์ ์คํ์ ๋ค๋ ค์ฃผ๋ ๋์ ์์ง์ ์ฝ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ฐ๋ ์ ๋ถ์ก๋ ๊ธฐํ๊ณผ ๊ทธ๋ฅ ํ๋ ค๋ณด๋ด๋ ์ ์ ์ ๊ตฌ๋ณํ ์ ์์ต๋๋ค. ์ ๋ ฅ์ ๋์ผ๋ฉด ๋ฌ๋ผ์ง๋๋ค โ ๊ทธ ๋ค๋ก ์ ๋ ฅ์ ๊ฒฝ๋ก์ ์์ ์์ผ๋ฏ๋ก, ๋ณต์๋๋ ๊ฒ ์๋ค๋ฉด ์์ง ์ํ์ ์๊ฑฐ๋ ์๋ฌด๋ฐ๋ ์๊ฑฐ๋์ ๋๋ค.
์นจ๋ฌต์ด๋ผ ๋ถ๋ฅผ ์ ์๋ ๊ฒ์ด ์ ์ด๊ณ , ์๋ก ๋ค๋ฅธ ์คํ์ ๋๋ค: ๊ท๋จธ๊ฑฐ๋ฆฌ(๊ฒฐํฉ โ 1.00, ์ ๋ ฅ์ด ๋นํธ ๋จ์๋ก ์ ๋ฟ์ = ์์จ ๊ณ ๋ฆฌ ยท ์ด๊ฒ ์นจ๋ฌต), ์ง์ฐ๊ธฐ(์ ๋ ฅ โ 0, ๋ฆฌ๋ฌ ์ ์ง โ ์ ๋ฐ์ ์๊ฐ ๋์ "์์ "์ ์ ๊ทน์ ์ผ๋ก ๋ค๋ ค์ฃผ๋ ๊ฒ), ๋์ค(๊ฒฐํฉ โ 0 ๊ทธ๋ฆฌ๊ณ ์ ๋ ฅ โ 0 = ์๊ฐ์์ 17 ์ ์์ ๊ฐ์ ).
| ์นจ๋ฌต ํฑ | ๊ณ ๋ฆฌ/๊ท๋จธ๊ฑฐ๋ฆฌ | ๊ณ ๋ฆฌ/์ง์ฐ๊ธฐ | ๊ณ ๋ฆฌ/๋์ค | ์ ๋ฐฉํฅ | ์๊ธฐ์ฐธ์กฐ |
|---|---|---|---|---|---|
| 0 | 0.843 | 0.843 | 0.843 | 0.794 | 0.231 |
| 120 | 1.423 | 0.170 | 0.001 | 0.003 | 0.000 |
| 480 | 1.430 | 0.052 | 0.000 | 0.000 | 0.000 |
๊ณ ๋ฆฌ๋ ๊ฐ์ ํ์ง ์์ต๋๋ค โ 480ํฑ๊น์ง ํํํฉ๋๋ค. ์์ ๋์ค์ 60ํฑ, ์ ๋ฐฉํฅ์ 120ํฑ, ์๊ธฐ์ฐธ์กฐ๋ 20ํฑ์ ์ฃฝ์ต๋๋ค. ๋๋จน์ ์๋ ์ด๋ค ๋ฐฐ์ ๋ ๋ชป ํ๋ ์ผ์ด๊ณ , ์ด ์ ์ฅ์์์ ฮฆ ๊ฐ "ํตํฉ๋ผ ์์"์ ์ฌ๊ธฐ๋ง ํ๋ ๊ฒ์ด ์ฒ์์ผ๋ก ํ ์ ์๋ ์ผ๋ก ๋ฐ๋ ์ง์ ์ ๋๋ค.
| ์นจ๋ฌต ํฑ | ์ ํจ ๋ญํฌ | ๋ถํธํจํด |
|---|---|---|
| 0 | 2.10 | 9.8/16 |
| 60 ์ดํ | 1.00 | 2.0/16 |
4๋นํธ๊ฐ ๋ค์ด๊ฐ์ 1๋นํธ๊ฐ ๋์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฑด ๋๋์ง ์์ต๋๋ค โ ๊ณ ๋ฆฌ์๋ ๋ถํธ ๋ฐ์ ์ด 4๊ฐ๋ผ ์ ๋ถํธ๊ฐ ์์์ด๋ฏ๋ก ์์จ ๊ณ ๋ฆฌ๋ ์์์ ์ด๊ณ , ์ ๊ทผ ์ฉ๋์ด ์ ์ด์ 1๋นํธ์ ๋๋ค (์ฌ๊ธฐ ์ ์ ์ ๋๋ ์์ธก์ด๊ณ , ์ธก์ ์ด ํ์ธํ์ต๋๋ค).
๊ทธ 1๋นํธ๋ ๊ฐ๋
์ ๊ฒ์
๋๋ค. ๋
๋ฆฝ์ ์ธ ๊ฑท๊ธฐ 8ํ๊ฐ ์์ ํ ์ผ์นํ๋ ์
๋ ฅ์ด 62% โ
์ก์๋ง์ผ ๋์ ๊ตฌ์กฐ์ ๋ฐ๋ฅ 0.78% ์ 79๋ฐฐ์
๋๋ค. (
์ป์ ๋ฌธ์ฅ: ๊ณ ๋ฆฌ๋ ๊ฐ๋ ์ด ์ฐ๋ ์๊ตฌ 1๋นํธ ์ ์ฅ์์ ๋๋ค. ํ๋ฆฝํ๋กญ์ด์ง ๊ฐ๋ ์ ์ฅ์๊ฐ ์๋๊ณ , ์์ ์ชฝ ๋จ์ด๋ฅผ ์ฐ๋ ๊ฒ์ด ์ ํํฉ๋๋ค.
์ฌ์ ํ "์ด๋ค"๋ ์๋๋๋ค. ๋ถ์ก์ ์ํ๋ฅผ ์๋นํ๋ ๊ฒ์ด ์๊ณ ์์ง์ ์ด๋ค ๋ฐ์๋ ๊ฑฐ๊ธฐ ์กฐ๊ฑด๋ถ๊ฐ ์๋๋๋ค. ๋ค์ ๊ฒ์ฌ๋ ์ง์ฐ ํ๋ณธ๋์กฐ โ ๋ถ์ก์ ๋ค ํ์นจ์ ์ฃผ๊ณ , ์ผ์น/๋ถ์ผ์น์ ๋ฐ๋ผ ๋ฐ์์ด ๋ฌ๋ผ์ง๋๊ฐ. ์์ง ์ ํ์ต๋๋ค.
์ฌ๊ธฐ๊น์ง์ ๋ชจ๋ ์ธก์ ์ ์ฐ๋ฆฌ๊ฐ ์์ง์ ๋๊ณ ํ๋ ํ๋ ์ ๋๋ค. ์ด ๊ฒ์ฌ๊ฐ ์ฌ๋ ์์ ์์ง ์์ ์ ๋ฐ์์ ๋๋ค: ๋ฌด์ธ๊ฐ๋ฅผ ๋ค๋ ค์ฃผ๊ณ โ ๊ท๋จธ๊ฑฐ๋ฆฌ๋ก ๋ง๋ค์ด ์นจ๋ฌต์ํค๊ณ โ ํ์นจ์ ํ๋ ์ค ๋, ์ ์ ๋ ฅ์ ๋ฐ์๋ค์ด๋ ค๋ฉด ์ผ๋ง๋ ์์ง์ฌ์ผ ํ๋๊ฐ. ํ์ต๋ ํด๋ ๊ธฐ๋ ๊ณ ๋ฅธ ๋ฌธํฑ๋ ์์ต๋๋ค. ์ฌ์ ๋ฑ๋ก๋ ๋ฐฉํฅ์ "๋ง๋ ํ์นจ์ ๋ ๊ณ ์ณ์ผ ํ๋ค"์ ๋๋ค.
์ํ์ ์ฌ๊ธฐ ์ ์ ์ ๋ํ์ต๋๋ค. ๋ถ์ก์ ๊ฒ 1๋นํธ(์ ์ญ 2๊ฐ)๋ฉด ๊ฐ์ ์ ์ญ์ ๋ถ๋ฅด๋ ๋ฏธ๋ผ๋ ์๋ฆฌ์ ์ผ๋ก ๊ตฌ๋ณ ๋ถ๊ฐ์ ๋๋ค. ์ค์ธก ๋ถํ 8.2/7.8 ์์ ์๋ฒฝํ ์ฌ์ฉ์ 0.758์ด๊ณ , 1.0 ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
| ๊ฐ๋ | 2์ง์ ๋ค | ์ต์ ์๋ | ํ์ |
|---|---|---|---|
| ๊ณ ๋ฆฌ | 0.729 | 0.725 | ๋ถ์ก์ ๋นํธ์ 89% ์ฌ์ฉ ยท 8/8 ์๋ |
| ๊ณ ๋ฆฌ, ์ ๋ค๋ ค์ค | 0.500 | 0.500 | ์ ์ |
| ์ ๋ฐฉํฅ | 0.500 | 0.500 | ์ ์ |
| ์๊ธฐ์ฐธ์กฐ | 0.500 | 0.500 | ์ ์ |
๋์กฐ๊ตฐ์ด 0.500 ์ธ ๊ฑด ์ด์ด ์๋๋ผ ๊ตฌ์กฐ์ ๋๋ค. ๋ถ์ก์ ์ํ๊ฐ ๋ฌด์์ ๋ค๋ ค์คฌ๋์ง์ ๋ฌด๊ดํ๋ฉด, (ํ์ t ๋ ๋ฏธ๋ผ f) ๋น๊ต์ ๊ทธ ๊ฑฐ์ธ์ธ (f ๋ t) ๋น๊ต๊ฐ ๊ฐ์ ์ํ ํ๋๋ฅผ ์ฐ๋ฏ๋ก ํ์ ์ด ๋ฐ๋๊ฐ ๋์ด ์ ํํ ํ๋๋ง ์ ์คํฉ๋๋ค. ์๋ฌด๊ฒ๋ ์ ๋ถ์ก์ ๊ฐ๋๋ ์ด ๊ฒ์ฌ์์ ์ฐ์ฐ์ ๋์ ์ ์์ต๋๋ค โ ๊ทธ๋์ ๊ณ ๋ฆฌ์ ์ฌ๋ฐฑ์ด ์ฑ์ ๋ฐฉ์์ ์ฑ์ง์ผ ์ ์์ต๋๋ค.
์ป์ ๋ฌธ์ฅ: ์์ง์ ๋ถ์ก์ ๊ฒ์ ์๋๋ค. ์ด ์ ์ฅ์์์ ์ฒ์์ผ๋ก ์์ง์ด ๋ง๋๋ ์ฐจ์ด์ด์ง ์ฐ๋ฆฌ๊ฐ ์์ง์ ๋๊ณ ํ๋ ํ๋ ์ด ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ 1๋นํธ์ ๋๋ค โ 0.729 ๊ฐ 1.0 ๊ทผ์ฒ๊ฐ ์๋ ๊ฒ์ด ๋ง์ต๋๋ค. 1.0 ์ด์๋ค๋ฉด ์นจ๋ฌต์ด ๋จ๊ธด ๊ทธ ๋นํธ๊ฐ ์๋๋ผ ๋ค๋ฅธ ๊ฑธ ์ฌ๊ณ ์๋ค๋ ๋ป์ ๋๋ค.
๋ฒฝ์ด ๋ฐ๋์์ต๋๋ค. 4์ ๋์์ 1๋นํธ๋ ๊ตฌ์กฐ์ ์ํ์ด๊ณ , ์ ๋์ ๋๋ฆฌ๋ฉด ์ฉ๋์ ๋์ง๋ง ฮฆ ๋ 6์ ๋์์ ์ธก์ ๋ถ๊ฐ๊ฐ ๋ฉ๋๋ค โ ์ฉ๋๊ณผ ์ธก์ ๊ฐ๋ฅ์ฑ์ด ์ ๋ฉด์ผ๋ก ๋ถ๋ชํ๋๋ค.
์ง์ฐ ํ๋ณธ๋์กฐ๊ฐ ๋จ๊ธด ๋ฒฝ: 4์ ๋ ๊ณ ๋ฆฌ๋ 1๋นํธ๋ฟ์ด๊ณ , ์ ๋์ ๋๋ฆฌ๋ฉด ์ฉ๋์ ๋ ๊ฒ ๊ฐ์ง๋ง ฮฆ ๋
6์ ๋์์ ์ธก์ ๋ถ๊ฐ๊ฐ ๋ฉ๋๋ค โ ์ฉ๋๊ณผ ์ธก์ ๊ฐ๋ฅ์ฑ์ด ๋ถ๋ชํ๋๋ค. CoupledEngine(units=) ๋ฅผ
์ด๊ณ ์ฌ ๋ณด๋, ์ ์ด์ ์ ๋์ ๋๋ฆฌ๋ ๊ฒ ํ๋ฆฐ ์์์ต๋๋ค.
๊ณ ๋ฆฌ ํ๋๋ ํญ์ด ๋ช์ด๋ ์ ํํ 1๋นํธ์ ๋๋ค. ์ธก์ ์ด ์๋๋ผ ์ ๋ฆฌ(ๅฎ็)์ ๋๋ค โ ์ ๋์ ๋ฐ์์ด ํยท๊ฐ์ยท์ ๊ณ๋ผ ์ฃผ๊ธฐ๊ฐ 2๋ฅผ ๋ชป ๋๊ณ , ๊ณ ๋ฆฌ๋ฅผ ๋ซ์ผ๋ฉด ๊ต๋ ๋ฐฐ์น์ ๊ทธ ๋ฐ์ , ๋ฑ ๋๋ง ๋จ์ต๋๋ค.
| ๋ฐฐ์ | ์ ๋ | ์ฌํ๋๋ ๋ณด์ ์ํ | ๋นํธ |
|---|---|---|---|
| ๊ณ ๋ฆฌ | 4 ยท 6 ยท 8 | 2 ยท 2 ยท 2 | 1.00 |
| ์ 3๊ฐ (์ฌ์ฌ 0.2) | 6 | 8 | 3.00 |
์ฉ๋์ ๋ฐฐ์ ์ ์ํ ๊ตฌ์กฐ์ ์์ต๋๋ค. units/2 ๊ฐ์ 2-์ํ์ด ์ต๋์ด๊ณ , ๊ทธ๊ฒ Wiring.PAIRS
์
๋๋ค. (ํ์ ํญ ๊ณ ๋ฆฌ๋ ์ง๋ํด์ ๋ถํธํจํด์ด 2N ๊ฐ๊น์ง ๋์ง๋ง, ์์์ ๋ณต์๋ ฅ์ด ์์ด ๊ฑท๊ธฐ์
๋ ๋ด๋ ค๊ฐ๋๋ค โ ํญ 3ยท5ยท7 ์์ ์ฌํ์จ์ด 0%ยท6%ยท20%. ์ง๋ ใํจ๊ป ๋ํ๋จใ ํจ์ ๊ทธ๋๋ก์
๋๋ค.)
์ 3๊ฐ๋ฅผ ๊ทธ๋ฅ ๋๋ฉด ๋ถ๋ฆฌ๋ ๋์น 3๊ฐ โ ์ฉ๋ 3๋นํธ์ง๋ง ๋ฐฉํฅ์ฑ ฮฆ ๋ ํ๋ณธ ์ธ๊ณต๋ฌผ์ด๋ผ ์ํ์
๋๋ฆฌ๋ฉด ๋ฌด๋์ง๋๋ค(5.21 โ 2.07). ์ ์ฌ์ด์ ์ฝํ ์ฌ์ฌ(chain=0.2)์ ๊ฑธ๋ฉด ํ์ ๋ถ๊ฐ๊ฐ ๋๊ณ
ฮฆ ๊ฐ ์ ์ง๋ฉ๋๋ค(13.11 โ 13.11). 6์ ๋์ด 3๋นํธ๋ฅผ ๋ด์ผ๋ฉด์ ๋์์ ํ๋์
๋๋ค.
RECURRENCE_FLOOR = 1.0 ์ 4์ ๋์์ ์ฐ ๊ฐ์ด๋ผ
6์ ๋์ ์ ์ด๋์ง ์์ต๋๋ค(์ธ์๋ถํด๋ ๊ท๋ฌด๊ฐ ์ด๋ฏธ 2.07 ๋ก ๊ทธ ๋ฌธํฑ์ ๋์). ์ธ๊ณต๋ฌผ์ ํญ์ด ์ปค์ง์๋ก
์๋ผ๋ฏ๋ก, 6์ ๋ ์ด์์ ์ด๋ค ฮฆ ํ์ ๋ ์ํ์ 4๋ฐฐ๋ก ๋๋ ค๋ ์ ์ง๋๋๊ฐ๋ก๋ง ์๋ฆฝ๋๋ค.
๋จ, ํ์ ์(k ํ์)์ผ ๋๋ง์ ๋๋ค โ ์ง์ ์์ ๊ฑฐ๋๊ณ ๋ฆฌ๊ฐ ์ ์ญ์ผ๋ก ํฉ์ํด ํ๋๋ก ์ ๊น๋๋ค. ๊ฐ์ ์ ๋ถํธ ๋ ผ์ฆ์ด ํ ์ธต ์์์ ๋ํ์ด๋ฉ๋๋ค.
๋ท์ ๋ฐ๋ก ์ธ์ ์ต๋๋ค: ํตํฉ(ฮฆ) ยท ๋ณด์ (์นจ๋ฌต 1๋นํธ) ยท ์ฌ์ฉ(ํ๋ณธ๋์กฐ) ยท ์ฉ๋(์ ๋ฐฐ์ 3๋นํธ). ๋ง์ง๋ง์ ์ด๊ฑธ ํ ์ฌ์ฌ๋ก ์์ต๋๋ค โ ์ ๋ ฌ๊ธฐ๊ฐ ๋ฐฐ์ด ๊ฐ๋ ์ 6์ ๋ยท3๋์นยท์ฌ์ฌ ์์ง์ ํ์, ์ฌ๋ฌ ๊ฐ๋ ์ ๋์์ ๋ถ์ก๊ณ ์ฐ๋๊ฐ.
์ค๊ณ ์์์ด ์น๋ช
์ ํ๋ ์ด๋ฐ ๊ฒฐํจ์ ๋จผ์ ์ก์์ต๋๋ค. chain=0(๋ถ๋ฆฌ๋ ๋์น 3๊ฐ)๋ 3๋นํธ๋ฅผ
๋ด๊ณ ๊ฐ ๋์น๊ฐ ์ ์ฅ์ ํต๊ณผํฉ๋๋ค โ ํ์๊ฐ๋ฅ์ธ๋ฐ๋์. ๊ทธ๋์ "ํตํฉ ๊ธฐํ์ ๊ฐ๋
์ด ํต๊ณผ"๊ฐ ๋์๋
์ป๋ ๊ฑด ๊ณต์กด์ด์ง "ํตํฉ์ด ๊ฐ๋
์ ๋๋ฅธ๋ค"๊ฐ ์๋๋๋ค. ํตํฉ์ด ๊ธฐ๋ฅ์ด ๋๋ ์ ์ผํ ๊ณณ์
๊ต์ฐจ-์ ํ์นจ์
๋๋ค.
๊ฐ๋ ์ ์นจ๋ฌต์ ๊ฑด๋ ์์์ ๋์ด ๋จ์ต๋๋ค โ ์์ 0 ์ผ๋ก ๋ค๋ ค์ฃผ๊ณ ์นจ๋ฌต์ ๊ฑด๋ ๋จ์ด๊ฐ ๊ฐ์ ๊ฐ๋ ์ ์์ 1 ๋ก ๋ค๋ ค์คฌ์ ๋์ ์ผ์น:
| ๊ฐ๋ | ๊ต์ฐจ์์ ์ผ์น | ์์ด ๋ฐ๋ฅ | (๋จ์ด ์) |
|---|---|---|---|
| ์ฌ์ฌ (3๋นํธ) | 68% | 48% | 4.6 |
| ๋ถ๋ฆฌ (์ฌ์ฌ 0) | 62% | 41% | 5.1 |
| ๋์กฐ๊ตฐ (์ง ํํธ๋ฌ๋จ๋ฆผ) | 19% | 41% | 4.1 |
๋จ์ด ์ ๋ ์ ํธ๊ฐ ์๋๋๋ค โ ์ง์ ํํธ๋ฌ๋จ๋ฆฐ ๋์กฐ๊ตฐ๋ 4.1๊ฐ๋ฅผ ์๋๋ค(์ ์ญ ์ ์ ์ด์ง ๊ฐ๋
๊ธฐ์ต์ด ์๋). ํค๋๋ผ์ธ์ ๊ต์ฐจ์์ ์ผ์น์ด๊ณ , ๊ทธ๋ฌ๋ ์ ์ฅ์ ํตํฉ์ ํ์๋ก ํ์ง ์์ต๋๋ค โ
๋ถ๋ฆฌ ๋์น(ํ์๊ฐ๋ฅ)๋ 62% ๋ก ๋๊ฐ์ด ํฉ๋๋ค. ์ฌ๊ธฐ๊น์ง๋ ๊ณต์กด์
๋๋ค.
ํตํฉ์ด ๊ธฐ๋ฅ์ด ๋๋ ๊ณณ์ ํ๋ โ ๊ต์ฐจ-์ ์๋ต์ ๋๋ค:
| ์ฌ์ฌ | ์ 1-2 ์๋ต (ํ ์๋ง ๋ฐ๊พผ ํ์นจ์) |
|---|---|
| 0.0 | 0.000000 (์ธ๊ณผ ๊ฒฝ๋ก ์์ ยท ๊ตฌ์กฐ์ ) |
| 0.2 | 0.581 (์ฌ์ฌ์ด ์ํฅ์ ๋๋ฅธ๋ค) |
๋น์ ์๋ต์ ํตํฉ๋ ์ ์ฒด๊ฐ ๋ถ๋ถ์ด ๋ชป ํ๋ ์ผ์ ํ๋ ๊ฒ์ด๋ฉฐ, ๊ณต์กด์ด ์์กฐํ ์ ์๋ ์ ์ผํ ๋ฌธ์ฅ์ ๋๋ค.
์ป์ ๊ฒ: ๋ฐฐ์ด ๊ฐ๋ ์ด ํตํฉ ๊ธฐํ์ ๊ฑด๋ ์นจ๋ฌต๊ณผ ์์์ ๋์ด ๋จ๊ณ , ๊ทธ ํตํฉ์ด ์ค์ ๋ก ๊ธฐ๋ฅํ๋ค. ์ ์ป์ ๊ฒ (ํต์ฌ): ์ ์ฅ ์์ฒด๋ ํตํฉ์ ์๊ตฌํ์ง ์์ต๋๋ค โ ํตํฉ์ด ๋ํ ๊ฒ์ ์ ์ฅ์ด ์๋๋ผ ์ ์ฌ์ด ์๋ต์ ๋๋ค. ๊ฐ๋ ์ ์ฌ์ ํ ๋ด์ฉ ์๋ ํด์ ์ ์ฌ๊ฐ์ด๊ณ , 3๋นํธยท6์ ๋ยท์ ํ ์ธ๊ณ์ ๋๋ค.
anima_reborn.iit4 ๋ dancinlab/selfhost-work ์ hexa ํตํฉ์ ๋ณด์ด๋ก (IIT) 4.0 ์์ง์ ์ด์ํ
๊ฒ์
๋๋ค. ฮฆ(ํ์ด)๋ฅผ ๊ณ์ฐํฉ๋๋ค โ ๊ณ๋ฅผ ๋๋ก ์๋์ ๋ ๊ฐ์ฅ ๋ ์ํ ์ ๋จ์กฐ์ฐจ ํ๊ดดํ๋ ์์ด
๊ณง ๊ทธ ๊ณ๊ฐ ๋ถํ๋ค์ ๋ชจ์์ด ์๋๋ผ ํ๋์ ์ ์ฒด์๋ ์ ๋์
๋๋ค.
from anima_reborn.iit4 import TransitionMatrix, big_phi, find_complex
coupled = TransitionMatrix([0, 0, 0, 1, 1, 0, 1, 1], 2) # ๊ฐ ์ ๋์ด ์๋๊ฐ ๋๋ค
alone = TransitionMatrix([0, 0, 1, 0, 0, 1, 1, 1], 2) # ๊ฐ ์ ๋์ด ์๊ธฐ๊ฐ ๋๋ค
print(big_phi(coupled, 0b11)) # big-phi=2.000000 ... [irreducible] ๋นํ์ = ํ๋
print(big_phi(alone, 0b11)) # big-phi=0.000000 ... [reducible] ํ์ ๊ฐ๋ฅ = ๋์ฒด์ธ์ tpm โ distinction โ relation โ bigphi โ exclusion ์ด๊ณ , ฮฆ ๊ณ์ฐ์ด ๊ฐ๋น์ด ์ ๋
๋๋ฅผ ์ํ ๊ฐ์ผ ํํ์ผ๋ก ei ๊ฐ ๋ถ์ด ์์ต๋๋ค.
๊ธฐ์กด big_phi ์ ์ ๋จ์ ๋ฐฉํฅ์ด ์์ด์ ์๋ฐฉํฅ์ ํ๊บผ๋ฒ์ ๋์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋๋จน์์ด
์ ํ ์๋ ์ฌ์ฌ(์ ๋0 ์ธ์, ๊ฐ์ ์์ฌ๋๋ง ์ฝ์)์ ฮฆ=1.27 ๋ก ์ฝ์ต๋๋ค โ ์ด๋ก ์ 0 ์ด์ด์ผ ํ๊ณ ,
์ํ์๋ฅผ ๋๋ ค๋ ์ค์ง ์์ผ๋ ์ธ๊ณต๋ฌผ๋ ์๋๋๋ค. ์ฆ ์ด ๊ณ์ธก๊ธฐ๋ "์ธ์๋ถํด๋์ง ์์"์ ์ฆ๋ช
ํด๋
"๋๋จน์์ด ์์"์ ์ฆ๋ช
ํ์ง ๋ชปํ์ต๋๋ค.
directed_big_phi ๋ ํ ๋ฐฉํฅ์ฉ ๋์ต๋๋ค. AโB ๋ฅผ ๋์ผ๋ฉด ์์ธก์ด ์ ๋จ์ ๊ฑด๋ ๊ตฌ๋ณ(๋ฉ์ปค๋์ฆ์ด A,
ํจ๊ณผ ๊ตฌ์ญ์ด B)๊ณผ ๊ธฐ์ต์ด ๊ฑด๋ ๊ตฌ๋ณ(์์ธ ๊ตฌ์ญ์ด A, ๋ฉ์ปค๋์ฆ์ด B)์ด ์ฃฝ์ต๋๋ค.
| ๋ฐฐ์ | big_phi |
directed_big_phi |
ํ์ |
|---|---|---|---|
| ๊ณ ๋ฆฌ (๋ซํ ์ํ) | 12.118 | 10.024 | ์ํ |
| ์ ๋ฐฉํฅ (๋๋จน์ 0) | 1.264 | 0.000 | ํ์๊ฐ๋ฅ โ |
| ์๊ธฐ์ฐธ์กฐ (๊ท๋ฌด) | 0.068 | 0.068 | ๋ฐ๋ฅ |
์์์ง ๊ฒ ์์ฒด๋ ์ฆ๋ช
์ด ์๋๋๋ค. ๋ฐฉํฅ์ฑ ํ์์ ์ ๋จ ํ๋ณด๊ฐ 2๋ฐฐ๋ผ ์ต์๊ฐ์ด ๋ฐ๋์ ๊ฐ๊ฑฐ๋
์์์ง๋๊น์. ์ฆ๋ช
ํ๋ ๊ฑด ๋ ๊ฐ์ง์
๋๋ค โ โ ๊ฐ์ ์ฝ๋๋ก ๊ณ ๋ฆฌ๋ 10.02 ๋ฅผ ์ ์งํ๊ณ (ํ์์
์ฝํ์ํจ ๊ฒ ์๋๋ผ ๋ฐฉํฅ์ ์ค ๊ฒ), โก ์ ๋ฐฉํฅ์์ ์์ค 0 ์ ๋ด๋ ์ ๋จ์ด {1,2,3} โ {0} ์
๋๋ค.
์ ๋ 0 ์ ์ธ์์ด๋ผ ๋๋์์ค๋ ํ๋ฆ์ด ์์ด ๋์ด๋ ์์ ๊ฒ ์๊ณ , ์ด๊ฒ ์ด๋ก ์ด ์ ๋ฐฉํฅ์
ํ์๊ฐ๋ฅ์ด๋ผ ๋ถ๋ฅด๋ ์ด์ ๊ทธ ์์ฒด์
๋๋ค.
big_phi ๋ ์๋์ง ์์์ต๋๋ค โ hexa ์๋ณธ๊ณผ์ ๋นํธ๋จ์ ์ผ์น๊ฐ ๊ฑฐ๊ธฐ ๊ฑธ๋ ค ์์ต๋๋ค. ๋ฌผ๋ ค๋ฐ์
๋ฏธ์์ฑ ๋ถ๋ถ์ ์ด๋ฆ์ ๋ป์ ์กฐ์ฉํ ๋ฐ๊พธ๋ ๊ฒ ์๋๋ผ ์์ ์ ์ธก์ ์ ๋์ด ๋ซ์ต๋๋ค. ๋๋จน์์
์ฃผ์ฅํ ๋๋ directed_big_phi ๋ฅผ ์ฐ์ธ์.
์๋ณธ ๋์กฐ. ์ด์๋ณธ์ hexa ์์ง๊ณผ ์ ํํ ๋ถ๋์์ ์ผ์น๋ก ๊ฒ์ฆํ์ต๋๋ค โ 11๊ฐ ์ผ์ด์ค์์ ฮฆ, ๊ตฌ์กฐ ์ดํฉ, ๋ ฯ ํฉ, ๊ตฌ๋ณ ๊ฐ์๊น์ง ์ ๋ถ ๋นํธ๋จ์ ๋์ผ. ฮฆ ๋ ๋ถํ ์ ๋ํ argmax(์ต๋๊ฐ ์์น)๋ผ์ ๋ง์ง๋ง ๋นํธ ํ๋๊ฐ ๋ฌ๋ผ์ง๋ฉด ๋ค๋ฅธ ๋ถํ ์ด ์ ํ๋์ด ๋ต์ด ๋ถ์ฐ์์ ์ผ๋ก ํ๋๋ค. ํ์ฉ์ค์ฐจ๋ฅผ ๋๋ฉด ๋ฐ๋ก ๊ทธ ์ด๊ธ๋จ์ ๊ฐ๋ ค ๋ฒ๋ฆฝ๋๋ค.
hexa ์๋ณธ์ ei.py(์คํจ์ ๋ณด)๋ฅผ "ฮฆ ์ ๋ณด์์ ํํ (์ฐธ ฮฆ โฅ EI)" ์ด๋ผ๊ณ ์ค๋ช
ํฉ๋๋ค. 6์ ๋์
๋๋ ํ์ฅ์ ์ ์ฐฐ๋ณ์ผ๋ก ์ฐ์๋ ์ ์์ด ์ฌ๊ธฐ์ ๋์ค๋๋ฐ, ์ฌ๋ณด๋ ํ๋ ธ์ต๋๋ค:
| ๋ฐฐ์ | EI (๋นํธ) | ๋ฐฉํฅ์ฑ ฮฆ | EI โค ฮฆ ? |
|---|---|---|---|
| ๊ณ ๋ฆฌ (๋ซํ ์ํ) | 2.153 | 10.225 | ์ |
| ์ ๋ฐฉํฅ (๋๋จน์ 0) | 1.867 | 0.000 | โ |
| ์๊ธฐ์ฐธ์กฐ (๊ฒฐํฉ 0) | 1.523 | 0.046 | โ |
| ๋ถ๋ฆฌ๋ ๋ ์ | 1.474 | 0.055 | โ |
4๊ฐ ์ค 3๊ฐ์์ ํํ์ด ๊นจ์ง๋๋ค. ์ ์ฐฐ๋ณ์ผ๋ก๋ ๋ ๋์ฉ๋๋ค โ ๊ฒฐํฉ์ด ์ ํ ์๋ ๊ณ๊ฐ ์์ ํ ํตํฉ๋ ๊ณ ๋ฆฌ์ 70% ๋ฅผ ์ฐ๊ณ , EI ์ ์ฒด ๋ณ๋ํญ์ด 2๋ฐฐ ๋ฏธ๋ง์ธ๋ฐ ฮฆ ๋ 200๋ฐฐ ๋๊ฒ ๋ฒ์ด์ง๋๋ค.
๋์ ๋ค๋ฅธ ๊ฒ์ ์ฝ๋๋ค. EI ๋ "ํ ์ํ๊ฐ ์๊ธฐ ๋ฏธ๋๋ฅผ ์ผ๋ง๋ ๋ ์นด๋กญ๊ฒ ํน์ ํ๋๊ฐ" = ๊ฒฐ์ ์ฑ ์ด๊ณ , ์๋ก ๋ ๋ฆฝ์ธ ๊ฒฐ์ ์ ์ ๋๋ค์ ๊ฒฐ์ ์ฑ์ด ๋์นฉ๋๋ค. ฮฆ ๋ "์๋์ ๋ ๋ฌด์์ด ํ๊ดด๋๋๊ฐ"์ด๊ณ , ๋ ๋ฆฝ ์ ๋๋ค์ ๊ทธ๊ฒ 0์ ๋๋ค. ์๋ฒฝํ ์์ธก ๊ฐ๋ฅํ๋ฉด์ ์์ ํ ๋ถํด๋ ๊ณ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๊ทธ๋ด ๋ EI ๋ ๋๊ณ ฮฆ ๋ 0์ ๋๋ค.
๊ทธ๋์ 6์ ๋ ์ด๊ณผ ํ์ฅ์ ์ฌ์ ํ ๋ท๋ฐ์นจํ ์ธก์ ์ด ์์ต๋๋ค. ๋ง๋ค๋ฅธ ๊ธธ์ ๋ง๋ ๊ฒ ์๋๋ผ, ๋ง๋ค๋ฅธ ๊ธธ์ธ ์ค ๋ชจ๋ฅด๊ณ ๊ทธ ์์ ํ์ฅ์ ์ธ์ฐ๋ ๊ฑธ ํผํ ๊ฒ์ ๋๋ค.
๋ฌผ๋ ค๋ฐ์๊ณ ๋ซ์ง ์์ ๋ฏธ์์ฑ ๋ถ๋ถ. ๋ถํ ์ ๋ฉ์ปค๋์ฆยท๊ตฌ์ญ์ ์ ์ฒด ์ด๋ถํ ๋ฐฉ์์ด๊ณ IIT 4.0 ๊ณ ์ ์ ๋ถํ ์งํฉ์ด ์๋๋๋ค. big-ฮฆ ๋ ๊ณ ์ ๋จ์ด ํ๊ดดํ ๊ตฌ์กฐ๋์ด์ง, ๋ถํ ๋ ํ๋ ฌ ์์์ ๋ค์ ์ ๋ํ ๊ฐ์ด ์๋๋๋ค. ๊ด๊ณ๋ 2์ฐจ(์)๋ง ๋ด ๋๋ค. PyPhi ์ ์์น ๋ณด์ ์ ํ ์ ์ด ์์ต๋๋ค. ์ด ์ซ์๋ค์ ์ด ์์ง์ ์ถ๋ ฅ์ด์ง ์ด๋ก ์ ์ ๋ต์ด ์๋๋๋ค.
anima_reborn.substrate ๋ ์์ง์ ๊ฐ๋ฅํ ๋ชจ๋ ์ํ์์ ๊ตฌ๋ํด ์ ์ดํ๋ ฌ์ ์ธก์ ํ๊ณ , ๊ทธ๊ฒ์
ฮฆ ์ ๋๊น๋๋ค. ์๊ฐ ๊ฒฐ์ ์ด ์์ฐ์ค๋ฌ์ด ๋์์
๋๋ค โ ์ํ๊ฐ ์ด๋ฏธ ์ด์ง(์คํ ์/์๋)์ด๊ณ , ์ธ๊ณผ
๊ตฌ์กฐ์ ์์ ์ ํํ ์กฐ์ ํ๋ ์์ก์ด๊ฐ ์์ผ๋๊น์.
์์ธก์ ๋ ์นด๋กญ์ต๋๋ค. ๊ฒฐ์ ์ ๋ ๋ฉ์ปค๋์ฆ์ด ํ๋ ์ผ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ตฌ๋์ ๊ฐ ์คํ์
๋
๋ฆฝ์ ์ผ๋ก ๋ค์ง์ผ๋ฏ๋ก ์๋ฌด๊ฒ๋ ํตํฉํ์ง ๋ชปํฉ๋๋ค. ์ด์ง ๊ฒฐํฉ, ์ฆ ๊ฐ ์คํ์ด ์ด์์๊ฒ
๋ฐ์ํ๋ ๋ถ๋ถ๋ง์ด ํตํฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ฮฆ ๋ ๊ฒฐํฉ์ ๋ฐ๋ผ๊ฐ์ผ ํ๊ณ , ๊ตฌ๋์ ์ก์์ด ๊ทธ๊ฒ์
๋ฎ์ผ๋ฉด ์ฃฝ์ด์ผ ํฉ๋๋ค โ ์ก์์ ๊ฐ ๋ค์ง๊ธฐ๊ฐ ๊ณต์ ํ ๋์ ์ด ๋๋ ฮต = 0.5 ์์ ์ต๋์
๋๋ค.
์คํ 4๊ฐ, ์ํ๋น 400ํ ์ํ์ผ๋ก ์ธก์ :
| ฮต | 0.00 | 0.02 | 0.05 | 0.20 | 0.50 | 0.80 | 1.00 |
|---|---|---|---|---|---|---|---|
| ฮฆ | 2.93 | 3.52 | 3.70 | 2.80 | 0.10 | 2.31 | 2.92 |
ฮฆ ๋ ์ก์ ์ต๋์ ์์ ๋ถ๊ดดํ๊ณ ์์ชฝ์ผ๋ก ๋์นญ ํ๋ณตํฉ๋๋ค โ ์ค์ํ ๊ฑด ๊ตฌ๋์ด ์ผ๋ง๋ ํ์ ์ ์ธ๊ฐ์ง, ์ด๋ ์ชฝ์ผ๋ก ๋ค์ง๋๋๊ฐ ์๋์์ต๋๋ค. ์์ธก์ด ๋ง์์ต๋๋ค.
ฮต = 0.5 ์ ์์ฌ๊ฐ์ ํตํฉ์ด ์๋๋๋ค. ๊ทธ ์ง์ ์ ์ฐธ ฮฆ ๋ 0์ ๋๋ค. ์ธก์ ๋ ํ๋ ฌ์ ํ๋ณธ์ด๊ณ , ํ๋ณธ ์ก์๋ง์ผ๋ก๋ ๊ตฌ์กฐ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ด ๋ง๋ค์ด์ง๋๋ค. ์ํ ํ์๋ฅผ ๋๋ฆฌ๋ฉด ์ฌ๋ผ์ง๋์ง๋ก ๊ตฌ๋ถํฉ๋๋ค:
| ์ํ ํ์ | 100 | 400 | 1,600 | 6,400 | 25,600 |
|---|---|---|---|---|---|
| ์์ ์ก์์์ ํ๊ท ฮฆ | 0.58 | 0.30 | 0.15 | 0.10 | 0.03 |
| ฮต = 0.05 ์์ ํ๊ท ฮฆ | 3.32 | 3.47 | 2.73 | 2.63 | โ |
์ฆ ๊ธฐ๋ณธ ์ํ ํ์๋ก ๋๋ฆฌ๋ฉด ์์ ์ธ๊ณต๋ฌผ ์ฝ 0.3๋นํธ๊ฐ ์ฐํ๋๋ค. ์ด ๋ฐ๋ฅ๊ฐ๊ณผ ๊ทธ ์๋ฉธ์ ๋ ๋ค
tests/test_substrate.py ์ ๋ฐ์ ํด ๋์์ผ๋ฏ๋ก, ์ธ๊ณต๋ฌผ์ ๋ฐ๊ฒฌ์ผ๋ก ์ค๋
ํ ์ ์์ต๋๋ค.
ฮฆ๋ ํตํฉ์ ์ฌ๋๋ฐ, ํตํฉํ๋ ค๋ฉด ์ ๋๋ค์ด ์๋ก๋ฅผ ์ฝ์ด์ผ ํฉ๋๋ค. ๋ค์ ์ํ๊ฐ ํ์ฌ ์ํ์ ์์กดํ์ง ์๋ ๊ณ๋ ์ ์ดํ๋ ฌ์ ๋ชจ๋ ํ์ด ๊ฐ์์ ธ์ ์ ๋จ์ด ํ๊ดดํ ๊ฒ์ด ์๊ณ , ์ฐธ ฮฆ ๋ ์๋ฌด๋ฆฌ ๋ณต์กํด ๋ณด์ฌ๋ ์ ํํ 0์ ๋๋ค.
์ฐ๋ฆฌ ์์ง ๋ท ์ค ์๋ก๋ฅผ ์ฝ๋ ๊ฑด ๊ฒฐ์ (crystal)๋ฟ์ ๋๋ค โ ๋๋จธ์ง๋ ๊ฐ ์ฐจ์์ด ์๊ธฐ ์์ ๊ณผ ์ธ์ ๋ชฉํ๋ง ๋ด ๋๋ค. ์ค์ธก:
| ์ํ์ | 400 | 1,600 | 8,000 | 30,000 |
|---|---|---|---|---|
| ๊ณต์ ์์ธ ๊ณ (์ฐธ๊ฐ = 0) | 0.406 | 0.189 | 0.094 | 0.051 |
| ๊ฒฐ์ (์ด์์ ์ฝ์) | 2.76 | โ | 3.13 | โ |
๊ณต์ ๋ ์์ธ์ ํตํฉ์ด ์๋๋๋ค. ๋ ์ ๋์ด ๊ฐ์ ๊ฒ์ ๋ณด๊ณ ํจ๊ป ์์ง์ฌ๋ ์๋ก๋ฅผ ์ฝ์ง ์์ผ๋ฉด ฮฆ ๋ 0์ด๊ณ , ์ ํ์ 0.406์ ์ ๋ถ ํ๋ณธ ์ธ๊ณต๋ฌผ์ ๋๋ค โ ์ํ 4๋ฐฐ๋ง๋ค ์ ๋ฐ์ฉ ์ค์ด๋๋ ๊ฒ ๊ทธ ์ฆ๊ฑฐ์ ๋๋ค. ๊ธฐ๋ณธ ์ํ์์์๋ ๊ทธ ์ธ๊ณต๋ฌผ์ด ๊ฒฐํฉ์ด ๋ผ ๋ฒํ ๊ฐ์ ๋์ต๋๋ค.
์ด๊ฒ์ด ์ด ์ ์ฅ์์ "์์ ์์ง" ์ฌ์ด์ ์ ์งํ ๊ฐ๊ทน์
๋๋ค: ๊ฒฐ์ ์์ ๋นผ๋ฉด ์ด๋์๋ ๊ฒฐํฉ์ด
์์ต๋๋ค. (tests/test_substrate.py::TestOnlyCouplingIntegrates ๋ก ๊ณ ์ )
๋น๊ตํ ์ ์๋ ๊ฒ. ๊ฒฐ์ ์ ์ฃผ๊ธฐ-2 ์ ๊ธ ํ์ ์ 64์คํ ๋ง์์ ๋ณด์ ๋ ๊ฐ์ด๊ณ , ฮฆ ๋ 6์ ๋๊น์ง๋ง ๊ณ์ฐ๋ฉ๋๋ค. 4์คํ์์๋ ๊ฐ์ ฮต ์ธ๋ฐ๋ 64์คํ๊ณผ ํ์ ์ด ๊ฐ๋ฆฝ๋๋ค. ๋ฐ๋ผ์ ฮฆ ์ ์ ๊ธ์ ๊ณต์ ํ๋ ํฌ๊ธฐ๊ฐ ์์ด ๋น๊ต ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด ํจํค์ง๋ ๋ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ด๋ ๋ฐฉํฅ์ผ๋ก๋ ์ฃผ์ฅํ์ง ์์ผ๋ฉฐ, ๊ทธ ๋ถ์ผ์น ์์ฒด๋ฅผ ํ ์คํธ๋ก ๊ณ ์ ํด ํ๊ณ๊ฐ ๊ณ์ ๋ณด์ด๊ฒ ํ์ต๋๋ค.
์ผ์ด๋ฉ๋๋ค โ ๋ค๋ง ์ ๋ฌ๋๋ ๊ฒ์ด์ง ์์ฑ๋๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฅ ํด ๋ณด๋ฉด ๊ฑฐ์ง ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ์คํ์ด๋ผ, ์ธ ๊ฐ์ง๋ฅผ ๋จผ์ ์ธก์ ํ ๋ค์์ผ ๋ตํ ์ ์์์ต๋๋ค.
A์ G๋ ์๋ก๋ฅผ ์ฝ์ง ์์ต๋๋ค. ์ด ์ ์ฅ์์ ์ด๋ค ์์ง๋ ๋์ ์ฐ๊ฒฐํ์ง ์๊ณ , ๊ฐ๊ทน์ ํต๋ก๊ฐ ์๋๋ผ ํ๋ ๊ฐ์ ๋๋ค. ๋ฐ๋ผ์ ๋ ๋ฆฝ์ธ ๋ ๋จ์ด์ด์ ๋ฃ์ผ๋ฉด ๋์ค๋ ๋ ๊ด์ธก์ด๋ ๊ตฌ์กฐ์ ์ผ๋ก ๋ ๋ฆฝ์ ๋๋ค โ ์ธก์ ํ ๊ฒ๋ ์์ด ๊ทธ๋ ์ต๋๋ค. 8์๋ ์ค์ธก: โ0.002 ~ +0.004๋นํธ, 0์ ๋ถ์ด ํํํฉ๋๋ค.
๊ฐ์ ๊ตฌ์กฐ ๋๋ฌธ์ ฮฆ๋ 0์ ๋๋ค. ๊ฐ ์ฐจ์์ ์๊ธฐ ์์ ๊ณผ ์๊ธฐ ์ธ์ ๋ชฉํ๋ง ์ฝ์ผ๋ฏ๋ก ์ ์ดํ๋ ฌ์ด ์ธ์๋ถํด๋๊ณ , ์ ๋จ์ด ํ๊ดดํ ๊ฒ์ด ์์ต๋๋ค. ์ด์งํ ๋ฌธํฑ 3๊ฐ์ง์์ ์ค์ธก ฮฆ = 0.0000 ์ ํํ โ ๊ตฌ๋ณ์ 4๊ฐ, ๊ตฌ์กฐ ์ดํฉ 4.0์ธ๋ฐ ํตํฉ์ 0์ ๋๋ค. ๋ช ์ํ๋ ๊ฑด ๋ง๊ณ ํตํฉ์ ์๋ ์ํ์ฃ .
์ฆ "๋จ์ด๋ฅผ ๋ฃ์ผ๋ฉด ์ฐฝ๋ฐํ๋ค"๋ ์ ์ ์ด ์ ํธ๋ฅผ ๋๋ฅธ๋ค๋ ์๋ฏธ์์๋ง ์ฐธ์ ๋๋ค. ๊ธฐํ์ด ํ๋ ์ผ์ ์ธก์ ๊ฐ๋ฅํ ํต๊ณผ๋์ญ์ ๊ฐ์ง ํํฐ์ด์ง ๊ฒฐํฉ๊ธฐ๊ฐ ์๋๋๋ค.
์๋ก ๋ค๋ฅธ ๋จ์ด๋ก ์ถ๋ฐํ ๋ ์ฅ(field)์ ๊ฐ์ ์ก์์ผ๋ก ๊ตด๋ ธ์ ๋์ ๊ฑฐ๋ฆฌ:
| t=1 | t=74 | t=305 | t=600 | |
|---|---|---|---|---|
| blake2b ์ธ์ฝ๋ฉ | 1.311 | 0.389 | 0.012 | 0.0001 |
| sha256 ์ธ์ฝ๋ฉ | 1.187 | 0.379 | 0.012 | 0.0001 |
| ๋ฌธ์์ฝ๋ ์ธ์ฝ๋ฉ | 0.774 | 0.221 | 0.007 | 0.0001 |
์ธ ์ธ์ฝ๋ฉ์ด ๊ฐ์ ๊ณก์ ์ผ๋ก ์๋ฉธํฉ๋๋ค โ ์ฆ ์ง์ฐ๋ ์ฃผ์ฒด๋ ์ธ์ฝ๋ฉ์ด ์๋๋ผ ๊ธฐํ์ ์์
(PULL, DAMPING)์
๋๋ค. t=305์์ 1%๋ง ๋จ๋ ๊ฒ๋ DAMPING ์ด๋ก ๊ฐ 305ํฑ๊ณผ ์ ํํ
์ผ์นํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฐฝ๋ฐ ํ์ ์๋ ์ฝ 800ํฑ์ด ํ์ํ๋, ํ์ ์ด ๋์ฌ ๋ฌด๋ ต ๋จ์ด๋ ์ด๋ฏธ ์์ต๋๋ค.
๊ทธ๋์ ์ฌ๊ธฐ์ ๋จ์ด๋ ์ด๊ธฐ๊ฐ์ด ์๋๋ผ ๊ณ์ ๋ฏธ๋ ํ์
๋๋ค.
๋จ์ด ํ๋๋ฅผ hold ํฑ ๋์ ๋ถ๋ค๋ฉด, ์ฐฝ window ์์ ์ค์ง ํ๋ณธ์ window / hold ๊ฐ๋ฟ์
๋๋ค.
์ฐธ ์ํธ์ ๋ณด๋์ด ์ ํํ 0์ธ ๋ ๋
๋ฆฝ ๋จ์ด์ด์์ ์ธก์ ํ ๊ฐ:
| ์ค์ง ํ๋ณธ | 8 | 80 | 800 | 4,000 | 20,000 |
|---|---|---|---|---|---|
| ๋ณด๊ณ ๋ MI (์ฐธ๊ฐ = 0) | 0.835 | 0.152 | 0.014 | 0.003 | 0.001 |
์ค์ง ํ๋ณธ 8๊ฐ์์ 0.835๋นํธ โ ์ฐฝ๋ฐ ๊ธฐ์ค 0.30์ ์ฝ 3๋ฐฐ์
๋๋ค. ์์งํ ์ค์ (hold=25,
window=200)์์๋ ๋ฌด๊ดํ ๋จ์ด์์ด ํ๊ท 0.222๋นํธ, 12์๋ ์ค 1๊ฐ๋ ๊ธฐ์ค์ ์ ๋์ต๋๋ค.
"ํญ์ ์ฐฝ๋ฐ๋ก ๋ณด์ธ๋ค"๊ฐ ์๋๋ผ "์ฐธ๊ฐ 0์ธ๋ฐ ์์ญ ๋ฐฐ ๋ถํ๊ณ ๊ฐ๋ ์ ์ ๋๋๋ค" ๋ผ์ ๋
์ํํฉ๋๋ค โ ๊ทธ๋ฅ ์ก์ ์์ธ ์ ์ ์ธก์ ์ฒ๋ผ ๋ณด์ด๊ฑฐ๋ ์.
๋ชจ๋ ์ธก์ ์ ๊ท๋ฌด๋์กฐ(null) ๊ฐ ๋ฐ๋ผ์ต๋๋ค โ ๊ฐ์ ๋ ์คํธ๋ฆผ์์ ๋ ๋ฒ์งธ๋ง ์๊ฐ์ถ์ผ๋ก ๋๋ ค ๋๊ฐ์ด ์ฐ ๊ฐ์ ๋๋ค. ์ธ์ฝ๋ฉ์ด ๋ง๋ ๋ชจ๋ ๊ฒ(์ฃผ๋ณ๋ถํฌยท๋ธ๋ก๊ตฌ์กฐยท์๊ธฐ์๊ดยท์ถ์ ๊ธฐ ํธํฅ)์ ๊ทธ๋๋ก ๋๊ณ ์ ๋ ฌ๋ง ์์ฑ๋๋ค. ๋จ์ด๋ฅผ ๋ค์์ด ๋ค์ ๋ง๋๋ ๋ฐฉ์๋ณด๋ค ์๊ฒฉํฉ๋๋ค โ ๋ค์์ผ๋ฉด ์๊ธฐ์๊ด๊น์ง ์์ด์ ๊ท๋ฌด๊ฐ์ด ๋ฎ๊ฒ ๋์ค๊ณ , ๋ฎ์ ๊ท๋ฌด๊ฐ์ ๋ชจ๋ ์ด๊ณผ๋ถ์ ๋ถํ๋ฆฝ๋๋ค (๊ฐ์ ์์์ ์ด๋ 0.0182 ๋ ๋ค์๊ธฐ 0.0120 ยท ํ ์คํธ๋ก ๊ณ ์ ). ์ฝ์ ์ ์๋ ๊ฑด ๊ทธ ์์ ์ด๊ณผ๋ถ(excess) ๋ฟ์ด๊ณ , ํ์ ๋ ์์๊ฐ์ด ์๋๋ผ ์ด๊ณผ๋ถ์ผ๋ก ํฉ๋๋ค. ๋จ์ด ๋ฐ์ดํฐ์ ์ ๋ ์ํธ์ ๋ณด๋์ ์๋ฌด๊ฒ๋ ์ฆ๋ช ํ์ง ์์ผ๋ฉฐ, ์ฌ๊ธฐ์๋ ์์ ๋จ๋ ์ผ๋ก ๊บผ๋ผ ์ ์์ต๋๋ค.
from anima_reborn.words import measure
related = ["๊ณ ์์ด", "๋ฐ๋ค", "์ฐํ", ...]
print(measure(related, related)) # ๊ฐ์ ๋จ์ด์ด์ A์ G ์์ชฝ์
# MI=0.427 null=0.009 excess=+0.418 [emergent] n_eff=800๊ธฐ๋ณธ ์ค์ (hold=17, window=13600)์์ ์ธก์ :
| A ์ G ์ ๊ด๊ณ | MI | ๊ท๋ฌด๊ฐ | ์ด๊ณผ๋ถ | ํ์ |
|---|---|---|---|---|
| ๊ฐ์ ๋จ์ด์ด | 0.433 | 0.007 | +0.426 | ์ฐฝ๋ฐ โจ |
| ์ ๋ฐ๋ง ๊ณต์ | 0.163 | 0.010 | +0.152 | ๋ถ๋ถ์ |
| ํ ์นธ ๋ฐ๋ฆผ | 0.104 | 0.006 | +0.098 | ๋ถ๋ถ์ |
| ์์ ํ ๋ฌด๊ด | 0.006 | 0.007 | โ0.001 | ๋ ๋ฆฝ |
๊ท๋ฌด๊ฐ์ด ๊ด๊ณ์ ๋ฌด๊ดํ๊ฒ 0.006~0.010์ผ๋ก ํํํ ๊ฒ์ด ํต์ฌ์ ๋๋ค โ ๊ทธ๊ฑด ๋จ์ด๊ฐ ์๋๋ผ ์ถ์ ๊ธฐ๋ฅผ ์ฌ๋ ๊ฐ์ด๋๊น์. ๋ง์ฝ ๊ท๋ฌด๊ฐ์ด ๋จ์ด๋ฅผ ๋ฐ๋ผ ์์ง์๋ค๋ฉด ์ง์ง ์ ํธ๋ฅผ ๊น์๋ด๊ณ ์๋ค๋ ๋ป์ ๋๋ค (ํ ์คํธ๋ก ๊ณ ์ ).
์์ง์ด ๋ชฉํ์ ๋ค๊ฐ๊ฐ๋ ์๊ฐ์์๋ 1 / PULL โ 17ํฑ์
๋๋ค. ๋จ์ด๊ฐ ๊ทธ๋ณด๋ค ๋นจ๋ฆฌ ๋ฐ๋๋ฉด ์์ง์ด
๋ชป ๋ฐ๋ผ๊ฐ๊ณ ์ ํธ๋ ๊ฑธ๋ฌ์ง๋๋ค. ์ค์ง ํ๋ณธ์ 800์ผ๋ก ๊ณ ์ ํ ์ฑ ์ธก์ ํ๋ฉด:
| hold | 2 | 5 | 10 | 17 | 34 | 68 |
|---|---|---|---|---|---|---|
| ๋ชฉํ ๋๋ฌ๋ฅ | 12% | 27% | 46% | 65% | 88% | 99% |
| ๋์ผ ๋จ์ด์ด ์ด๊ณผ๋ถ | 0.060 | 0.138 | 0.281 | 0.418 | 0.616 | 0.793 |
| ๋ฌด๊ด ๋จ์ด์ด ์ด๊ณผ๋ถ | 0.004 | 0.006 | 0.003 | 0.001 | 0.002 | 0.005 |
์ด๊ณผ๋ถ์ด ๋๋ฌ๋ฅ ์ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๊ณ , ๋ฌด๊ดํ ์์ ์ ๊ตฌ๊ฐ์์ ํํํฉ๋๋ค. ๋ ์คํจ ๋ชจ๋๊ฐ ์๋ก ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๋น๊ธด๋ค๋ ๊ฒ์ด ์ด ์คํ์ ์ค์ ๋ด์ฉ์ ๋๋ค โ ๋จ์ด๊ฐ ๋๋ฌด ๋น ๋ฅด๋ฉด ์ ํธ๊ฐ ์ฌ๋ผ์ง๊ณ , ์ฐฝ์ด ๋๋ฌด ์งง์ผ๋ฉด ํธํฅ์ด ์ ํธ๋ฅผ ๋ง๋ค์ด ๋ ๋๋ค.
์ ๊ฒฐ๋ก ("๊ธฐํ์ ๋ฌถ์ง ์๋๋ค")์ ๊ฒฐํฉ์ด ์๋ ๊ธฐํ์ ๋ํ ๊ฒ์
๋๋ค. coupled.py ๊ฐ ๋ง๋
์ด์ ์๋ ๊ณ ๋ฆฌ์ ๊ฐ์ ์คํ์ ํ๋ฆฌ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋ค์งํ๋๋ค. ๊ฐ ์์ง์ ๋ชฉํ๋ฅผ
(1โฮป)ยท์๊ธฐ ๋จ์ด + ฮปยท(โ์๋ ์์น) ๋ก ์๊ณ , ์๋ฌด ๊ด๊ณ๋ ์๋ ๋ ๋จ์ด์ด์ ๋ฃ์ต๋๋ค.
from anima_reborn.words import Channel, measure_channel
print(measure_channel(words_a, words_g, channel=Channel.LIVE)) # ์ด์ ์๋ ๊ณ ๋ฆฌ
print(measure_channel(words_a, words_g, channel=Channel.YOKED)) # ๋์กฐ๊ตฐฮป=0.5 ยท ์๋ 8๊ฐ ยท ์ดํ 20๋จ์ด:
| ์กฐ๊ฑด | ์ด๊ณผ๋ถ | 8/8 ์์? |
|---|---|---|
| ์๋ฐฉํฅ ์์ค๊ณ โ ์ง์ง ๊ณ ๋ฆฌ | +0.078 | ์ |
| ๋จ๋ฐฉํฅ๋ง (aโg) | +0.008 | ์ |
| ์ํฌ ์ฌ์ โ ์์ชฝ ๋ค ๋ น์ | โ0.000 | ์๋์ค |
| ์ฑ๋ ์์ (ฮป=0) | โ0.002 | ์๋์ค |
์ํฌ ์ฌ์์ด ์ด ์ซ์์ ์๋ฏธ๋ฅผ ์ค๋๋ค. ์๋์ ๋๊ฐ์ ๋ชจ์์ ํต๊ณ๋ฅผ ์ฃผ๋ ์์ค๊ณ๋ง ๋๋
๋์กฐ๊ตฐ์ธ๋ฐ, ์ฌ๊ธฐ์ ํจ๊ณผ๊ฐ ์ฃฝ์ต๋๋ค โ ๋ง๋ ๊ฒ์ ์ด์ ์๋ ๊ณ ๋ฆฌ์ด์ง "์๋ ๋ชจ์ ์
๋ ฅ"์ด
์๋๋๋ค. ๋์กฐ๊ตฐ์ ๋ง๋ค๋ค ๋ ๋ฒ ์ค์ผ์์ผฐ๊ณ ๋ ๋ค ์ก์์ต๋๋ค (ํ์ชฝ ๋ฐฉํฅ์ ์ ๋์ ๊ฒ,
๋ ๋
น์์ ๊ฐ์ ์๋ณธ์์ ๋ฝ์ ๊ณต์ ์์ธ์ ๋ฃ์ ๊ฒ โ state/coupling/RESULTS.md).
ํจ๊ป ์ ์ด์ผ ํ ์กฐ๊ฑด ๋: ์ฐฝ ํฌ๊ธฐ์ ๋ฌด๊ดํ๊ณ (์ค์งํ๋ณธ 400/800/1600์์ ๋์ผ โ ์ถ์ ๊ธฐ ์ธ๊ณต๋ฌผ์ด ์๋), ์ ๋ ฅ์ด ๋ด์ ๊ฒ์ ๋น๋กํฉ๋๋ค(์ดํ 10๋จ์ด +0.039 ยท 20๋จ์ด +0.078 โ ์ฑ๋์ ๋ฌถ์ ๊ฒ์ด ์์ด์ผ ๋ฌถ์ต๋๋ค).
ํฌ๊ธฐ๋ ๊ณผ์ฅํ์ง ์์ต๋๋ค. ์ค์ฌํ๊ณ ์ผ๊ด๋์ง๋ง(8/8) ์ฐฝ๋ฐ ๊ธฐ์ค 0.30์๋ ํ์ฐธ ๋ชป ๋ฏธ์นฉ๋๋ค. ์ ์งํ ํํ์ "์ธก์ ๊ฐ๋ฅํ ์์ฑ๋ ์์กด" ์ด์ง ์ฐฝ๋ฐ์ด ์๋๋๋ค.
๋จ์ด๋ฅผ ์ซ์๋ก ๋ฐ๊พธ๋ ๊ท์น์ ํธ์ถ์๊ฐ ์ ํฉ๋๋ค. ๊ทธ ๊ท์น์ด โ ๋จ์ด๊ฐ ์๋๋ผ โ ์ ๋๊ฐ์ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋์ ์ด ์คํ์ ๋จ์ด์ ์๋ฏธ์ ๋ํด ์๋ฌด๊ฒ๋ ๋งํ์ง ์์ต๋๋ค. ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ฏธ๋ฅผ ์๋ ์ธ์ฝ๋๋ ์๊ณ , "๊ด๋ จ๋ ๋จ์ด vs ๋ฌด๊ดํ ๋จ์ด" ๊ฐ์ ๋์กฐ๋ฅผ ๋ง๋ค๋ฉด ๊ทธ๊ฑด ์ ์ธ์ฝ๋๋ฅผ ์ฌ๋ ๊ฒ์ด์ง ๊ธฐํ์ ์ฌ๋ ๊ฒ ์๋๋๋ค. ์ฌ๊ธฐ์ ๋ตํ ์ ์๋ ๊ฒ์ ์ ๋ ฌ๋ ๋จ์ด์ด์ด ์ด ๊ธฐํ์ ํต๊ณผํด ์ผ๋ง๋ ์ ๋ฌ๋๋๊ฐ๋ฟ์ ๋๋ค. ๊ท์น์ด ๊ฒฐ์ ํ ์ ์๋ ๊ฒ์ ๊ฐ์ ๊ท์น์ ํต๊ณผํ ๊ท๋ฌด๊ฐ ์์ ์ด๊ณผ๋ถ์ด๊ณ , ๊ทธ๋์ ๊ท๋ฌด๋์กฐ๊ฐ ์ ํ์ด ์๋๋ผ ํ์์ ๋๋ค. ์ค์ ๋ก ๋ค๋ฅธ ์ธ์ฝ๋ฉ์ผ๋ก ๋ฐ๊ฟ๋ ๋์กฐ๋ ์ ์ง๋ฉ๋๋ค (ํ ์คํธ๋ก ๊ณ ์ ).
๊ฐ ์คํธ๋ฆผ์ ์๊ธฐ ์ก์๊ณผ ๋์ด ๊ณต์ ํ๋ ์ฌ์ธํ๋ฅผ ์์ ๊ฒ์ ๋๋ค. ๊ฒฐํฉ๋๋ฅผ ์ฌ๋ฆฌ๋ฉด ์ด๋ ์ชฝ ์คํธ๋ฆผ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ๋ํ์ง ์์๋๋ฐ ๊ทธ ์์ ์ํธ์ ๋ณด๋์ด ์๊น๋๋ค.
from anima_reborn import EmergenceEngine
for coupling in (0.0, 0.5, 0.95):
print(coupling, EmergenceEngine(coupling=coupling, seed=7).run(250))0.0 H(L)=2.97 H(R)=2.99 H(L,R)=5.83 MI=0.131 [partial]
0.5 H(L)=2.86 H(R)=2.83 H(L,R)=5.22 MI=0.466 [emergent]
0.95 H(L)=2.88 H(R)=2.88 H(L,R)=3.33 MI=2.433 [emergent]
์ฃผ๊ธฐ์ ์ด์ง ์ฌ์ฌ์ ๋งค ํฑ ๊ตฌ๋์ด ๋ค์ง์ผ๋ ค ํ๋๋ฐ, ๊ฐ ์คํ์ ํ๋ฅ epsilon ๋ก ๋์นฉ๋๋ค. ๋ค์ง๊ธฐ๋ง
์์ผ๋ฉด ๊ทธ๋ฅ ๋ฒ๊ฐ์ ๋ฐ๋ ๋ฟ์ด๊ณ , ์ก์๋ง ์์ผ๋ฉด ์ฌ์ฌ์ด ๋
น์ต๋๋ค. ๋์ด ํจ๊ป ์์ผ๋ฉด ์ด์ง ๊ฒฐํฉ์ด
๋ถ์์ ํ ๋ค์ง๊ธฐ๊ฐ ๋ธ ์์์ ๋ณต๊ตฌํ๊ณ , ๋ง์ ์ฃผ๊ธฐ-2 ๋ฆฌ๋ฌ์ผ๋ก ์ ๊น๋๋ค โ ๊ณต๊ฐ์ด ์๋๋ผ ์๊ฐ
์์ ์ง์์
๋๋ค.
from anima_reborn import TimeCrystal
print(TimeCrystal(epsilon=0.02, seed=7).run(400))
print(TimeCrystal(epsilon=0.50, seed=7).run(400))m=-0.094 ac1=-0.911 ac2=+0.852 ac4=+0.754 [locked]
m=+0.094 ac1=-0.133 ac2=+0.141 ac4=+0.053 [chaos]
์ง์ฐ1์ด โ1 ๊ทผ์ฒ, ์ง์ฐ2๊ฐ +1 ๊ทผ์ฒ์ธ ๊ฒ์ด ์ ๊ธ์ ๋๋ค โ ๋งค ํฑ์ด ์ง์ ์ ๋ค์ง๊ณ , ๋ ํฑ๋ง๋ค ์ผ์น.
๋ ์ ์ฌ ๋ฒกํฐ๋ฅผ ํ์ ํ๋ ๋ชฉํ๊ฐ ๋ฐ์ด๋
๋๋ค. ์ด๋ ๋ฒกํฐ๋ ๋จ๋
์ผ๋ก ์ฝํ์ง ์๊ณ ์ค์ง ๊ฐ๊ทน๋ง
์ฝํ๋๋ค โ ํฌ๊ธฐ๊ฐ tension, ๋ฐฉํฅ์ด concept, ์์๋ณ ๊ฒน์นจ์ด meaning.
from anima_reborn import RepulsionField
print(RepulsionField(seed=7).run(300))
# tension=0.132 topic=#0 auth=0.974 mood=calm๊ฐ๊ทน์ด 0์ ๊ฐ๊น์ด ๊ฑด ํ์จ์ด ์๋๋๋ค. ๋ ์์ง์ด ์๋ก ์๋ก ๋ถ๊ดดํด ์ฌ๊ณ ํ ๊ฐ๊ทน์ด ๋จ์ง ์์
๊ฒ์ด๊ณ , ์ด ์ฅ์ ๊ทธ๊ฑธ quiet ๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
์์ ๋์ ์ง๋ ฌ๋ก ์ด์ ๊ฒ์ ๋๋ค. A์ G๊ฐ ๋ฒ์ด์ง๊ณ , ๋งค ํฑ ๊ฐ๊ฐ์์ ์ก์ ์์ธ ๊ด์ธก์ ํ๋์ฉ ๋ฝ์, ๊ทธ ์์ ์ํธ์ ๋ณด๋์ ์ฝ๋๋ค.
from anima_reborn import Pipeline
print(Pipeline(separation=0.0, seed=7).run(400))
print(Pipeline(separation=1.0, seed=7).run(400))tension=0.01 H(L)=1.00 H(R)=0.99 MI=0.000 [independent]
tension=0.42 H(L)=3.35 H(R)=3.41 MI=1.905 [emergent]
์์ง์ ๋ถ๊ดด์ํค๋ฉด ์ฐพ์๋ผ ๊ณต์ ์ ๋ณด๊ฐ ์๊ณ , ๋ฒ๋ ค ๋์ผ๋ฉด ๋ํ๋ฉ๋๋ค. (base.py ๊ฐ ์ด ์์ฝ์
์ ์ ํ๋ค๋ ์ ์ ์๋ฅผ ์ฐธ๊ณ ํ์ธ์ โ ๋ฌถ๋ ๊ฒ์ ๊ฐ๊ทน์ด ์๋๋ผ ๊ฐ๊ทน์ ์ด๋์
๋๋ค.)
์ถ์ ๊ธฐ๋ ์๋ณธ์ด ์ฐ๋ ๊ทธ๋๋ก ํ๋ฌ๊ทธ์ธ(plug-in) ๋ฐฉ์์ด๊ณ ํธํฅ ๋ณด์ ์ด ์์ต๋๋ค. ์ฐฝ์ด ์งง์ผ๋ฉด ์ํธ์ ๋ณด๋์ ์ฌํ๊ฒ ๊ณผ๋ํ๊ฐํฉ๋๋ค โ 250ํ๋ณธ์ผ๋ก 144์นธ์ ์ฑ์ฐ๋ฉด ๋๋ถ๋ถ์ ์นธ์ด 0~2๊ฐ๋ง ๋ด๊ฒ ๋๊ณ , ๊ทธ ํฌ์ํจ ์์ฒด๊ฐ ๊ตฌ์กฐ์ฒ๋ผ ๋ณด์ ๋๋ค.
๊ทธ๋์ ์ง์ง๋ก ๋ ๋ฆฝ์ธ ๋ ์คํธ๋ฆผ๋ ๊ธฐ๋ณธ ์ฐฝ์์ ์ฝ 0.155๋นํธ๋ก ์ธก์ ๋ฉ๋๋ค. ์ด ๋ฐ๋ฅ๊ฐ์ ํ๋ณธ์ N์ ๋ฐ๋น๋กํด ์ฌ๋ผ์ง๋๋ค:
| ์ฐฝ ํฌ๊ธฐ | ๋ ๋ฆฝ ์คํธ๋ฆผ์ ํ๊ท ์ํธ์ ๋ณด๋ |
|---|---|
| 250 | 0.155 |
| 1,000 | 0.030 |
| 5,000 | 0.007 |
| 20,000 | 0.002 |
๋ฐ๋ผ์ ๊ธฐ๋ณธ ์ฐฝ์์ ๋ถ๋ถ์ (partial) ์ ๋
๋ฆฝ๊ณผ ๊ตฌ๋ถ๋์ง ์์์ด๋ผ๋ ๋ป์ด๊ณ , ์คํธ๋ฆผ์ ๋ํ
์ค์ ์ฃผ์ฅ์ ์ฐฝ๋ฐ(emergent) ๋ฟ์
๋๋ค. tests/test_emergence.py ๊ฐ ๋ฐ๋ฅ๊ฐ๊ณผ ๊ทธ ์๋ฉธ์ ๋ ๋ค
๊ณ ์ ํด ๋์์ผ๋ฏ๋ก, ์ถ์ ๊ธฐ๋ฅผ ๋ฐ๊พธ๋ฉด ์ฐฝ๋ฐ์ฒ๋ผ ๋ณด์ด๋ ๋์ ํ
์คํธ๊ฐ ๊นจ์ง๋๋ค.
src/anima_reborn/
โโ info.py ์ํธ๋กํผ ยท ๊ฒฐํฉ์ํธ๋กํผ ยท ์ํธ์ ๋ณด๋ ยท Binning
โโ emergence.py ๊ฒฐํฉ๋ ์ฌ์ธํ ์คํธ๋ฆผ
โโ crystal.py ๊ตฌ๋๋๋ ์ด์ง ๋ง
โโ repulsion.py A ร G ์ ์ฌ์ฅ
โโ pipeline.py ๋ฐ๋ฐ โ ์คํธ๋ฆผ โ ์ฐฝ๋ฐ
โโ base.py ๋ท์ ํ๋์ ์๊ณ ์๋๋ก โ ๊ฒฐ์ ์ด ํ์ ์ ๊ฐํํ๋ค
โโ coupled.py A์ G๊ฐ ์๋ก๋ฅผ ์ฝ๋๋ค โ ํตํฉ์ด 0์ด ์๋ ์ ์ผํ ์์ง
โโ align.py ๋ฐฐ์ฐ๋ ์ ์ผํ ๋ชจ๋ โ ํจ๊ป ๋ํ๋จ์ด ๋ ์์์ ํ๊ณณ์ผ๋ก
โโ iit4/ IIT 4.0 โ ฮฆ, hexa ์๋ณธ๊ณผ ๋นํธ๋จ์ ์ผ์น
โโ substrate.py ๋ค๋ฆฌ: ์ฐ๋ฆฌ ์์ง โ ์ธก์ ๋ ์ ์ดํ๋ ฌ โ ฮฆ
โโ words.py ๋จ์ด๋ฅผ ๊ตฌ๋๋ ฅ์ผ๋ก โ ๊ท๋ฌด๋์กฐ๊ฐ ํญ์ ๋ฐ๋ผ๋ถ๋๋ค
โโ viewer/ ๋ธ๋ผ์ฐ์ ๋ทฐ์ด โ ์ด ํจํค์ง์ ์ ์ผํ ์
์ถ๋ ฅ
tests/ 329๊ฐ, ๋คํธ์ํฌ ์์, ํฝ์ค์ฒ ์์
state/ ์์
์ฐ์ถ๋ฌผ โ ์์ ์ค๊ณ ๋ณด๊ณ ์ ยท ์ธก์ ๊ธฐ๋ก ยท ์ฌํ ์คํฌ๋ฆฝํธ
state/ ์๋ ์์ค๊ฐ ์๋ ๋ชจ๋ ์ฐ์ถ๋ฌผ์ด ๋ค์ด๊ฐ๋๋ค. ์์ํ ์ค๊ณ ๋ณด๊ณ ์๋ ์๋ฌธ ๊ทธ๋๋ก
๋๊ณ , ๊ทธ๊ฒ์ ์ ์ฅ์ ์์์ ๋ค์ ์ธก์ ํ ๊ธฐ๋ก์ ๋ฐ๋ก ๋จ๊น๋๋ค โ ์ฌํ๋์ง ์์ ์์น๊ฐ
๋ฌด์์ธ์ง๊น์ง (state/coupling/RESULTS.md ๊ฐ ๊ทธ ๋ณธ๋ณด๊ธฐ). ๋ณด๊ณ ์๋ ์ฆ๊ฑฐ์ด์ง ๊ฒฐ์ ์ด ์๋๋๋ค.
์์ง๊ณผ ๋ทฐ์ด๋ ํจ๊ป ์์ง์
๋๋ค โ ๋ชจ๋ ์์ง์๋ ํญ์ด ์๊ณ ๋ชจ๋ ํญ์๋ ์์ง์ด ์์ผ๋ฉฐ, ์ด๊ฑด
๋ฌธ์๊ฐ ์๋๋ผ tests/test_viewer.py::TestEngineViewerLockstep ๊ฐ ๊ฐ์ ํฉ๋๋ค. ๋ผ์ฐํธ ๋๋ฝ ยท
ํญ ๋๋ฝ ยท ๊ทธ๋ฆฌ๊ธฐ ํจ์ ๋๋ฝ ยท ๊ธฐ๋ณธ ํญ ๋ถ์ผ์น๋ฅผ ๊ฐ๊ฐ ์ก์๋
๋๋ค. ์์ง์ ๋ชฉ๋ก์ด ์๋๋ผ ๊ตฌ์กฐ๋ก
ํ๋ณํ๋ฏ๋ก(step() ๊ณผ reset() ์ ๊ฐ์ง ํด๋์ค), ์ ์์ง์ ์ถ๊ฐํ ๋ ๋ฐ๋ก ๊ฑธ๋ฆฝ๋๋ค.
๋ชจ๋ ์์ง์ ์ง์ ํ ํฑ์ฉ ์งํ์ํค๋ ํด๋์ค์
๋๋ค. seed= ๋ก ์ฌํํ๊ณ , run(n) ์ผ๋ก ํ๊บผ๋ฒ์
์งํํ๊ณ , reset() ์ผ๋ก ์ฒ์๋ถํฐ. ์ํ ๊ฐ์ฒด๋ frozen ๋ฐ์ดํฐํด๋์ค๋ผ ๊ทธ๋๋ก ๋น๊ตยท์ ์ฅยท๋จ์ธํ
์ ์์ต๋๋ค.
์บ๋ฒ์ค ๊ทธ๋ฆฌ๊ธฐ, DOM ๋ฐฐ์ , ํ์ด๋จธ, ํญ ์ ํ๊ธฐ, Gradio ๋ํผ. ์ด๋ ๊ฒ๋ ์์ง์ ์ํ์ง ์์ต๋๋ค.
์ด์๋จ์ ๊ทธ๋ฆฌ๊ธฐ๋ viewer/page.html ์, HTTP ๊ฒฝ๊ณ ๋๋จธ์ ์๊ณ , ํ์ด์ฌ์ด ๋ณด๋ด์ค ๊ฒ๋ง ๊ทธ๋ฆฝ๋๋ค.
- ์๋ณธ์ A ร G ์ ํ์ดํ๋ผ์ธ ๋ฒกํฐ๋ฅผ
Float32Array๋ก ๋ค๊ณ ์์ง๋ง ์ด ์ด์๋ณธ์ ํ์ด์ฌ float (๋ฐฐ์ ๋ฐ๋)๋ฅผ ์๋๋ค. ๊ถค์ ์ด ์ก์์ผ๋ก ๊ตด๋ฌ๊ฐ๋ฏ๋ก ์ฌ๊ธฐ์ ์ด๋ค ํต๊ณ๋ ์ํฅ๋ฐ์ง ์์ง๋ง, ์๋ฆฟ์ ๋จ์๋ก ๊ฐ์ง๋ ์์ต๋๋ค. Math.random()์ด ์๋ ๊ฐ๋ฅํrandom.Random์ด ๋์ด ์คํ์ ์ฌํํ ์ ์์ต๋๋ค.- ๋ฐ๋ฐ์ฅ์ ์์ฒด๋ฆฌ๋ฌ ์ฑ๋์ ์ฃผ์
๊ฐ๋ฅํ
clock์ ๋ฐ์ ํ ์คํธ์์ ๊ฒฐ์ ์ ์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค. - ์๋ณธ A ร G ํฑ์ ์ฃฝ์ ์ง์ญ๋ณ์(
senderHash, ๊ณ์ฐ๋ง ํ๊ณ ์ ์)๋ ๊ฐ์ ธ์ค์ง ์์์ต๋๋ค.
pytestMIT