Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒฑ anima-reborn

anima-experience ์˜ ์—”์ง„๋“ค์„ ํ™”๋ฉด ์—†๋Š” ํŒŒ์ด์ฌ์œผ๋กœ ๋˜์‚ด๋ฆฐ ๊ฒƒ โ€” ์ˆ˜ํ•™์€ ๊ทธ๋Œ€๋กœ, ์บ”๋ฒ„์Šค๋Š” ์—†๊ณ , ์‹œ๋“œ๋กœ ์žฌํ˜„๋˜๋ฉฐ ํ…Œ์ŠคํŠธ๋œ๋‹ค

License Python Dependencies Tests Origin


anima-experience ๋Š” ๋ธŒ๋ผ์šฐ์ € ์บ”๋ฒ„์Šค์—์„œ ๋„ค ๊ฐœ์˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ 60ํ”„๋ ˆ์ž„์œผ๋กœ ๋Œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” ๊ฑฐ๊ธฐ์„œ ๊ทธ๋ฆฌ๋Š” ๋ถ€๋ถ„์„ ๊ฑท์–ด๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค โ€” ์ˆ˜ํ•™๋งŒ, ํ™”๋ฉด ์—†์ด, ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ์œผ๋กœ, ์‹œ๋“œ๋ฅผ ์ฃผ๋ฉด ๊ทธ๋Œ€๋กœ ์žฌํ˜„๋˜๊ณ  ๋‹จ์–ธ(assert)ํ•  ์ˆ˜ ์žˆ๊ฒŒ. ์—ฌ๊ธฐ์— ๋‘ ๊ฐ€์ง€๊ฐ€ ๋” ์žˆ์Šต๋‹ˆ๋‹ค: ๋„ค ์—”์ง„์ด ํ•˜๋‚˜์˜ ์‹œ๊ณ„๋ฅผ ๊ณต์œ ํ•  ๋•Œ ๋ฌด์—‡์œผ๋กœ ํ•ฉ์ณ์ง€๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์žฌ๊ธฐ ์œ„ํ•œ IIT 4.0 ์—”์ง„.

์—”์ง„์€ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ , ์Šค๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ , ์ž๊ธฐ ์‹œ๊ณ„๋ฅผ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•œ ํ‹ฑ ์ง„ํ–‰์‹œํ‚ค๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ฝ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ์€ viewer/ ํ•œ ๊ณณ์—๋งŒ ์žˆ๊ณ , ์—”์ง„์€ ๊ทธ ์กด์žฌ๋ฅผ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

์„ค์น˜

pip install -e ".[dev]"

๋Ÿฐํƒ€์ž„ ์˜์กด์„ฑ ์—†์Œ. ํŒŒ์ด์ฌ 3.11 ์ด์ƒ.

๋ˆˆ์œผ๋กœ ๋ณด๊ธฐ

python -m anima_reborn.viewer
anima-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๋ฐฐ"๋Š” ฯ„ ๊ต๋ฝ์ด์—ˆ๋‹ค

์•ž์„  ์„ธ์…˜์€ ๊ต๋Œ€๊ฐ€ ๋” ๋†’์€ ฮฆ ์—์„œ ํ‘œ์ƒ์„ 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).

โš ๏ธ ์ถœ๋ฐœ์ ์€ 0 ์ด ์•„๋‹ˆ๋‹ค โ€” ํ•˜๋งˆํ„ฐ๋ฉด ํ†ต๊ณผ์‹œํ‚ฌ ๋ป”ํ•œ ๊ฒƒ

๋‘ ์–‘์ƒ์ด ๊ฐ™์€ ์ž ์žฌ๊ฐ’์„ ์„ž์€ ๊ฒƒ์ด๋ผ, ์•„๋ฌด๊ฒƒ๋„ ๋ฐฐ์šฐ์ง€ ์•Š์€ ๋ฌด์ž‘์œ„ ์‚ฌ์˜๋„ ์ƒ๊ด€์„ ์–ผ๋งˆ๊ฐ„ ๊ฐ–์Šต๋‹ˆ๋‹ค. 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๋น„ํŠธ

