โœจ ๋Œ์—ฐ๋ณ€์ด(Mutation) ์—ฐ์‚ฐ์ด๋ž€ ?

  • ์ž์‹ํ•ด์— ๋ฌด์ž‘์œ„ ๋ณ€ํ™”๋ฅผ ๊ฐ€ํ•˜๋Š” ๊ณผ์ •
  • ํƒ์ƒ‰ ๊ณต๊ฐ„์˜ ๋‹ค์–‘์„ฑ์„ ํ™•๋ณดํ•˜๊ณ  ์ง€์—ญ ์ตœ์ ํ•ด ํƒˆ์ถœ์„ ์œ ๋„

โœจ ๋Œ์—ฐ๋ณ€์ด ์—ฐ์‚ฐ์˜ ํŠน์ง•

  • ๋‚ฎ์€ ํ™•๋ฅ ๋กœ ๋ฌด์ž‘์œ„ ๋ณ€ํ™” ๋ฐœ์ƒ

    โ–ธ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์€ ํ™•๋ฅ (์˜ˆ: 0.001 ~ 0.01)๋กœ ์œ ์ „์ž ๋ณ€ํ™”
    โ–ธ ๋ณ€ํ™”๋Š” ๋น„์„ ํƒ์ ์ด๊ณ  ์˜ˆ์ธก ๋ถˆ๊ฐ€ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ ์šฉ๋จ

  • ํƒ์ƒ‰ ๊ณต๊ฐ„์˜ ๋‹ค์–‘์„ฑ ํ™•๋ณด์— ๊ธฐ์—ฌ

    โ–ธ ๊ต์ฐจ๋กœ ์ƒ์„ฑ๋œ ์ž์‹ํ•ด์— ๋ณ€ํ™”๋ฅผ ์ฃผ์–ด ์ƒˆ๋กœ์šด ํ•ด ํƒ์ƒ‰
    โ–ธ ๊ธฐ์กด์— ์กด์žฌํ•˜์ง€ ์•Š๋˜ ํ•ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด ์ „์—ญ ์ตœ์ ํ•ด ํƒ์ƒ‰ ๊ฐ€๋Šฅ์„ฑ ์ฆ๊ฐ€
    โ–ธ ์ผ์ • ์ˆ˜์ค€์˜ ๋Œ์—ฐ๋ณ€์ด๋Š” ์กฐ๊ธฐ ์ˆ˜๋ ด ๋ฐฉ์ง€์— ํšจ๊ณผ์ 

  • ๊ณผ๋„ํ•œ ๋Œ์—ฐ๋ณ€์ด์˜ ํ•œ๊ณ„

    โ–ธ ๋Œ์—ฐ๋ณ€์ด ํ™•๋ฅ ์ด ๋„ˆ๋ฌด ๋†’์œผ๋ฉด, ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ฌด์ž‘์œ„ ํƒ์ƒ‰์— ๊ฐ€๊นŒ์›Œ์ ธ ์ˆ˜๋ ด ์†๋„ ์ €ํ•˜
    โ–ธ ๋ฐ˜๋Œ€๋กœ ๋„ˆ๋ฌด ๋‚ฎ์œผ๋ฉด, ๋‹ค์–‘์„ฑ ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๊ตญ์†Œ ์ตœ์ ํ•ด์— ๋จธ๋ฌด๋ฅผ ์œ„ํ—˜ ์กด์žฌ


์ค‘์š”

  • ๋Œ์—ฐ๋ณ€์ด ์—ฐ์‚ฐ์€ ๋‹ค์–‘์„ฑ ์œ ์ง€์™€ ์ „์—ญ ํƒ์ƒ‰ ๋Šฅ๋ ฅ ํ™•๋ณด์— ํ•„์ˆ˜
  • ๋”ฐ๋ผ์„œ ์ ์ ˆํ•œ ๋Œ์—ฐ๋ณ€์ด ํ™•๋ฅ  ์„ค์ •๊ณผ ๋ฌธ์ œ ํŠน์„ฑ์— ๋งž๋Š” ๋ณ€์ด ๋ฐฉ์‹ ์„ ํƒ์ด ์ค‘์š”ํ•จ

โœจ ์œ ์ „์ž ํ‘œํ˜„ ๋ฐฉ์‹์— ๋”ฐ๋ฅธ ๋ณ€์ด ์—ฐ์‚ฐ ์„ค๊ณ„

  • ์ด์‚ฐ(discrete) ํ‘œํ˜„ vs ์—ฐ์†(continuous) ํ‘œํ˜„

    โ–ธ ์ด์‚ฐ ํ‘œํ˜„ : ์œ ์ „์ž๋Š” ๋ณดํ†ต ์ด์ง„์ˆ˜(0,1) ๋˜๋Š” ์ •์ˆ˜ํ˜• ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋จ
    โ–ธ ์—ฐ์† ํ‘œํ˜„ : ์œ ์ „์ž๋Š” ์‹ค์ˆ˜ํ˜• ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์—ฐ์†์ ์ธ ๊ฐ’ ์กฐ์ • ๊ฐ€๋Šฅ

  • ํ‘œํ˜„ ๋ฐฉ์‹์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ๋ณ€์ด ์—ฐ์‚ฐ์ด ๋‹ฌ๋ผ์ง

    โ–ธ ์ด์‚ฐ ํ‘œํ˜„ ์˜ˆ์‹œ

    • Bit flip mutation : ์ด์ง„ ์œ ์ „์ž๋ฅผ 0 โ†” 1๋กœ ๋ฐ˜์ „ ([1, 0, 1] โ†’ [1, 1, 1])
    • Exchange mutation : ๋‘ ์œ ์ „์ž ์œ„์น˜๋ฅผ ๊ตํ™˜ ([A, B, C] โ†’ [C, B, A])
    • Shift mutation : ์œ ์ „์ž๋ฅผ ํ•œ ์นธ์”ฉ ์ด๋™ ([A, B, C, D] โ†’ [D, A, B, C])
    • Inversion mutation : ์ผ๋ถ€ ๊ตฌ๊ฐ„์„ ๋’ค์ง‘์Œ ([1, 2, 3, 4] โ†’ [1, 4, 3, 2])
    • Shuffle mutation : ์œ ์ „์ž์˜ ํŠน์ • ๊ตฌ๊ฐ„์„ ๋ฌด์ž‘์œ„๋กœ ์„ž์Œ

    โ–ธ ์—ฐ์† ํ‘œํ˜„ ์˜ˆ์‹œ

    • Random deviation mutation : ์œ ์ „์ž์— ์ •๊ทœ๋ถ„ํฌ ๊ธฐ๋ฐ˜ ๋ฌด์ž‘์œ„ ์ˆ˜์น˜๋ฅผ ๋”ํ•จ (x = 3.2 โ†’ x = 3.2 + N(0, 1))
    • Fitness-driven mutation : ํ˜„์žฌ ์ ํ•ฉ๋„์— ๋”ฐ๋ผ ๋ณ€์ด ๊ฐ•๋„๋ฅผ ์กฐ์ ˆํ•ด ์‹ค์ˆ˜ ๊ฐ’์„ ์กฐ์ •
  • ๊ฐ ํ‘œํ˜„ ๋ฐฉ์‹๊ณผ ๋ณ€์ด ๋ฐฉ์‹์˜ ์—ฐ๊ฒฐ

    โ–ธ ์ด์‚ฐ ํ‘œํ˜„์€ ์ˆœ์„œ, ์กฐํ•ฉ, ๊ตฌ์กฐ ๋ณ€๊ฒฝ์— ์ดˆ์  - TSP(์™ธํŒ์› ๋ฌธ์ œ), ์ž‘์—… ์ˆœ์„œ ์ตœ์ ํ™” ๋ฌธ์ œ ๋“ฑ
    โ–ธ ์—ฐ์† ํ‘œํ˜„์€ ์ˆ˜์น˜ ์กฐ์ ˆ, ์ •๋ฐ€ ํƒ์ƒ‰์— ๊ฐ•์ ์„ ๊ฐ€์ง - ํ•จ์ˆ˜ ์ตœ์ ํ™”, ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹ ๋“ฑ
    โ–ธ ๋ณ€์ด ์—ฐ์‚ฐ ์„ ํƒ์€ ๋ฌธ์ œ ์œ ํ˜•(์กฐํ•ฉ/์ˆ˜์น˜ ์ตœ์ ํ™”) ๊ณผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋จ


โœจ Random Deviation Mutation : ๋ฌด์ž‘์œ„ ํŽธ์ฐจ ๋ณ€์ด

image

  • ์œ ์ „์ž์— ํ‰๊ท ์ด 0์ธ ๋ฌด์ž‘์œ„ ๊ฐ’์„ ๋”ํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ•ด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์˜ ๋ณ€์ด

    ๐Ÿ’ก ์™œ ํ‰๊ท ์ด 0์ธ ๋ฌด์ž‘์œ„ ๊ฐ’์ผ๊นŒ?
    ใ…ค ๋ฐฉํ–ฅ์„ฑ์ด ์—†๋Š” โ€œ์ˆœ์ˆ˜ํ•œ ๋ฌด์ž‘์œ„์„ฑ(randomness)โ€œ์„ ์ฃผ๊ธฐ ์œ„ํ•ด์„œ
    ใ…ค ํŽธํ–ฅ๋˜์ง€ ์•Š์€, ์ค‘๋ฆฝ์ ์ธ ๋ณ€์ด๊ฐ€ ์ƒ๊ธฐ๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์„ ํƒ

  • ์ฃผ๋กœ ์‹ค์ˆ˜(real number)๋กœ ํ‘œํ˜„๋œ ์œ ์ „์ž์— ์ ์šฉ
  • ๋ฌด์ž‘์œ„์„ฑ(Randomness) ์„ ํฌํ•จํ•˜์—ฌ, ํ•ด์˜ ๋‹ค์–‘์„ฑ์„ ํ™•๋ณดํ•จ

  • ์—ฐ์‚ฐ ๊ณผ์ •
    1. ์œ ์ „์ž์— ๋Œ€ํ•ด ์ผ์ • ํ™•๋ฅ ๋กœ ๋ณ€์ด๋ฅผ ์ ์šฉํ• ์ง€ ๊ฒฐ์ •

      ๊ฐ ์œ ์ „์ž ์œ„์น˜๋งˆ๋‹ค ํ™•๋ฅ  ์— ๋”ฐ๋ผ ๋ณ€์ด ์ ์šฉ ์—ฌ๋ถ€๋ฅผ ๋ฌด์ž‘์œ„๋กœ ๊ฒฐ์ •

    2. ์„ ํƒ๋œ ์œ ์ „์ž์— ๋ฌด์ž‘์œ„ ๊ฐ’์„ ๋”ํ•จ

      ํ‰๊ท ์ด , ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ ์ธ ์ •๊ทœ๋ถ„ํฌ์—์„œ ์ƒ์„ฑ๋œ ๋‚œ์ˆ˜๋ฅผ ๋”ํ•จ ์ด๋กœ ์ธํ•ด ์œ ์ „์ž์˜ ๊ฐ’์ด ์—ฐ์†์ ์œผ๋กœ ๋ฏธ์„ธํ•˜๊ฒŒ ๋ณ€ํ™”


  • ํŠน์ง•
    • ์—ฐ์†์ ์ธ ํ•ด ๊ณต๊ฐ„์„ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ํšจ๊ณผ์ 
    • ์ž‘์€ ๋ณ€ํ™”๋กœ ์ƒˆ๋กœ์šด ํ•ด๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ, ๋ฏธ์„ธํ•œ ์กฐ์ •์— ์œ ๋ฆฌ
    • ๋ฌด์ž‘์œ„์„ฑ์œผ๋กœ ์ธํ•ด ํ•ด์˜ ๋‹ค์–‘์„ฑ ์œ ์ง€ ๊ฐ€๋Šฅ
    • ์ ์ ˆํ•œ ๊ฐ’๊ณผ ํ™•๋ฅ  ์กฐ์ ˆ์ด ์ค‘์š”
      โ†’ ๋„ˆ๋ฌด ํฌ๋ฉด ํ•ด๊ฐ€ ํŠ€๊ณ , ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ๋ณ€ํ™”๊ฐ€ ๊ฑฐ์˜ ์—†์Œ

โœจ Exchange Mutation : ๊ตํ™˜ ๋ณ€์ด

