ํฌ์ŠคํŠธ

๐ŸŒ’ Fuzzy Logic

๐Ÿ’ซ Fuzzy Logic


๐Ÿซง _

@ U ๊ธฐ๋ง๊ณ ์‚ฌ ์ถœ์ œ : Fuzzy Loggic์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜๊ณ , ์™œ ํŽธ๋ฆฌํ•œ์ง€ ์„ค๋ช…ํ•˜์‹œ์˜ค.

์‹ค์„ธ๊ณ„ ์‹œ์Šคํ…œ(Real-World Systems)๊ณผ ์†Œํ”„ํŠธ์›จ์–ด ํ‘œํ˜„(Software Representations) ์‚ฌ์ด์˜ ๋ถˆ์ผ์น˜๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋กœํŠธํ”ผ ์ž๋ฐ(Lofti Zadeh)๊ฐ€ ์ •์˜ํ•œ ๋…ผ๋ฆฌ ์‹œ์Šคํ…œ(Logic Sytstem)์ด๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์ฐธ๊ณผ ๊ฑฐ์ง“์˜ ๋ถ€์šธ ๋…ผ๋ฆฌ ๊ฐ’์€ Two-Valued System์—์„œ ๊ณ ์œ ํ•œ ์š”์†Œ๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์„ธ๊ณ„๋Š” ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฑฐ์˜ ์—†๋Š”๋ฐ, ๋งŽ์€ ์กฐ๊ฑด๋“ค์ด ๋ถ€๋ถ„์ ์œผ๋กœ ์ฐธ์ด๊ฑฐ๋‚˜ ๋ถ€๋ถ„์ ์œผ๋กœ ๊ฑฐ์ง“์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํผ์ง€ ๋…ผ๋ฆฌ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ง„๋ฆฌ์˜ ์˜์—ญ์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง„๋ฆฌ์˜ ์ •๋„(Degrees of Truth)๋Š” ์ง„๋ฆฌ๋‚˜ ๊ฑฐ์ง“์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ด์ง„ ์‹œ์Šคํ…œ ๋Œ€์‹  0.0๊ณผ 1.0์„ ํฌํ•จํ•˜๋Š” ๋ฌดํ•œ ๊ณต๊ฐ„์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

1963๋…„ ๋กœํŠธํ”ผ ์ž๋ฐ(Lofti Zadeh) ๋ฐ•์‚ฌ๊ฐ€ ์ œ์•ˆํ•œ ๋ฐ”๋ฅผ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ํผ์ง€ ๋…ผ๋ฆฌ์™€ ๊ทธ ํ‘œํ˜„์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿซง __

@ ์•ˆ๋ ๊ณผํ•™ - ํผ์ง€์ด๋ก 

@ ์„ ์ˆ˜, ์ด์‚ฐ์ˆ˜ํ•™ Boolead Logic - ์ง‘ํ•ฉ
์ง‘ํ•ฉ์€ ๋ชจ์ž„, ๋‹จ ์†ํ•˜๋Š”๊ฐ€ ์†ํ•˜์ง€ ์•Š๋Š”๊ฐ€๊ฐ€ ๋ช…ํ™•ํ•œ

@ Rules Based System
if, ๋ช…์ œ ๊ฐ™์ด ๋ช…ํ™•ํ•œ ๋…ผ๋ฆฌ

์ด์™€ ๋ฐ˜๋Œ€๋˜๋Š” ์• ๋งค๋ชจํ˜ธํ•œ ์ •๋ณด๋“ค

์• ๋งค๋ชจํ˜ธํ•œ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ 
์ปดํ“จํ„ฐ๋Š” ์• ๋งค๋ชจํ˜ธํ•œ ์ •๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์œผ๋‹ˆ๊นŒ

์•„๋ฌด๊ฑฐ๋‚˜/์ ๋‹นํ•จ/์ •๋„/์•Œ์ž˜๋”ฑ์„ ์ˆ˜ํ•™์ ์œผ๋กœ ์•Œ์ž˜๋”ฑํ•˜๊ฒŒ ๋ถ„์„ํ•˜๋Š” ์ถ”๋ก  ๋ฐฉ์‹

๊ธฐ์กด ์ง‘ํ•ฉ ๊ฐœ๋…์€ ์–ด๋–ค ๊ธฐ์ค€์„ ๋‘๊ณ  ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋ฉด ์ฐธ, ์•„๋‹ˆ๋ฉด ๊ฑฐ์ง“, 0 ๋˜๋Š” 1

ํผ์ง€ ์ง€ํ•ฉ์€
์–ด๋–ค ์กฐ๊ฑด์— ๋Œ€ํ•ด ์–ด๋Š ์ •๋„๋‹ค, 0 ~ 1 ์˜ ์‹ค์ˆ˜ ์˜์—ญ์œผ๋กœ
์ด๋ฅผ ์†Œ์†ํ•จ์ˆ˜๋กœ ๊ณ„์‚ฐ