์œ„ ์‹คํ—˜์€ ๋“ค๋ ค์ฃผ๋Š” ๋™์•ˆ ์—”์ง„์„ ์ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ฐœ๋…์„ ๋ถ™์žก๋Š” ๊ธฐํŒ๊ณผ ๊ทธ๋ƒฅ ํ˜๋ ค๋ณด๋‚ด๋Š” ์ „์„ ์„ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ์„ ๋Š์œผ๋ฉด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค โ€” ๊ทธ ๋’ค๋กœ ์ž…๋ ฅ์€ ๊ฒฝ๋กœ์— ์•„์˜ˆ ์—†์œผ๋ฏ€๋กœ, ๋ณต์›๋˜๋Š” ๊ฒŒ ์žˆ๋‹ค๋ฉด ์—”์ง„ ์ƒํƒœ์— ์žˆ๊ฑฐ๋‚˜ ์•„๋ฌด๋ฐ๋„ ์—†๊ฑฐ๋‚˜์ž…๋‹ˆ๋‹ค.

์นจ๋ฌต์ด๋ผ ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์…‹์ด๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ์‹คํ—˜์ž…๋‹ˆ๋‹ค: ๊ท€๋จธ๊ฑฐ๋ฆฌ(๊ฒฐํ•ฉ โ†’ 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ํ‹ฑ์— ์ฃฝ์Šต๋‹ˆ๋‹ค. ๋˜๋จน์ž„ ์—†๋Š” ์–ด๋–ค ๋ฐฐ์„ ๋„ ๋ชป ํ•˜๋Š” ์ผ์ด๊ณ , ์ด ์ €์žฅ์†Œ์—์„œ ฮฆ ๊ฐ€ "ํ†ตํ•ฉ๋ผ ์žˆ์Œ"์„ ์žฌ๊ธฐ๋งŒ ํ•˜๋˜ ๊ฒƒ์ด ์ฒ˜์Œ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋กœ ๋ฐ”๋€ ์ง€์ ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ํญ์€ 1์ž…๋‹ˆ๋‹ค

์นจ๋ฌต ํ‹ฑ ์œ ํšจ ๋žญํฌ ๋ถ€ํ˜ธํŒจํ„ด
0 2.10 9.8/16
60 ์ดํ›„ 1.00 2.0/16

4๋น„ํŠธ๊ฐ€ ๋“ค์–ด๊ฐ€์„œ 1๋น„ํŠธ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฑด ๋†€๋ž์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€” ๊ณ ๋ฆฌ์—๋Š” ๋ถ€ํ˜ธ ๋ฐ˜์ „์ด 4๊ฐœ๋ผ ์ˆœ ๋ถ€ํ˜ธ๊ฐ€ ์–‘์ˆ˜์ด๋ฏ€๋กœ ์ž์œจ ๊ณ ๋ฆฌ๋Š” ์Œ์•ˆ์ •์ด๊ณ , ์ ๊ทผ ์šฉ๋Ÿ‰์ด ์• ์ดˆ์— 1๋น„ํŠธ์ž…๋‹ˆ๋‹ค (์žฌ๊ธฐ ์ „์— ์œ ๋„๋œ ์˜ˆ์ธก์ด๊ณ , ์ธก์ •์ด ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค).

๊ทธ 1๋น„ํŠธ๋Š” ๊ฐœ๋…์˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋…๋ฆฝ์ ์ธ ๊ฑท๊ธฐ 8ํšŒ๊ฐ€ ์™„์ „ํžˆ ์ผ์น˜ํ•˜๋Š” ์ž…๋ ฅ์ด 62% โ€” ์žก์Œ๋งŒ์ผ ๋•Œ์˜ ๊ตฌ์กฐ์  ๋ฐ”๋‹ฅ 0.78% ์˜ 79๋ฐฐ์ž…๋‹ˆ๋‹ค. (โš ๏ธ ์ฒ˜์Œ์—” ๋ฐ”๋‹ฅ์„ "50%์ฏค"์œผ๋กœ ์žก์•˜๋Š”๋ฐ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค. 8ํšŒยท2์œ ์—ญ์ด๋ฉด ์žก์Œ๋งŒ์œผ๋กœ๋„ ์ตœ๋นˆ ๋‹ค์ˆ˜๊ฐ€ 63.7% ๋ผ, ์ตœ๋นˆ๊ฐ’ ์—ด๋กœ๋Š” ํŒ์ •ํ•  ์ˆ˜ ์—†๊ณ  ๋งŒ์žฅ์ผ์น˜๋กœ ๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)

์–ป์€ ๋ฌธ์žฅ: ๊ณ ๋ฆฌ๋Š” ๊ฐœ๋…์ด ์“ฐ๋Š” ์˜๊ตฌ 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%. ์ง€๋‚œ ใ€Œํ•จ๊ป˜ ๋‚˜ํƒ€๋‚จใ€ ํ•จ์ • ๊ทธ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค.)