image

  • ๋‘ ์œ ์ „์ž์˜ ์œ„์น˜๋ฅผ ์„œ๋กœ ๋งž๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์˜ ๋ณ€์ด
  • ์ฃผ๋กœ ์ด์ง„(binary) ๋˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ์œ ์ „์ž ํ‘œํ˜„์— ์ ์šฉ
  • ๊ฐ„๋‹จํ•œ ์—ฐ์‚ฐ์ด์ง€๋งŒ, ํฐ ํ•ด ํƒ์ƒ‰ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ์Œ

    ๐Ÿ’ก ์™œ ๋‹จ์ˆœํ•œ ๊ตํ™˜์ด ํšจ๊ณผ์ ์ผ๊นŒ?
    ใ…ค ์œ ์ „์ž์˜ ๊ตฌ์„ฑ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ์ˆœ์„œ๋งŒ ๋ฐ”๊ฟ” ์ƒˆ๋กœ์šด ํ•ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ
    ใ…ค ํŠนํžˆ ์ˆœ์„œ ๊ธฐ๋ฐ˜ ๋ฌธ์ œ(์˜ˆ : TSP, ์ •๋ ฌ ๋ฌธ์ œ)์—์„œ ์œ ์šฉ


  • ์—ฐ์‚ฐ ๊ณผ์ •
    1. ๋‘ ์œ ์ „์ž ์œ„์น˜๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒ

      ์ „์ฒด ์œ ์ „์ž ์ค‘ ๋‘ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜๋ฅผ ๋ฌด์ž‘์œ„๋กœ ๊ณ ๋ฆ„

    2. ์„ ํƒ๋œ ๋‘ ์œ ์ „์ž์˜ ๊ฐ’์„ ๊ตํ™˜

      ์œ„์น˜๋งŒ ๋ฐ”๊พธ๊ณ , ๊ฐ’ ์ž์ฒด๋Š” ๋ณ€ํ˜•ํ•˜์ง€ ์•Š์Œ
      ์œ ์ „์ž์˜ ์ด ๊ตฌ์„ฑ์€ ๊ทธ๋Œ€๋กœ์ง€๋งŒ, ์ˆœ์„œ ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ํ•ด ์ƒ์„ฑ


  • ํŠน์ง•
    • ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ํšจ๊ณผ์ ์ธ ํƒ์ƒ‰ ๊ธฐ๋ฒ•
    • ์œ ์ „์ž ๊ฐ’์˜ ์ดํ•ฉ์ด๋‚˜ ๋ถ„ํฌ๊ฐ€ ์œ ์ง€๋˜๋ฏ€๋กœ, ์•ˆ์ •์ ์ธ ํƒ์ƒ‰ ๊ฐ€๋Šฅ
    • ์ˆœ์„œ ๊ธฐ๋ฐ˜ ๋ฌธ์ œ์— ํŠนํžˆ ์ ํ•ฉ
    • ๋‹ค๋ฅธ ์—ฐ์‚ฐ(๊ต์ฐจ ๋“ฑ)๊ณผ ํ•จ๊ป˜ ์“ฐ์ผ ๋•Œ ์‹œ๋„ˆ์ง€ ํšจ๊ณผ

โœจ Shift Mutation : ์ด๋™ ๋ณ€์ด

image

  • ํ•˜๋‚˜์˜ ์œ ์ „์ž๋ฅผ ์„ ํƒํ•˜์—ฌ, ํ•ด๋‹น ์œ ์ „์ž๋ฅผ ์ขŒ์šฐ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๋ฐฉ์‹์˜ ๋ณ€์ด
  • ์ฃผ๋กœ ์ด์ง„(binary) ๋˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ์œ ์ „์ž ํ‘œํ˜„์— ์ ์šฉ
  • ํ•˜๋‚˜์˜ ์œ ์ „์ž๋งŒ ์ด๋™์‹œํ‚ค๋ฉด์„œ ๋‚˜๋จธ์ง€ ์œ ์ „์ž๋“ค์˜ ์ƒ๋Œ€ ์ˆœ์„œ๋ฅผ ์œ ์ง€

  • ์—ฐ์‚ฐ ๊ณผ์ •

    1. ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜์˜ ์œ ์ „์ž ์œ„์น˜ ์„ ํƒ

      ์ „์ฒด ์œ ์ „์ž ์ค‘ ํ•˜๋‚˜์˜ ์œ„์น˜๋ฅผ ์„ ํƒ

    2. ๋ฌด์ž‘์œ„๋กœ ์ด๋™ ๋ฐฉํ–ฅ๊ณผ ๊ฑฐ๋ฆฌ ๊ฒฐ์ •

      ์ขŒ์ธก ๋˜๋Š” ์šฐ์ธก์œผ๋กœ ๋ช‡ ์นธ ์ด๋™ํ• ์ง€ ๋ฌด์ž‘์œ„๋กœ ์ •ํ•จ

    3. ์„ ํƒ๋œ ์œ ์ „์ž๋ฅผ ์ง€์ •๋œ ์œ„์น˜๋กœ ์ด๋™

      ์ด๋™๋œ ๊ฒฝ๋กœ์˜ ์ค‘๊ฐ„ ์œ ์ „์ž๋“ค์€ ํ•œ ์นธ์”ฉ ๋ฐ€๋ฆผ


    • Bounded shifting (๊ฒฝ๊ณ„ ์ œํ•œ ์ด๋™)

      ์œ ์ „์ž๊ฐ€ ๋ฆฌ์ŠคํŠธ์˜ ๋์„ ๋„˜์–ด ์ด๋™ํ•˜์ง€ ์•Š๋„๋ก ์ œํ•œ
      ์˜ˆ: [1, 2, 3, 4, 5]์—์„œ 3์„ 0๋ฒˆ ์œ„์น˜๋กœ ์ด๋™ โ†’ [3, 1, 2, 4, 5]

    • Unbounded shifting (๊ฒฝ๊ณ„ ์—†๋Š” ์ด๋™) : ์ž๋ฃŒ์ฐพ๋Š”์ค‘

      ์œ ์ „์ž๊ฐ€ ๋ฆฌ์ŠคํŠธ์˜ ๋์„ ๋„˜์–ด ๋ฐ˜๋Œ€ํŽธ์œผ๋กœ ํšŒ์ „ ์ด๋™ ๊ฐ€๋Šฅ
      ์˜ˆ: [1, 2, 3, 4, 5]์—์„œ 3์„ 0๋ฒˆ ์œ„์น˜๋กœ ์ด๋™ํ•˜๋ฉด์„œ ๋๊ฐ’์ด ๋’ค๋กœ โ†’ [3, 2, 4, 5, 1]


  • ํŠน์ง•
    • ๋‹จ์ผ ์œ ์ „์ž์˜ ์œ„์น˜๋งŒ ๋ฐ”๊ฟ”, ๊ตฌ์กฐ๋ฅผ ํฌ๊ฒŒ ํ•ด์น˜์ง€ ์•Š์Œ
    • ์—ฐ๊ฒฐ์„ฑ๊ณผ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ ์ƒˆ๋กœ์šด ํ•ด๋ฅผ ์ƒ์„ฑ ๊ฐ€๋Šฅ
    • ํƒ์ƒ‰ ๊ณต๊ฐ„์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ด๋™ํ•˜๋ฉฐ ์ง€์—ญ ์ตœ์ ํ™” ํƒ์ƒ‰์— ์œ ๋ฆฌ
    • Bounded / Unbounded ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ํƒ์ƒ‰ ๊ฐ€๋Šฅ์„ฑ ํ™•๋ณด

โœจ Bit Flip Mutation : ๋น„ํŠธ ๋ฐ˜์ „ ๋ณ€์ด

image

  • ์ด์ง„(binary) ์œ ์ „์ž์— ์ ์šฉ๋˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ณ€์ด ๋ฐฉ์‹
  • ๋ฌด์ž‘์œ„๋กœ ์„ ํƒ๋œ ์œ ์ „์ž์˜ ๋น„ํŠธ๋ฅผ ๋ฐ˜์ „(0 โ†” 1) ์‹œํ‚ด

  • ์—ฐ์‚ฐ ๊ณผ์ •

    1. ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜์˜ ์œ ์ „์ž ์œ„์น˜ ์„ ํƒ

      ์ „์ฒด ์ด์ง„ ์œ ์ „์ž ์ค‘ ํ•˜๋‚˜์˜ ๋น„ํŠธ ์œ„์น˜๋ฅผ ์„ ํƒ

    2. ์„ ํƒ๋œ ๋น„ํŠธ ๋ฐ˜์ „ (0 โ†” 1)

      0์ด๋ฉด 1๋กœ, 1์ด๋ฉด 0์œผ๋กœ ๋ณ€๊ฒฝ
      ์ˆ˜ํ•™์ ์œผ๋กœ๋Š” ๋น„ํŠธ + 1 mod 2 ์—ฐ์‚ฐ์œผ๋กœ ๊ตฌํ˜„


    • ์˜ˆ: [1, 0, 1, 1, 0]์—์„œ ๋‘ ๋ฒˆ์งธ ๋น„ํŠธ(0)๋ฅผ ์„ ํƒ โ†’ [1, 1, 1, 1, 0]

  • ํŠน์ง•
    • ๊ตฌํ˜„์ด ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ 
    • ํƒ์ƒ‰ ๊ณต๊ฐ„ ์ „์ฒด๋ฅผ ๊ณ ๋ฅด๊ฒŒ ํƒ์ƒ‰ ๊ฐ€๋Šฅ
    • ์ด์ง„ ํ‘œํ˜„์— ํŠนํ™”๋˜์–ด ์žˆ์Œ
    • ๋น ๋ฅด๊ฒŒ ์ƒˆ๋กœ์šด ํ•ด๋ฅผ ์ƒ์„ฑํ•ด ์ดˆ๊ธฐ ๋‹ค์–‘์„ฑ ํ™•๋ณด์— ์œ ๋ฆฌ

โœจ Inversion Mutation : ๊ตฌ๊ฐ„ ๋ฐ˜์ „ ๋ณ€์ด

image

  • ๋ฌด์ž‘์œ„๋กœ ์„ ํƒํ•œ ์—ฐ์†๋œ ๊ตฌ๊ฐ„(subrange)์„ ๋ฐ˜์ „(reverse) ์‹œํ‚ค๋Š” ๋ณ€์ด ๋ฐฉ์‹
  • ์ฃผ๋กœ ์ด์ง„(binary) ๋˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ์œ ์ „์ž ํ‘œํ˜„์— ์ ์šฉ

  • ์—ฐ์‚ฐ ๊ณผ์ •

    1. ๋ฌด์ž‘์œ„๋กœ ๋‘ ๊ฐœ์˜ ์ธ๋ฑ์Šค๋ฅผ ์„ ํƒํ•ด ๊ตฌ๊ฐ„ ์„ค์ •

      ํ•˜๋‚˜๋Š” ์‹œ์ž‘ ์œ„์น˜, ํ•˜๋‚˜๋Š” ์ข…๋ฃŒ ์œ„์น˜

    2. ์„ ํƒ๋œ ๊ตฌ๊ฐ„์˜ ์œ ์ „์ž ์ˆœ์„œ ๋ฐ˜์ „

      ํ•ด๋‹น ๊ตฌ๊ฐ„ ๋‚ด ์œ ์ „์ž์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์–ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ


    • ์˜ˆ: [1, 2, 3, 4, 5]์—์„œ ์ธ๋ฑ์Šค 1~3 ์„ ํƒ โ†’ [1, 4, 3, 2, 5]

    • Bounded subrange (๊ฒฝ๊ณ„ ์ œํ•œ ๊ตฌ๊ฐ„)

      ์„ ํƒ๋œ ๊ตฌ๊ฐ„์ด ๋ฆฌ์ŠคํŠธ ๋‚ด์—์„œ๋งŒ ๋ฐ˜์ „๋˜๋„๋ก ์ œํ•œ
      ์‹œ์ž‘ ์ธ๋ฑ์Šค < ์ข…๋ฃŒ ์ธ๋ฑ์Šค ์กฐ๊ฑด ์œ ์ง€
      ์˜ˆ : [1, 2, 3, 4, 5] โ†’ [1, 4, 3, 2, 5]

    • Unbounded subrange (๊ฒฝ๊ณ„ ์—†๋Š” ๊ตฌ๊ฐ„)

      ์„ ํƒ ๊ตฌ๊ฐ„์ด ๋ฆฌ์ŠคํŠธ ๋์„ ๋„˜์–ด ํšŒ์ „ ๋ฐ˜์ „๋  ์ˆ˜ ์žˆ์Œ
      ์˜ˆ: [1, 2, 3, 4, 5]์—์„œ ์ธ๋ฑ์Šค 3~1 ์„ ํƒ โ†’ [5, 4, 3, 2, 1]


  • ํŠน์ง•
    • ์ˆœ์„œ๋ฅผ ๋ณด์กดํ•˜๋ฉฐ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ๋ณ€ํ™”์‹œํ‚ด
    • ๊ธธ์ด ์ œํ•œ ์—†๋Š” ์œ ์ „์ž ํƒ์ƒ‰์— ์œ ๋ฆฌ
    • ํƒ์ƒ‰ ๊ณต๊ฐ„์„ ๋น„์„ ํ˜•์ ์œผ๋กœ ์ด๋™ ๊ฐ€๋Šฅ
    • Bounded / Unbounded ๋ฐฉ์‹ ์„ ํƒ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ํƒ์ƒ‰ ์ „๋žต ๊ตฌ์„ฑ ๊ฐ€๋Šฅ

โœจ Shuffle Mutation : ๊ตฌ๊ฐ„ ์…”ํ”Œ ๋ณ€์ด

image

  • ๋ฌด์ž‘์œ„๋กœ ์„ ํƒํ•œ ๊ตฌ๊ฐ„(subrange) ๋‚ด์˜ ์œ ์ „์ž๋“ค์„ ์„ž๋Š”(์…”ํ”Œ) ๋ฐฉ์‹์˜ ๋ณ€์ด
  • ์ด์ง„(binary) ๋˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ์œ ์ „์ž ํ‘œํ˜„์— ์ ์šฉ

  • ์—ฐ์‚ฐ ๊ณผ์ •

    1. ๋ฌด์ž‘์œ„๋กœ ๋‘ ๊ฐœ์˜ ์ธ๋ฑ์Šค๋ฅผ ์„ ํƒํ•ด ๊ตฌ๊ฐ„ ์„ค์ •

      ํ•˜๋‚˜๋Š” ์‹œ์ž‘ ์œ„์น˜, ํ•˜๋‚˜๋Š” ์ข…๋ฃŒ ์œ„์น˜

    2. ์„ ํƒ๋œ ๊ตฌ๊ฐ„์˜ ์œ ์ „์ž๋“ค์„ ๋ฌด์ž‘์œ„๋กœ ์„ž์Œ

      ์ „์ฒด ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๊ตฌ๊ฐ„ ๋‚ด์—์„œ ๋žœ๋ค ์ˆœ์„œ๋กœ ์žฌ๋ฐฐ์—ด


    • ์˜ˆ: [1, 2, 3, 4, 5]์—์„œ ์ธ๋ฑ์Šค 1~3 ์„ ํƒ โ†’ [1, 4, 2, 3, 5] (์„ž์ธ ๊ฒฐ๊ณผ๋Š” ๋ฌด์ž‘์œ„)

    • Bounded subrange (๊ฒฝ๊ณ„ ์ œํ•œ ๊ตฌ๊ฐ„)

      ๊ตฌ๊ฐ„์ด ๋ฆฌ์ŠคํŠธ ๋‚ด์—์„œ๋งŒ ์กด์žฌํ•˜๋„๋ก ์ œํ•œ
      ์‹œ์ž‘ ์ธ๋ฑ์Šค < ์ข…๋ฃŒ ์ธ๋ฑ์Šค ์กฐ๊ฑด ์œ ์ง€

    • Unbounded subrange (๊ฒฝ๊ณ„ ์—†๋Š” ๊ตฌ๊ฐ„)

      ๋ฆฌ์ŠคํŠธ ๋์„ ๋„˜์–ด ํšŒ์ „ํ•˜๋ฉฐ ๊ตฌ๊ฐ„์„ ์„ค์ •ํ•˜๊ณ  ์„ž์Œ
      ์˜ˆ: [1, 2, 3, 4, 5]์—์„œ ์ธ๋ฑ์Šค 4~1 โ†’ [2, 1, 3, 5, 4] (์„ž์ธ ๊ฒฐ๊ณผ๋Š” ๋ฌด์ž‘์œ„)


  • ํŠน์ง•
    • ์œ ์ „์ž์˜ ์กฐํ•ฉ์„ ๋ฌด์ž‘์œ„๋กœ ์„ž์œผ๋ฉฐ ๋‹ค์–‘์„ฑ ์ฆ๊ฐ€
    • ์ˆœ์„œ๋ฅผ ๋ถ€๋ถ„์ ์œผ๋กœ ๋ณ€๊ฒฝํ•ด ํƒ์ƒ‰ ๊ณต๊ฐ„ ํ™•์žฅ์— ์œ ๋ฆฌ
    • ํƒ์ƒ‰ ๊ตฌ์กฐ๋ฅผ ํฌ๊ฒŒ ํ•ด์น˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ๋กœ์šด ํ•ด ์ƒ์„ฑ
    • Bounded / Unbounded ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ํƒ์ƒ‰ ํŒจํ„ด ๊ฐ€๋Šฅ

โœจ Fitness Driven Mutation : ์ ํ•ฉ๋„ ๊ธฐ๋ฐ˜ ๋ณ€์ด

image

  • **๋ณ€์ด๊ฐ€ ํ•ด๋ฅผ ๋” ์ข‹๊ฒŒ ๋งŒ๋“ค์—ˆ๋Š”์ง€(์ ํ•ฉ๋„ ํ–ฅ์ƒ ์—ฌ๋ถ€)**๋ฅผ ํŒ๋‹จํ•˜์—ฌ ์ ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •
  • ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ๋ณ€์ด๋ฅผ ์‹œ๋„ํ•œ ํ›„, ๊ฐ€์žฅ ์ข‹์€ ๊ฒฐ๊ณผ ๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ๊ธ์ •์  ๊ฒฐ๊ณผ๋งŒ ์ ์šฉ
  • ๋ชจ๋“  ๋ณ€์ด๊ฐ€ ์›๋ž˜๋ณด๋‹ค ๋‚˜์˜๋ฉด ๋ณ€์ด๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ์›๋ณธ ์œ ์ง€

  • ์—ฐ์‚ฐ ๊ณผ์ •

    1. ์›๋ณธ ์œ ์ „์ž์— ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณ€์ด ์‹œ๋„

      ์ž„์˜์˜ ๋ณ€์ด ๊ธฐ๋ฒ• ์‚ฌ์šฉ (์˜ˆ: ๋น„ํŠธ ๋ฐ˜์ „, ์…”ํ”Œ ๋“ฑ)

    2. ๊ฐ ๋ณ€์ด ๊ฒฐ๊ณผ์˜ ์ ํ•ฉ๋„ ํ‰๊ฐ€

      ์ ํ•ฉ๋„๊ฐ€ ์›๋ณธ๋ณด๋‹ค ๋†’์•„์•ผ ์ ์šฉ ๋Œ€์ƒ์ด ๋จ

    3. ์ ์šฉ ๋ฐฉ์‹ ์„ ํƒ

      • Pick first positive (์ฒซ ๋ฒˆ์งธ ๊ธ์ • ๋ณ€์ด ์ ์šฉ)

        ๋ณ€์ด๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ€์žฅ ๋จผ์ € ์ ํ•ฉ๋„๊ฐ€ ํ–ฅ์ƒ๋œ ๊ฒฝ์šฐ๋งŒ ์ ์šฉ
        ๋น ๋ฅธ ๊ณ„์‚ฐ ์†๋„ ์žฅ์ 

      • Pick best positive (๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ณ€์ด ์ ์šฉ)

        ๋ชจ๋“  ๋ณ€์ด ๊ฒฐ๊ณผ ์ค‘ ๊ฐ€์žฅ ์ ํ•ฉ๋„๊ฐ€ ๋†’์€ ๊ฒƒ์„ ์„ ํƒ
        ๊ณ„์‚ฐ์€ ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€๋งŒ ๊ฐœ์ฒด ๊ฐœ์„ ์— ํšจ๊ณผ์ 


    • ์ฃผ์˜ ์‚ฌํ•ญ

      ๋ณ€์ด๋ฅผ ๋ฌดํ•œํžˆ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์€ ๊ธˆ์ง€
      ์ตœ์  ๊ฐœ์ฒด์˜ ๊ฒฝ์šฐ, ๋ชจ๋“  ๋ณ€์ด๊ฐ€ ์˜คํžˆ๋ ค ์ ํ•ฉ๋„๋ฅผ ๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ์Œ
      ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์ง€์ง€ ์•Š๋„๋ก ๋ณ€์ด ์‹œ๋„ ํšŸ์ˆ˜๋Š” ์ œํ•œํ•ด์•ผ ํ•จ


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