๋™๊ทธ๋ผ๋ฏธ์˜ ์ง‘ํ•ฉ,
โ€˜์–ด๋–ค ๋ชจ์–‘์ด ๋™๊ทธ๋ผ๋ฏธ๋‹ค, ์•„๋‹ˆ๋‹คโ€™ ๊ฐ€ ์•„๋‹ˆ๋ผ
โ€˜์–ด๋–ค ๋ชจ์–‘์€ 0.7 ์ •๋„ ๋™๊ทธ๋ผ๋ฏธ๋‹ค, 0.2 ์ •๋„ ๋™๊ทธ๋ผ๋ฏธ๋‹คโ€™

ํ‚ค ์ˆœ์œผ๋กœ ํ•™์ƒ์„ ์ •๋ ฌํ–ˆ์„ ๋•Œ,
โ€˜์–ด๋–ค ๊ฒฝ๊ณ„์„ ์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์€ ํ‚ค ์˜์—ญ์— ํฌํ•จ ๋˜๋Š”๊ฐ€ ์•ˆ๋˜๋Š”๊ฐ€โ€™ ๊ฐ€ ์•„๋‹ˆ๋ผ ์†Œ์† ํ•จ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘๋‹ค ์•„๋‹ˆ๋‹ค (์˜ˆ๋ฅผ ๋“ค์–ด 10๋ช…์˜ ์‹ฌ์‚ฌ์œ„์›์—๊ฒŒ ์ด ์‚ฌ๋žŒ์ด ์ž‘์€๊ฐ€ ์ž‘์ง€ ์•Š์€ ๊ฐ€๋ฅผ ๋ฌผ์–ด๋ดค์„ ๋•Œ, 7๋ช…์€ ์ž‘๋‹ค๊ณ  ํ•˜๊ณ , 3๋ช…์€ ์ž‘์ง€ ์•Š๋‹ค๊ณ  ๋งํ•˜๋ฉด, 0.7)

,

์‹ค์„ธ๊ณ„ ๋ฌธ์ œ์™€ ์ปดํ“จํ„ฐ ๊ตฌํ˜„์˜ ๋‹ค๋ฅธ ์ ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด
์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์‹ค์„ธ๊ณ„ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ปดํ“จํ„ฐ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ

์ปดํ“จํ„ฐ๋Š” ์ฐธ๊ณผ ๊ฑฐ์ง“, Binary๋กœ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌ, - Software Representations, Two-Valued System
๋ฐ˜๋ฉด ํ˜„์‹ค ์„ธ๊ณ„๋Š” ์ฐธ๊ณผ ๊ฑฐ์ง“๋งŒ์œผ๋กœ๋Š” ๋‚˜๋‰˜์ง€ ์•Š์Œ - Real-Wrold Systeams

๊ทธ ์ •๋„๋ฅผ Degrees of truth, 0 ~ 1 inclusive๋กœ ํ‘œํ˜„

๐Ÿ’ซ ์˜ˆ์‹œ - Fuzzy QoS


๐Ÿซง Fuzzy QoS_

ํผ์ง€ ๋…ผ๋ฆฌ์˜ ํž˜์€ ์–ธ์–ดํ•™์„ ์ด์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๋ถ„์„ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ๋งํฌ๋ฅผ ํ†ตํ•œ ํŒจํ‚ท์˜ ์ถœ๋ ฅ์„ ๊ด€๋ฆฌํ•˜๋Š” QoS(Quality of Service) ์•Œ๊ณ ๋ฆฌ๋“ฌ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. QoS ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ชฉ์ ์€ ์ฃผ์–ด์ง„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋งํฌ์˜ ๋Œ€์—ญํญ์„ ์ผ์ •ํ•˜๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋งํฌ์˜ ๋Œ€์—ญํญ์„ ๋„ˆ๋ฌด ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ์ฃผ์–ด์ง„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ํŒจํ‚ท์ด ๋ฐฉ์ถœ(Emit)๋˜๋Š” ์†๋„๋ฅผ ์ค„์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ์–ด์˜ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์šฐ๋ฆฌ๋Š” ์„ธ ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ถ€ํ„ฐ์˜ ํŒจํ‚ท ๋„๋‹ฌ ์†๋„(Packet Arrival Rate)์ด๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” ์ธก์ •๋œ ๋งํฌ์˜ ํ™œ์šฉ๋„(Utilization of the Link)์ด๋ฉฐ, ์„ธ ๋ฒˆ์งธ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋งํฌ ์‚ฌ์ด์˜ ํŒจํ‚ท ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๊ฒŒ์ดํŠธ์ž…๋‹ˆ๋‹ค

@ ์˜ˆ์‹œ - QoS with Rate Feedback

๊ฒŒ์ดํŠธ์˜ ๋ชฉ์ ์€ ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ• ๋‹น๋œ ๋Œ€์—ญํญ์„ ์ฃผ์–ด์ง„ ์‹œ์ ์—์„œ ๋ช‡ ๊ฐœ์˜ ํŒจํ‚ท์ด ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ์–ธ์–ดํ•™์ ์ธ ์ธก๋ฉด์—์„œ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ:
๋งํฌ์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ™œ์šฉ๋„๊ฐ€ ๋†’์œผ๋ฉด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒŒ์ดํŠธ๋ฅผ ํ†ตํ•œ ํŒจํ‚ท ํ๋ฆ„ ์†๋„๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ,
๋งํฌ์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ™œ์šฉ๋„๊ฐ€ ๋‚ฎ์œผ๋ฉด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒŒ์ดํŠธ๋ฅผ ํ†ตํ•œ ํŒจํ‚ท ํ๋ฆ„ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ทœ์น™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด โ€œ์ ๋‹นํžˆโ€ ๋†’์€ ์š”๊ธˆ๊ณผ ๋‚ฎ์€ ์š”๊ธˆ ์‚ฌ์ด์— ๋ฐ๋“œ์กด์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋ฌธ์ œ(Question)๋Š” ์ง€์›์œจ์— ๋Œ€ํ•ด โ€œ๋†’์Œโ€๊ณผ โ€œ๋‚ฎ์Œโ€์ด ๋ฌด์—‡์ด๊ณ  โ€œ์˜ณ์Œ์— ๋Œ€ํ•ดโ€๋Š” ๋ฌด์—‡์ธ๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํผ์ง€ ๋…ผ๋ฆฌ๋Š” ์†Œ์† ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

@ ์˜ˆ์‹œ - Membership Function for Packet Rate

๐Ÿซง Fuzzy QoS__

๋ฐฅ์†ฅ
๋ฐฅ์ด ์ฐจ๋ฉด ๋ฐ์›Œ๋ผ, ๋œจ๊ฑฐ์šฐ๋ฉด ์‹ํ˜€๋ผ

QoS์— Fuzzy๋ฅผ ์ด์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€

๋งํฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋งŽ์œผ๋ฉด ๋น„์œจ์„ ์ค„์ด๊ณ 
๋งํฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ ์œผ๋ฉด ๋น„์œจ์„ ๋Š˜๋ ค๋ผ

๊ฐ™์€ ๋ฌธ์ œ์—์„œ ์•Œ์•„์„œ ์กฐ์ •ํ•˜๋Š”
๋งŽ์œผ๋ฉด, ์ ์œผ๋ฉด, ์ค„์ด๊ณ , ๋Š˜๋ฆฌ๊ณ ์˜ ์–‘, ๊ธฐ์ค€, ์ •๋„ - Membership Functions ์†Œ์†ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ

๐Ÿ’ซ Membership Function - ์†Œ์† ํ•จ์ˆ˜


์†Œ์† ํ•จ์ˆ˜๋Š” ์†Œ์† ํ•จ์ˆ˜์—์„œ ์ฃผ์–ด์ง„ ์‹ค์„ธ๊ณ„ ๊ฐ€์น˜์˜ ์†Œ์† ์ •๋„(Degree of Membership, Degree of Truth)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. QoS ์˜ˆ์—์„œ ๋งํฌ ํ™œ์šฉ ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@ ์˜ˆ์‹œ - QoS with Rate Feedback

m_low(x) =
{
	0,						if rate(x) >= 100
	(100-rate(x))/20		if rate(x) > 80 AND rate(x) < 100
	1,						if rate(x) <= 80
}

@ ์˜ˆ์‹œ - Membership Function for Packet Rate

m_low(x) =
{
	0,						if rate(x) <= 100
	(100-rate(x))/20		if rate(x) > 100 AND rate(x) < 120
	1,						if rate(x) >= 120
}

๐Ÿ’ซ Fuzzy Control


์†Œ์† ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ํ‘œ 9.1์€ ๋‘ ๊ธฐ๋Šฅ ๋‚ด ์†Œ์† ์ •๋„์™€ ํ•จ๊ป˜ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ํŒจํ‚ท ์†๋„๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

Packet Ratem_low(x)m_high(x)
101.00.0
850.750.0
900.50.0
950.250.0
1000.00.0
1050.00.25
1100.00.5
1150.00.75
1800.01.0

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ด ๋‘ ๊ฐ€์ง€ ์†Œ์† ํ•จ์ˆ˜๋ฅผ ์ฃผ์–ด์ง„ ์†๋„์˜ ํŒจํ‚ท ํ๋ฆ„์— ๋Œ€ํ•œ ์†Œ์† ์ •๋„๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ผ๊ด€๋œ ์„œ๋น„์Šค ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ‚ท ํ๋ฆ„์„ ์กฐ์ •ํ•˜๋Š” ์ œ์–ด ์ „๋žต์˜ ๊ด€์ ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๋งค์šฐ ๊ฐ„๋‹จํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์†Œ์† ์ •๋„๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ๊ฒŒ์ดํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๊ณ„์ˆ˜์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒŒ์ดํŒ… ๊ธฐ๋Šฅ์€ ์ฃผ์–ด์ง„ ๊ฐ„๊ฒฉ(์˜ˆ๋ฅผ ๋“ค์–ด 1์ดˆ) ๋™์•ˆ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํŒจํ‚ท์ด ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋งค์ดˆ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ผ๊ด€๋œ ํ™œ์šฉ๋„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ†ต๊ณผ๊ฐ€ ํ—ˆ์šฉ๋˜๋Š” ํŒจํ‚ท์˜ ์ˆ˜๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ํ™œ์šฉ๋„๊ฐ€ ๋„ˆ๋ฌด ๋†’์œผ๋ฉด ํŒจํ‚ท์˜ ์ˆ˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, ํ™œ์šฉ๋„๊ฐ€ ๋„ˆ๋ฌด ๋‚ฎ์œผ๋ฉด ๊ทธ์— ๋”ฐ๋ผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š”, ์–ผ๋งˆ๋‚˜ ์ฆ๊ฐ€์‹œํ‚ฌ ๊ฒƒ์ธ๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค?