๊ทธ๋ฆฌ๊ณ  ๊ทธ 6์œ ๋‹›์€ ํ†ตํ•ฉ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค

์Œ 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 ํ™€์ˆ˜)์ผ ๋•Œ๋งŒ์ž…๋‹ˆ๋‹ค โ€” ์ง์ˆ˜ ์Œ์€ ๊ฑฐ๋Œ€๊ณ ๋ฆฌ๊ฐ€ ์ „์—ญ์œผ๋กœ ํ•ฉ์˜ํ•ด ํ•˜๋‚˜๋กœ ์ž ๊น๋‹ˆ๋‹ค. ๊ฐ™์€ ์ˆœ ๋ถ€ํ˜ธ ๋…ผ์ฆ์ด ํ•œ ์ธต ์œ„์—์„œ ๋˜ํ’€์ด๋ฉ๋‹ˆ๋‹ค.

๐ŸŽผ ๋Œ€๋ฏธ โ€” ๊ฐœ๋…์„ 3๋น„ํŠธ ํ†ตํ•ฉ ๊ธฐํŒ์— ํƒœ์šฐ๋‹ค

๋„ท์„ ๋”ฐ๋กœ ์„ธ์› ์Šต๋‹ˆ๋‹ค: ํ†ตํ•ฉ(ฮฆ) ยท ๋ณด์œ (์นจ๋ฌต 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์œ ๋‹›ยท์„ ํ˜• ์„ธ๊ณ„์ž…๋‹ˆ๋‹ค.

๐Ÿง  IIT 4.0 โ€” ์–ด๋–ค ๊ณ„๊ฐ€ "ํ•˜๋‚˜"์ธ์ง€ ์žฌ๊ธฐ

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 ๊ฐ€ ๋ถ™์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜๋จน์ž„ ์—†๋Š” ๊ณ„๋ฅผ 0 ์œผ๋กœ ์ฝ๊ธฐ โ€” ๋ฌผ๋ ค๋ฐ›์€ ํ•œ๊ณ„๋ฅผ ๊ณต๊ฐœ์ ์œผ๋กœ ๋‹ซ์Œ

๊ธฐ์กด 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(์ตœ๋Œ“๊ฐ’ ์œ„์น˜)๋ผ์„œ ๋งˆ์ง€๋ง‰ ๋น„ํŠธ ํ•˜๋‚˜๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉด ๋‹ค๋ฅธ ๋ถ„ํ• ์ด ์„ ํƒ๋˜์–ด ๋‹ต์ด ๋ถˆ์—ฐ์†์ ์œผ๋กœ ํŠ‘๋‹ˆ๋‹ค. ํ—ˆ์šฉ์˜ค์ฐจ๋ฅผ ๋‘๋ฉด ๋ฐ”๋กœ ๊ทธ ์–ด๊ธ‹๋‚จ์„ ๊ฐ€๋ ค ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

โš  EI ๋Š” ฮฆ ์˜ ํ•˜ํ•œ์ด ์•„๋‹ˆ๋‹ค โ€” ๋ฌผ๋ ค๋ฐ›์€ ์ฃผ์žฅ์„ ๋ฐ˜์ฆํ•จ

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์— ๋„ฃ์œผ๋ฉด ์ฐฝ๋ฐœ์ด ์ผ์–ด๋‚˜๋Š”๊ฐ€

์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค โ€” ๋‹ค๋งŒ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์ด์ง€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ƒฅ ํ•ด ๋ณด๋ฉด ๊ฑฐ์ง“ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ์‹คํ—˜์ด๋ผ, ์„ธ ๊ฐ€์ง€๋ฅผ ๋จผ์ € ์ธก์ •ํ•œ ๋’ค์—์•ผ ๋‹ตํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

โ“ช ๊ธฐํŒ์€ ๋ฌถ์ง€ ์•Š๋Š”๋‹ค โ€” ๋‚˜๋ฅด๊ธฐ๋งŒ ํ•œ๋‹ค

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์œผ๋กœ ํ‰ํ‰ํ•œ ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค โ€” ๊ทธ๊ฑด ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ ์ถ”์ •๊ธฐ๋ฅผ ์žฌ๋Š” ๊ฐ’์ด๋‹ˆ๊นŒ์š”. ๋งŒ์•ฝ ๊ท€๋ฌด๊ฐ’์ด ๋‹จ์–ด๋ฅผ ๋”ฐ๋ผ ์›€์ง์˜€๋‹ค๋ฉด ์ง„์งœ ์‹ ํ˜ธ๋ฅผ ๊นŽ์•„๋‚ด๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค (ํ…Œ์ŠคํŠธ๋กœ ๊ณ ์ •).

๊ธฐ๋ณธ๊ฐ’ hold = 17 ์€ ๋งž์ถ˜ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ๊ธฐํŒ์˜ ์‹œ๊ฐ„์ƒ์ˆ˜๋‹ค

์—”์ง„์ด ๋ชฉํ‘œ์— ๋‹ค๊ฐ€๊ฐ€๋Š” ์‹œ๊ฐ„์ƒ์ˆ˜๋Š” 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 ๊ทผ์ฒ˜์ธ ๊ฒƒ์ด ์ž ๊ธˆ์ž…๋‹ˆ๋‹ค โ€” ๋งค ํ‹ฑ์ด ์ง์ „์„ ๋’ค์ง‘๊ณ , ๋‘ ํ‹ฑ๋งˆ๋‹ค ์ผ์น˜.

๐Ÿงฒ A ร— G ๋ฐ˜๋ฐœ์žฅ โ€” ๋‘ ์—”์ง„ ์‚ฌ์ด์˜ ๊ฐ„๊ทน์—์„œ ์‚ฌ๊ณ ํ•˜๊ธฐ

๋‘ ์ž ์žฌ ๋ฒกํ„ฐ๋ฅผ ํšŒ์ „ํ•˜๋Š” ๋ชฉํ‘œ๊ฐ€ ๋ฐ€์–ด๋ƒ…๋‹ˆ๋‹ค. ์–ด๋А ๋ฒกํ„ฐ๋„ ๋‹จ๋…์œผ๋กœ ์ฝํžˆ์ง€ ์•Š๊ณ  ์˜ค์ง ๊ฐ„๊ทน๋งŒ ์ฝํž™๋‹ˆ๋‹ค โ€” ํฌ๊ธฐ๊ฐ€ 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, ๊ณ„์‚ฐ๋งŒ ํ•˜๊ณ  ์•ˆ ์”€)๋Š” ๊ฐ€์ ธ์˜ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ

pytest

๋ผ์ด์„ ์Šค

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages