[algorithm] PID Controller ์•Œ๊ณ ๋ฆฌ์ฆ˜
ยท
Programmings/Algorithms
PID ์ปจํŠธ๋กค๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜PID ์ปจํŠธ๋กค๋Ÿฌ๋Š” Proportional-Integral-Derivative (๋น„๋ก€-์ ๋ถ„-๋ฏธ๋ถ„) ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ์ œ์–ด ์‹œ์Šคํ…œ์—์„œ ๋ชฉํ‘œ๊ฐ’๊ณผ ์‹ค์ œ๊ฐ’ ๊ฐ„์˜ ์˜ค์ฐจ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”ผ๋“œ๋ฐฑ ์ œ์–ด ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฐ์—… ์ž๋™ํ™”, ๋กœ๋ด‡ ์ œ์–ด, ์˜จ๋„ ์กฐ์ ˆ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ๋„๋ฆฌ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.PID ์ œ์–ด์˜ ๊ตฌ์„ฑ ์š”์†ŒPID ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์ œ์–ด ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:๋น„๋ก€ ์ œ์–ด (Proportional Control, P)ํ˜„์žฌ ์˜ค์ฐจ $ e(t) $์— ๋น„๋ก€ํ•˜์—ฌ ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.์˜ค์ฐจ๊ฐ€ ํด์ˆ˜๋ก ํฐ ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ๋งŒ๋“ค์–ด ๋ชฉํ‘œ๊ฐ’์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.๋‹จ์ : ์ž”๋ฅ˜ ์˜ค์ฐจ(steady-state error)๊ฐ€ ๋‚จ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ ๋ถ„ ์ œ์–ด (Integral Control, I)์‹œ๊ฐ„์— ๋”ฐ๋ผ ..
[algorithms] Smitsimax ์•Œ๊ณ ๋ฆฌ์ฆ˜
ยท
Programmings/Algorithms
Smitsimax ์•Œ๊ณ ๋ฆฌ์ฆ˜๋™์‹œ ์ด๋™ ๊ฒŒ์ž„์—์„œ ์ตœ์ ์˜ ์ „๋žต์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, Monte Carlo Tree Search(MCTS)์™€ Minimax์˜ ๊ฐœ๋…์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋™์‹œ์— ํ–‰๋™ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Smitsimax ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.Smitsimax ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™ ์›๋ฆฌ MCTS ๊ธฐ๋ฐ˜ ํŠธ๋ฆฌ ๊ตฌ์กฐ Smitsimax๋Š” ๊ฐ ํ”Œ๋ ˆ์ด์–ด๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ MCTS ํŠธ๋ฆฌ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŠธ๋ฆฌ๋“ค์€ ๊ฐ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ž์‹ ์˜ ์ตœ์  ์ „๋žต์„ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์ผ๋ฐ˜์ ์ธ MCTS์™€ ๋‹ฌ๋ฆฌ, Smitsimax์˜ ๋…ธ๋“œ๋Š” ํŠน์ • ๊ฒŒ์ž„ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๊ณ , ํŠน์ • ํ–‰๋™ ๋ผ์ธ์„ ๋”ฐ๋ฅผ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์ƒํ™ฉ..
ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)๋ž€?
ยท
Programmings/Design Pattern
ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์˜ ์ดํ•ด: ์œ ์—ฐํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ „ํ™˜ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)๋Š” ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ํ˜์‹ ์ ์ธ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. 2005๋…„ ์•จ๋ฆฌ์Šคํ…Œ์–ด ์ฝ•๋ฒˆ(Alistair Cockburn)์ด ์ฒ˜์Œ ์ œ์•ˆํ•œ ์ด ์•„ํ‚คํ…์ฒ˜๋Š” ๊ธฐ์กด์˜ ๊ณ„์ธตํ˜• ๊ตฌ์กฐ(Layered Architecture)๊ฐ€ ๊ฐ€์ง„ ๊ตฌ์กฐ์  ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ณ ์ž ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์™ธ๋ถ€ ํ™˜๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์‹œ์Šคํ…œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ด ์•„ํ‚คํ…์ฒ˜์˜ ๊ทผ๋ณธ ๋ชฉ์ ์ž…๋‹ˆ๋‹ค. 2020๋…„๋Œ€์— ๋“ค์–ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์™€ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)์˜ ๋ถ€์ƒ๊ณผ ๋”๋ถˆ์–ด ๊ทธ ์ค‘์š”์„ฑ์ด ์žฌ์กฐ๋ช…๋˜๋ฉฐ ์ „๋žต์  ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] Genetic Algorithms (์œ ์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜)
ยท
Programmings/Algorithms
Genetic Algorithm(GA)์ž์—ฐ ์„ ํƒ๊ณผ ์ง„ํ™”๋ฅผ ๋ชจ๋ฐฉํ•˜์—ฌ ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฉ”ํƒ€ํœด๋ฆฌ์Šคํ‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ƒ๋ฌผํ•™์  ์ง„ํ™”์˜ ๊ฐœ๋…์ธ ์„ ํƒ(Selection), ๊ต์ฐจ(Crossover), ๋Œ์—ฐ๋ณ€์ด(Mutation)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด ์ตœ์ ์˜ ํ•ด๋ฅผ ์ฐพ์•„๊ฐ‘๋‹ˆ๋‹ค:์ดˆ๊ธฐํ™”(Initialization)์ดˆ๊ธฐ ์—ผ์ƒ‰์ฒด ์ง‘ํ•ฉ(ํ•ด ์ง‘ํ•ฉ)์„ ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.์ ํ•ฉ๋„ ํ‰๊ฐ€(Fitness Evaluation)๊ฐ ์—ผ์ƒ‰์ฒด(ํ•ด)์˜ ์ ํ•ฉ๋„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.์„ ํƒ(Selection)์ ํ•ฉ๋„๊ฐ€ ๋†’์€ ์—ผ์ƒ‰์ฒด๋ฅผ ๋ถ€๋ชจ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.๊ต์ฐจ(Crossover)๋ถ€๋ชจ ์—ผ์ƒ‰์ฒด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ž์† ์—ผ์ƒ‰์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.๋Œ์—ฐ๋ณ€์ด(Mutation)์ž์† ์—ผ์ƒ‰์ฒด์— ์ผ๋ถ€ ๋ณ€ํ™”๋ฅผ ๊ฐ€ํ•˜์—ฌ ๋‹ค์–‘์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.์ข…๋ฃŒ ์กฐ๊ฑด ํ™•์ธ(Terminat..
ํ…Œ์Šคํ„ฐ์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋‚ฌ์„๋•Œ ์งค
ยท
Programmings/Funny
ํ…Œ์Šคํ„ฐ์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋‚ฌ์„๋•Œ ์งค Instagram์—์„œ ์ด ๊ฒŒ์‹œ๋ฌผ ๋ณด๊ธฐ Programming Memes(@coding_comedy)๋‹˜์˜ ๊ณต์œ  ๊ฒŒ์‹œ๋ฌผ
QA๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐœ๋ฐœ์ž ๋ชจ์Šต ์งค
ยท
Programmings/Funny
QA๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐœ๋ฐœ์ž ๋ชจ์Šต ์งค Instagram์—์„œ ์ด ๊ฒŒ์‹œ๋ฌผ ๋ณด๊ธฐ Programming Memes(@coding_comedy)๋‹˜์˜ ๊ณต์œ  ๊ฒŒ์‹œ๋ฌผ
๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์˜ ๊ด€๊ณ„ ์งค
ยท
Programmings/Funny
๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์˜ ๊ด€๊ณ„ ์งค Instagram์—์„œ ์ด ๊ฒŒ์‹œ๋ฌผ ๋ณด๊ธฐ Programming Memes(@coding_comedy)๋‹˜์˜ ๊ณต์œ  ๊ฒŒ์‹œ๋ฌผ
๋ฒ„๊ทธ๋ฅผ ๊ณ ์ณค์„๋•Œ ์šฐ๋ฆฌ์˜ ๋ชจ์Šต ์งค
ยท
Programmings/Funny
๋ฒ„๊ทธ๋ฅผ ๊ณ ์ณค์„๋•Œ ์šฐ๋ฆฌ์˜ ๋ชจ์Šต ์งค Instagram์—์„œ ์ด ๊ฒŒ์‹œ๋ฌผ ๋ณด๊ธฐ Programming Memes(@coding_comedy)๋‹˜์˜ ๊ณต์œ  ๊ฒŒ์‹œ๋ฌผ
์•ˆ์“ฐ๋Š” ์ฝ”๋“œ๋ฅผ ์ง€์› ์„๋•Œ ์งค
ยท
Programmings/Funny
Instagram์—์„œ ์ด ๊ฒŒ์‹œ๋ฌผ ๋ณด๊ธฐ Programming Memes(@coding_comedy)๋‹˜์˜ ๊ณต์œ  ๊ฒŒ์‹œ๋ฌผ
์ƒ์šฉ๋ฐฐํฌ๋ฅผ ํ–ˆ์„๋•Œ ์šฐ๋ฆฌ์˜ ๋ชจ์Šต ์งค
ยท
Programmings/Funny
์ƒ์šฉ๋ฐฐํฌ๋ฅผ ํ–ˆ์„๋•Œ ์šฐ๋ฆฌ์˜ ๋ชจ์Šต ์งค Instagram์—์„œ ์ด ๊ฒŒ์‹œ๋ฌผ ๋ณด๊ธฐ Programming Memes(@coding_comedy)๋‹˜์˜ ๊ณต์œ  ๊ฒŒ์‹œ๋ฌผ