๊ฐ„๋‹จํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํŒจํ‚ท ๋ธํƒ€์— ์ ์šฉ๋˜๋Š” ๊ณ„์ˆ˜๋กœ ์šฐ๋ฆฌ์˜ ๋ฉค๋ฒ„์‹ญ ์ •๋„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
rate = rate + (m_low(rate) x pdelta) - (m_high(rate) x pdelta)
์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ pDelta ์กฐ์ ˆ/Tuningํ•  ๊ฐ’

๋ณ€์ˆ˜ โ€˜rateโ€™๋Š” ์ฃผ์–ด์ง„ ์‹œ๊ฐ„(1์ดˆ) ๋™์•ˆ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ท์˜ ํ˜„์žฌ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ƒ์ˆ˜ โ€˜pdeltaโ€™๋Š” ๋ ˆ์ดํŠธ์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋บ„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํŒจํ‚ท ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฉค๋ฒ„์‰ฝ ํ•จ์ˆ˜๋Š” ๋ ˆ์ดํŠธ ์กฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๊ณ„์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฉค๋ฒ„์‰ฝ์˜ ์ •๋„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

10์˜ โ€˜pdeltaโ€™๋ฅผ ์‚ฌ์šฉํ•œ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋ณด์ž. ์šฐ๋ฆฌ์˜ ๋น„์œจ์€ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ฒ ์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ๋™์กฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๋ฐ˜์˜ฌ๋ฆผ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Given a rate of 110,
rate = 110 + (0 x 10) - (0.5 x 10) = 105

On the Next Iteration, Given a rate of 110,
rate = 105 + (0 x 10) - (0.25 x 10) = 102.5

์ด ๊ณผ์ •์€ ๋” ์ด์ƒ์˜ ์†๋„ ๋ณ€๊ฒฝ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š” 100์˜ ๋ฐ๋“œ ๋ฐด๋“œ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค.

Given a rate of 80,
rate = 80 + (1 x 10) - (0 x 10) = 90

๋”ฐ๋ผ์„œ ๊ฐ€์ž… ์ •๋„๋ฅผ ๋น„์œจ ๋ณ€ํ™”์˜ ๊ณ„์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ œ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’ซ A Visual Fuzzy Control Example


์ด์ œ ์ถ”์  ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ด์šฉํ•œ ํผ์ง€ ์ œ์–ด์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ 2์ฐจ์› ์„ธ๊ณ„์—์„œ๋Š” ํฌ์‹์ž ์—ญํ• ์„ ํ•˜๋Š” ์—์ด์ „ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ๊ณ„์˜ ๋˜ ๋‹ค๋ฅธ ์—์ด์ „ํŠธ๋Š” ๋จน์ž‡๊ฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ํฌ์‹์ž๊ฐ€ ๋จน์ด๋ฅผ ์ถ”์ ํ•˜์—ฌ ๊ถ๊ทน์ ์œผ๋กœ ์žก์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜ ์„ธํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜๋Š” ์˜ค์ฐจ ๊ฐ๋„๋ฅผ ์ œ์–ด์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค (์‹์ž์˜ ํ˜„์žฌ ๋ฐฉํ–ฅ๊ณผ ๋จน์ด์˜ ๋ฐฉํ–ฅ ์‚ฌ์ด์˜ ์ฐจ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค).

๊ทธ๋ฆผ 9.3์€ ํฌ์‹์ž ๋ฉค๋ฒ„์‰ฝ ํ•จ์ˆ˜์˜ ๋„ํ‘œ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์–ผ๋งˆ๋‚˜ ์กด์žฌํ•˜๋Š”์ง€, ๋”ฐ๋ผ์„œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ˆ˜์ •์„ ์ ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์‹๋ณ„ํ•˜๋Š” 7๊ฐœ์˜ ๋ณ„๊ฐœ์˜ ๊ทธ๋ฃน์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

@ ์˜ˆ์‹œ

์ค‘์‹ฌ ๊ทธ๋ฃน์€ ํฌ์‹์ž์˜ ํ˜„์žฌ ๋ฐฉํ–ฅ์— ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ์œ ์ผํ•œ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค. ์ขŒ, ์šฐ๋Š” ๊ฐ๊ฐ [+1, -1]์ด๊ณ , ๊ทน์ขŒ์™€ ๊ทน์šฐ๋Š” [+8, -8]์ด๋ฉฐ, ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ทน์ขŒ์™€ ๊ทน์šฐ๋Š” [+15, -15]๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํฌ์‹์ž์˜ ์˜ค์ฐจ๊ฐ์ด ํŠน์ • ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜์— ํ•ด๋‹น๋˜๋ฉด ํ•ด๋‹น ๋ณด์ •์„ ํฌ์‹์ž์˜ ๋ฐฉํ–ฅ์œผ๋กœ ์ ์šฉํ•˜๊ณ  ๋‹ค์‹œ ๊ณผ์ •์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„์—์„œ ํฌ์‹์ž๋Š” ๋ณด์ •ํ•  ๋•Œ๋งˆ๋‹ค ํ•œ ๋‹จ์œ„์”ฉ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 9.3์˜ ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ํ™œ๋™ ์ค‘์ธ ํฌ์‹์ž์˜ ํ”Œ๋กฏ์€ ๊ทธ๋ฆผ 9.4์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@ ์˜ˆ์‹œ

