๐ŸŒˆ ์ž๋ฃŒ๊ตฌ์กฐ:: ๊ทธ๋ž˜ํ”„(Graph)์˜ ๊ฐœ๋…

Aprilยท2021๋…„ 11์›” 4์ผ
1
post-thumbnail

๐Ÿš€ What I Will Learn

  • ๊ทธ๋ž˜ํ”„(Graph)์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ

๊ทธ๋ž˜ํ”„(Graph)๋ž€? ๋‹จ์ˆœํžˆ ๋…ธ๋“œ(N, node)์™€ ๊ทธ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (E, edge)์„ ํ•˜๋‚˜๋กœ ๋ชจ์•„ ๋†“์€ ์ž๋ฃŒ ๊ตฌ์กฐ


๊ทธ๋ž˜ํ”„(Graph)

โœ”๏ธ ๊ทธ๋ž˜ํ”„(Graph)์™€ ๊ด€๋ จ๋œ ์šฉ์–ด

  • ์ •์ (vertex): ์œ„์น˜๋ผ๋Š” ๊ฐœ๋…. (node ๋ผ๊ณ ๋„ ๋ถ€๋ฆ„)
  • ๊ฐ„์„ (edge): ์œ„์น˜ ๊ฐ„์˜ ๊ด€๊ณ„. ์ฆ‰, ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„  (link, branch ๋ผ๊ณ ๋„ ๋ถ€๋ฆ„)
  • ์ธ์ ‘ ์ •์ (adjacent vertex): ๊ฐ„์„ ์— ์˜ ํ•ด ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ์ •์ 
  • ์ •์ ์˜ ์ฐจ์ˆ˜(degree): ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ ํ•˜๋‚˜์˜ ์ •์ ์— ์ธ์ ‘ํ•œ ์ •์ ์˜ ์ˆ˜
    • ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์— ์กด์žฌํ•˜๋Š” ์ •์ ์˜ ๋ชจ๋“  ์ฐจ์ˆ˜์˜ ํ•ฉ = ๊ทธ๋ž˜ํ”„์˜ ๊ฐ„์„  ์ˆ˜์˜ 2๋ฐฐ
  • ์ง„์ž… ์ฐจ์ˆ˜(in-degree): ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ ์™ธ๋ถ€์—์„œ ์˜ค๋Š” ๊ฐ„์„ ์˜ ์ˆ˜ (๋‚ด์ฐจ์ˆ˜ ๋ผ๊ณ ๋„ ๋ถ€๋ฆ„)
  • ์ง„์ถœ ์ฐจ์ˆ˜(out-degree): ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”™์—์„œ ์™ธ๋ถ€๋กœ ํ–ฅํ•˜๋Š” ๊ฐ„์„ ์˜ ์ˆ˜ (์™ธ์ฐจ์ˆ˜ ๋ผ๊ณ ๋„ ๋ถ€๋ฆ„)
    • ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์— ์žˆ๋Š” ์ •์ ์˜ ์ง„์ž… ์ฐจ์ˆ˜ ๋˜๋Š” ์ง„์ถœ ์ฐจ์ˆ˜์˜ ํ•ฉ = ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ๊ฐ„์„ ์˜ ์ˆ˜(๋‚ด์ฐจ์ˆ˜ + ์™ธ์ฐจ์ˆ˜)
  • ๊ฒฝ๋กœ ๊ธธ์ด(path length): ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ๊ฐ„์„ ์˜ ์ˆ˜
  • ๋‹จ์ˆœ ๊ฒฝ๋กœ(simple path): ๊ฒฝ๋กœ ์ค‘์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ์ •์ ์ด ์—†๋Š” ๊ฒฝ์šฐ
  • ์‚ฌ์ดํด(cycle): ๋‹จ์ˆœ ๊ฒฝ๋กœ์˜ ์‹œ์ž‘ ์ •์ ๊ณผ ์ข…๋ฃŒ ์ •์ ์ด ๋™์ผํ•œ ๊ฒฝ์šฐ

1๏ธโƒฃ ๊ทธ๋ž˜ํ”„(Graph)๋ž€?

1) ๊ทธ๋ž˜ํ”„๋ž€ ์‚ฌ๋ฌผ์„ ์ •์ (Vertex)์™€ ๊ฐ„์„ (Edge)์œผ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๋„๊ตฌ
2) ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค

  • ์ธ์ ‘ ํ–‰๋ ฌ(Adjacency Matrix): 2์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹
  • ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ(Adjacency List): ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

โœ”๏ธ ์ธ์ ‘ ํ–‰๋ ฌ(Adjacency Matrix)

์ธ์ ‘ ํ–‰๋ ฌ(Adjacency Matrix): 2์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

  • ์˜ˆ์‹œ) 0์—์„œ 1๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ์—๋Š” ๊ฐ€์ค‘์น˜ 3
  • 1์—์„œ 2๋กœ ๊ฐ€๋Š” ๊ฒƒ์€ ์—†์œผ๋‹ˆ๊นŒ ๋ฌดํ•œ


โœ”๏ธ ๋ฌด๋ฐฉํ–ฅ ๋น„๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์™€ ์ธ์ ‘ ํ–‰๋ ฌ

  • ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„: ๋ฐฉํ–ฅ์„ฑ์„ ๊ฐ€์ง€์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„
  • ๋น„๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„: ๋ชจ๋“  ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋Š” ๊ทธ๋ž˜ํ”„

๋ฌด๋ฐฉํ–ฅ ๋น„๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ƒํ™ฉ์„ ์ธ์ ‘ ํ–‰๋ ฌ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค


โœ”๏ธ ๋ฐฉํ–ฅ ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์™€ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ

  • ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„: ๋ชจ๋“  ๊ฐ„์„ ์ด ๋ฐฉํ–ฅ์„ ๊ฐ€์ง€๋Š” ๊ทธ๋ž˜ํ”„
  • ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„: ๋ชจ๋“  ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„

๋ฌด๋ฐฉํ–ฅ ๋น„๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ƒํ™ฉ์„ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค




โœจ tl;dr

  • ์ธ์ ‘ ํ–‰๋ ฌ์€

    • ๋ชจ๋“  ์ •์ ๋“ค์˜ ์—ฐ๊ฒฐ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•˜์—ฌ ๐‘‚(๐‘‰2)์˜ ๊ณต๊ฐ„์„ ์š”๊ตฌํ•˜๋ฏ€๋กœ ๊ณต๊ฐ„ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€์ง€๋งŒ
    • ๋‘ ์ •์ ์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๐‘‚(1)์˜ ์‹œ๊ฐ„์ด ํ•„์š”
  • ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋Š”

    • ์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ์˜ ์ •๋ณด๋งŒ์„ ์ €์žฅํ•˜์—ฌ ๐‘‚(๐ธ)์˜ ๊ณต๊ฐ„์„ ์š”๊ตฌํ•˜๋ฏ€๋กœ๊ณต๊ฐ„ ํšจ์œจ์„ฑ์ด ์šฐ์ˆ˜ํ•˜์ง€๋งŒ
    • ๋‘ ์ •์ ์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๐‘‚(๐‘‰)์˜ ์‹œ๊ฐ„์ด ํ•„์š”
profile
๐Ÿš€ ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์“ฐ๋Š” ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€