ํฌ์‹์ž๋Š” ๋จน์ด๊ฐ€ ์ž„์˜์˜ ์œ„์น˜์—์„œ ์‹œ์ž‘ํ•˜๋Š” ์ขŒํ‘œ [100,100]์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ ๋Œ€๋žต [84,30]). ๋จน์ด๋Š” ๋‹จ์ˆœํžˆ ์ฒ˜์Œ ์œ„์น˜์—์„œ 45ยฐ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ํฌ์‹์ž๋Š” ๋จน์ด๋ฅผ ๊ฐ€๋กœ์ฑ„๊ธฐ ์œ„ํ•ด ๊ฒฝ๋กœ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค(๋จน์ด์˜ 5๋‹จ์œ„ ์ด๋‚ด๋กœ ์˜ต๋‹ˆ๋‹ค).

๐Ÿ’ซ The Fuzzy Axioms


@ U ๊ธฐ๋ง๊ณ ์‚ฌ ์ถœ์ œ : ์ฃผ์–ด์ง„ Fuzzy Voltage Membership Funcions, Fuzzy Temperature Membership Funtions์— ๋Œ€ํ•˜์—ฌ, if (m_valtage_high(์ฃผ์–ด์ง„_Valtage)) OR (not m_temperature_hot(์ฃผ์–ด์ง„_Temperature))) ์— ๋Œ€ํ•œ ์กฐ๊ฑด๋ถ€ ๊ฐ’์„ ๊ตฌํ•˜์‹œ์˜ค.

๊ธฐ์กด์˜ Boolean ๋…ผ๋ฆฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํผ์ง€ ๋…ผ๋ฆฌ์—๋„ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ๊ธฐ์กด์˜ Boolean ์—ฐ์‚ฐ์ž๋“ค์„ ๋”ฐ๋ฅด์ง€๋งŒ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํผ์ง€ ๊ณต๋ฆฌ๋Š” ๊ทธ๋ฆผ 9.5์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

Truth (A OR B)MAX (truth(A), truth(B))
Truth (A AND B)MIN (truth(A), truth(B))
Truth (NOT A)1 - truth(A)

์ด ์—ฐ์‚ฐ์ž๋“ค์€ ๊ทผ์‚ฌ ํผ์ง€ ๊ฐ’๋“ค์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์˜ ๊ธฐ์ดˆ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ–‰ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

if (m_warm(board_temperature) AND
m_high(fan_speed)) then โ€ฆ

์ด ์–‘์‹์€ ๋งค์šฐ ํŒ๋… ๊ฐ€๋Šฅํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ๋” ์ž˜ ํŒŒ์•…ํ•˜๊ณ  ๋” ๋‚˜์€ ์ œ์–ด๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ซ Hedge Functions


ํผ์ง€ ์‹œ์Šคํ…œ์˜ ์ค‘์š”ํ•œ ์ˆ˜์‹์–ด๋Š” ํ—ค์ง€ ๋˜๋Š” ํผ์ง€ ๋ฉค๋ฒ„์‹ญ์˜ ์ˆ˜์‹์–ด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ˆ˜์‹์–ด๋Š” ํผ์ง€ ๋…ผ๋ฆฌ์™€ ์ˆ˜ํ•™์  ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€์ ์ธ ์–ธ์–ด์  ๊ตฌ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Very์™€ NOT_VERY์˜ ํ—ค์ง€ ํ•จ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ํ—ค์ง€ ํ•จ์ˆ˜๋Š” ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ ์ •์˜๋œ ์–ธ์–ด์  ๋ชฉ์ ์— ๋”ฐ๋ผ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ํ—ค์ง€ ํ•จ์ˆ˜๋Š” ์•„๋ž˜์˜ ์ˆ˜ํ•™์‹ 9.4์™€ ์ˆ˜ํ•™์‹ 9.5๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

VERY(m_x) = m_(x^2)
NOT_VERY(m_x) = m_(X^0.5)

์˜ˆ๋ฅผ ๋“ค์–ด, ๊ทธ๋ฆผ 9.2์— ์ •์˜๋œ m_high ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด๋ณด์„ธ์š”. ํŒจํ‚ท ๋น„์œจ์ด 115์ผ ๋•Œ, m_high๋Š” 0.75๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜์— VERY(m_high(rate)) ํ—ค์ง€ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•œ๋‹ค๋ฉด, ๊ฒฐ๊ณผ ๊ฐ’์€ 0.5625๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋น„์œจ์ด 119์˜€๋‹ค๋ฉด, m_high๋Š” 0.95๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— VERY ํ—ค์ง€ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๋ฉด 0.903(๋˜๋Š” ๋งค์šฐ ๋†’์Œ)์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ’ซ Why Use Fuzzy Logic?


ํผ์ง€ ๋…ผ๋ฆฌ๋Š” ์ •ํ™•ํ•œ ๊ฐ’์ด ์•„๋‹Œ ๊ทผ์‚ฌ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์—์„œ ์ค‘์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ธ๊ฐ„์˜ ์ถ”๋ก  ์ž์ฒด๊ฐ€ ๊ทผ์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํผ์ง€ ๋…ผ๋ฆฌ๋ฅผ ์‹œ์Šคํ…œ ์„ค๊ณ„์— ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ซ Sample Application


ํผ์ง€ ๋…ผ๋ฆฌ ๊ธฐ๋Šฅ์„ ์ž…์ฆํ•˜๊ธฐ ์œ„ํ•ด ๋งค์šฐ ๊ฐ„๋‹จํ•œ ๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „๊ธฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋ฌผ๋ฆฌ์  ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค).

์šฐ๋ฆฌ์˜ ์‹ ํ™”์— ๋‚˜์˜ค๋Š” ๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „๊ธฐ๋Š” ๋•Œ๋•Œ๋กœ ์ถฉ์ „ ์ „์••์ด ์กด์žฌํ•˜๊ณ  (์˜ˆ๋ฅผ ๋“ค์–ด, ํƒœ์–‘ ์ „์ง€์˜ ์ง‘ํ•ฉ์—์„œ) ๋ถ€ํ•˜๊ฐ€ ์กด์žฌํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํƒœ์–‘ ์ „์ง€ํŒ์˜ ์ „์••์€ ๋ถ€ํ•˜๊ฐ€ ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ์ž‘๋™ ํšŒ๋กœ๋กœ ๋ฐฉ์ „์‹œํ‚ค๋Š” ๋™์•ˆ ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ์ถฉ์ „ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์ถฉ์ „๊ธฐ๋Š” ์„ธ๋ฅ˜ ์ถฉ์ „ ๋ชจ๋“œ์™€ ๊ธ‰์† ์ถฉ์ „ ๋ชจ๋“œ์˜ ๋‘ ๊ฐ€์ง€ ์ž‘๋™ ๋ชจ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์„ธ๋ฅ˜ ์ถฉ์ „ ๋ชจ๋“œ์—์„œ๋Š” ๋งค์šฐ ์ ์€ ์–‘์˜ ์ถฉ์ „์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์†Œ๋Ÿ‰์˜ ์ „๋ฅ˜๋งŒ ๋ฐฐํ„ฐ๋ฆฌ๋กœ ์ „๋‹ฌ๋˜๋„๋ก ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธ‰์† ์ถฉ์ „ ๋ชจ๋“œ์—์„œ๋Š” ์˜จ๋ณด๋“œ ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ „๋ฅ˜๊ฐ€ ์ถฉ์ „๊ธฐ์— ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ œ์–ด ์‹œ์Šคํ…œ์˜ ๊ด€์ ์—์„œ ํ•„์š”ํ•œ ๊ฒƒ์€ ๊ธ‰์† ์ถฉ์ „ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•  ๋•Œ์™€ ์„ธ๋ฅ˜ ์ถฉ์ „ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•  ๋•Œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ์ถฉ์ „๋˜๋ฉด ๋ฐฐํ„ฐ๋ฆฌ์˜ ์˜จ๋„๊ฐ€ ์˜ฌ๋ผ๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ์ถฉ์ „๋˜๋ฉด ๋ฐฐํ„ฐ๋ฆฌ์— ๋„๋‹ฌํ•˜๋Š” ์ถ”๊ฐ€ ์ „๋ฅ˜๊ฐ€ ์—ด๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋œจ๊ฑฐ์›Œ์ง€๋ฉด ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ์ถฉ์ „๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ณ  ์„ธ๋ฅ˜ ์ถฉ์ „ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ์•„๋งˆ๋„ ์ข‹์€ ํ‘œ์‹œ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐฐํ„ฐ๋ฆฌ์˜ ์ „์••์„ ์ธก์ •ํ•˜์—ฌ ํ•œ๊ณ„์— ๋„๋‹ฌํ–ˆ๋Š”์ง€ ํ™•์ธํ•œ ๋‹ค์Œ ์„ธ๋ฅ˜ ์ถฉ์ „ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋œจ๊ฒ์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฐฐํ„ฐ๋ฆฌ์˜ ์ „์•• ํ•œ๊ณ„์— ๋„๋‹ฌํ•˜์ง€ ์•Š์•˜์œผ๋ฉด ๊ธ‰์† ์ถฉ์ „ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ ์˜จ๋„์˜ ๋„ํ•จ์ˆ˜๊ฐ€ ๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „์˜ ๋” ๋‚˜์€ ํ‘œ์‹œ์ด๋ฏ€๋กœ ์ด๊ฒƒ์€ ๋‹จ์ˆœํ™”๋œ ๊ทœ์น™์ž…๋‹ˆ๋‹ค.

๐Ÿซง Fuzzy Battery Charge Control

์ •์˜๋œ ๋ฐ”์™€ ๊ฐ™์ด ๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „๊ธฐ์—๋Š” ์„ธ๋ฅ˜ ๋ฐ ๊ธ‰์† ์ถฉ์ „ ๋ชจ๋“œ์˜ ๋‘ ๊ฐ€์ง€ ์ž‘๋™ ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด ์ „์•• ๋ฐ ์˜จ๋„์˜ ๋‘ ๊ฐ€์ง€ ์„ผ์„œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ ํผ์ง€ ๊ทœ์น™์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค:

if m_voltage_high( voltage )
then mode = trickle_charge
if m_temperature_hot( temperature )
then mode = trickle_charge
if ( ( not(m_voltage_high( voltage ))) AND ( not(m_temperature_hot( temperature ))) )
then mode = fast_charge

๋งˆ์ง€๋ง‰ ๊ทœ์น™์€ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด ๊ทœ์น™๋“ค์€ ์ฐจ์„ ์ฑ…์ž„์„ ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํผ์ง€ ์—ฐ์‚ฐ์ž๋ฅผ ๋” ๋งŽ์ด ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด ์„ธ ๊ฐ€์ง€ ๊ทœ์น™์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํผ์ง€ ๊ทœ์น™๋“ค์„ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์€ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋“ค ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ์Šคํ…œ ์—ฐ์‚ฐ์ž๋“ค๋กœ๋ถ€ํ„ฐ ํ˜น์€ ๋ฌธ์ œ์˜ ๋ถ„์„์„ ํ†ตํ•ด์„œ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์–ดํ•™์ด ์‹ค์ œ ์„ธ๊ณ„์— ์–ด๋–ป๊ฒŒ ๋งคํ•‘๋˜๋Š”์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

๐Ÿซง Fuzzy Charge Membership Functions

๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜๋Š” ํผ์ง€ ์–ธ์–ด ์ด๋ฆ„์„ ๊ฐ€์ ธ๋‹ค๊ฐ€ ํŠน์ • ๋„๋ฉ”์ธ์˜ ์‹ค์ œ ์„ธ๊ณ„ ๊ฐ’๊ณผ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” ์ „์••๊ณผ ์˜จ๋„ ๋‘ ๊ฐ€์ง€ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ „์••๊ณผ ์˜จ๋„ ๋ฉค๋ฒ„์‹ญ ๊ทธ๋ž˜ํ”„(์‹ค์ œ ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ)๋Š” ๊ทธ๋ฆผ 9.6๊ณผ 9.7์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

@ ์˜ˆ์‹œ - Fuzzy voltage membership graph
@ ์˜ˆ์‹œ - Fuzzy temperature membership graph

์ „์•• ๋ฉค๋ฒ„์‹ญ ๊ทธ๋ž˜ํ”„๋Š” ์ „์•• ๋„๋ฉ”์ธ ๋‚ด์—์„œ ๋‚ฎ์€, ์ค‘๊ฐ„, ๋†’์€ ์„ธ ๊ฐ€์ง€ ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜จ๋„ ๋„๋ฉ”์ธ๋„ ์ฐจ๊ฐ€์šด, ๋”ฐ๋œปํ•œ, ๋œจ๊ฑฐ์šด ์„ธ ๊ฐ€์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์œ„์ ์ธ ๊ฐ’์€ ๋‹จ์ง€ ์‹œ์—ฐ์šฉ์ผ ๋ฟ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐฐํ„ฐ๋ฆฌ ๊ธฐ์ˆ ๋„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

NOTE : ๋ฉค๋ฒ„์‰ฝ ๊ธฐ๋Šฅ์—์„œ ํŒจํ„ด์„ ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ์†Œ์Šค์—๋Š” ์ด๋Ÿฌํ•œ ๋ฉค๋ฒ„์‰ฝ ๋ชจ์–‘์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ ๋„์šฐ๋ฏธ ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค(์ด๋“ค ๊ทธ๋ž˜ํ”„์—๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š์€ ์ŠคํŒŒ์ดํฌ ํŒจํ„ด ํฌํ•จ).

@ ์˜ˆ์‹œ - Charge curves for the battery charge control simulation.

์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ ์‹ค์ œ ๋ฌผ๋ฆฌ์  ๋ฐฐํ„ฐ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์ง€๋งŒ ์ „์•• ๋ฐ ์˜จ๋„ ์ œ์•ฝ ์กฐ๊ฑด์„ ๊ณ ๋ คํ•  ๋•Œ ๋กœ๋”ฉ ๋ฐ ์ถฉ์ „์˜ ๊ธฐ๋ณธ ๊ฐœ๋… ์ค‘ ์ผ๋ถ€๋ฅผ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ซ ์žฅ์ 


ํผ์ง€ ๋…ผ๋ฆฌ๋ฅผ ์‹œ์Šคํ…œ ์„ค๊ณ„์— ํ™œ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํผ์ง€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ๊ธฐ์กด์˜ ๋ถ€์šธ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ์Šคํ…œ ์—ฐ์‚ฐ์ž๋Š” ์—ฐ์‚ฐ ์ง€์‹์„ ์–ธ์–ดํ•™์ ์œผ๋กœ ์šฐ๋ฆฌ ๊ณ ์œ  ์–ธ์–ด๋กœ ๋ชจ๋ธ๋ง๋œ ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜์™€ ํผ์ง€ ๋…ผ๋ฆฌ ๊ทœ์น™์˜ ์˜์—ญ์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž์˜ ๊ฒฝ์šฐ ํผ์ง€ ๋กœ์ง์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฐ๊ณผ ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ์„ ํ›จ์”ฌ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ์„ ๊ฐ–๋Š” ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํผ์ง€ ๋กœ์ง์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ชจ๋ธ๋ง ๋ฐ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ํฅ๋ฏธ๋กœ์šด ์ด์ ์€ ํผ์ง€ ๋กœ์ง์ด ์‹œ์Šคํ…œ์˜ ์ฒ˜๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฐ์†Œ์‹œ์ผœ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ž„๋ฒ ๋””๋“œ ์ œ์–ด ํ•˜๋“œ์›จ์–ด์˜ ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ๊ฒฝ์šฐ ๋ณต์žกํ•œ ์ˆ˜ํ•™์  ๋ชจ๋ธ๋ง์„ ๋ฉค๋ฒ„์‹ญ ํ•จ์ˆ˜์™€ set of fuzzy rules๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ˆ˜ํ•™์  ์ œ์•ฝ์„ ์ตœ์†Œํ™”ํ•˜๋ฉด ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹œ์Šคํ…œ์ด ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ less advenced ํ•˜๋“œ์›จ์–ด์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ซ ์˜ˆ์‹œ - ๊ทธ ์™ธ


ํผ์ง€ ๋กœ์ง์€ ๋งค์šฐ ๋‹ค์–‘ํ•œ ์‘์šฉ ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜์–ด ์™”์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋ˆˆ์— ๋„๋Š” ์šฉ๋„๋Š” ํผ์ง€ ์‹œ์Šคํ…œ์ด ์ƒ์—…์ ์œผ๋กœ ์„ฑ๊ณตํ•œ ์ œ์–ด ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ํผ์ง€ ๋กœ์ง์€ ๋˜ํ•œ ์…€ํ”„ ํฌ์ปค์‹ฑ ์นด๋ฉ”๋ผ, ์‹œ๋ฉ˜ํŠธ ํ˜ผํ•ฉ ์‹œ์Šคํ…œ, ์ž ๊ธˆ ํ•ด์ œ ๋ฐฉ์ง€ ์‹œ์Šคํ…œ์„ ํฌํ•จํ•œ ์ฐจ๋Ÿ‰ ์ œ์–ด ๋ฐ ๊ทœ์น™ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—๋„ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๊ฐ€์žฅ ์„ฑ๊ณต์ ์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์•Œ๋ ค์ง€์ง€ ์•Š์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํผ์ง€ ๋…ผ๋ฆฌ๋ผ๋Š” ์ด๋ฆ„ ์ž์ฒด๋Š” ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฑด์ „ํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์‹ ๋ขฐ๊ฐ์„ ์ด‰์ง„ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋งŽ์€ AI ๋ฐฉ๋ฒ•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์–ธ์  ๊ฐ€ ํผ์ง€ ๋…ผ๋ฆฌ๊ฐ€ AI์™€ ์—ฐ๊ด€๋˜์ง€ ์•Š๊ณ  ๊ฐ€์‹œ์ ์ธ ํ‘œ์ค€ ๊ธฐ์ˆ  ์†”๋ฃจ์…˜์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์‹ค์šฉ์ ์ธ ์˜์—ญ์œผ๋กœ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๋” ๋Š๋ฆฝ๋‹ˆ๋‹ค.

๐Ÿ’ซ ์š”์•ฝ


ํผ์ง€ ๋…ผ๋ฆฌ์™€ ํผ์ง€ ์ œ์–ด์— ๋Œ€ํ•ด ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํผ์ง€ ์—ฐ์‚ฐ์ž๋Š” ์„ธ ๊ฐ€์ง€ ๋งค์šฐ ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(ํŒจํ‚ท ํ๋ฆ„, ๋ชฉํ‘œ ์ถ”์  ๋ฐ ์ „ํ•˜ ์ œ์–ด)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Hedge ํ•จ์ˆ˜๋Š” ๋˜ํ•œ ๊ธฐ์กด ํผ์ง€ ์†Œ์† ํ•จ์ˆ˜์˜ ์–ธ์–ด์  ์ˆ˜์‹์–ด๋กœ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์†Œ์† ํ•จ์ˆ˜์™€ ์ œ์–ด ์š”์†Œ๊ฐ€ fuzzy sementics๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „ ์ œ์–ด์˜ ์ƒ˜ํ”Œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ž์„ธํžˆ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ ์ฝ”๋“œ๋Š” set of ์ผ๋ฐ˜ ํผ์ง€ ๋…ผ๋ฆฌ API๋ฅผ ํฌํ•จํ•˜์—ฌ ์ด ๊ฐœ๋…์„ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„์˜ ๋‹จ์ˆœํ™” ๋ฐ ๋น„์šฉ ์ ˆ๊ฐ์„ ํฌํ•จํ•˜์—ฌ ํผ์ง€ ๋…ผ๋ฆฌ์˜ ์žฅ์  ์ค‘ ์ผ๋ถ€์— ๋Œ€ํ•ด ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.