Spanning Tree
ÀÌ»ê¼öÇÐ : Richard Johnsonbaugh Àú¼, °È«½Ä.±èÁ¤ÀÎ.À̵µÈÆ.À̸íÀç ¹ø¿ª, ±³º¸¹®°í, 1999 (¿ø¼ : Discrete Mathematics 6th ed, Prentice-Hall, 1997), Page 469~475
ÀÌ Àý¿¡¼´Â, ±×·¡ÇÁ G ÀÇ ¸ðµç Á¤Á¡µéÀ» Æ÷ÇÔÇÏ´Â Æ®¸®ÀÎ ºÎºÐ ±×·¡ÇÁ T ¸¦ ã´Â ¹®Á¦¸¦ °í·ÁÇØ º»´Ù. ÀÌ·± Æ®¸®¸¦ ½ÅÀå Æ®¸® (spanning tree) ¶ó°í ºÎ¸¥´Ù. ½ÅÀå Æ®¸®¸¦ ã´Â ¹æ¹ýÀÌ ´Ù¸¥ ¹®Á¦µé¿¡µµ Àß Àû¿ëµÉ ¼ö ÀÖ´Ù´Â °ÍÀ» º¸ÀÏ °ÍÀÌ´Ù.
±×¸² 1 ±×·¡ÇÁ¿Í ÁøÇÑ Á¡¼±À¸·Î Ç¥½ÃÇÑ ½ÅÀ寮¸®
(Á¤ÀÇ 1)
T °¡ ±×·¡ÇÁ G ÀÇ ¸ðµç Á¤Á¡À» Æ÷ÇÔÇÏ´Â ºÎºÐ ±×·¡ÇÁ·Î¼ Æ®¸®À̸é, T ´Â G ÀÇ ½ÅÀå Æ®¸® (spanning tree) ÀÌ´Ù.
±×¸² 2 ±×¸² 1ÀÇ ±×·¡ÇÁ G ÀÇ ´Ù¸¥ ½ÅÀå Æ®¸® (ÁøÇÑ Á¡¼±À¸·Î Ç¥½Ã)
(¿¹Á¦ 2)
±×¸² 1 ÀÇ ±×·¡ÇÁ G ÀÇ ½ÅÀå Æ®¸®´Â Á¡¼±À¸·Î Ç¥½ÃÇÑ °ÍÀÌ´Ù
(¿¹Á¦ 3)
ÀϹÝÀûÀ¸·Î ÇϳªÀÇ ±×·¡ÇÁ´Â ¿©·¯ °³ÀÇ ½ÅÀå Æ®¸®¸¦ °®´Â´Ù. ±×¸² 1 ÀÇ ±×·¡ÇÁ G ÀÇ ´Ù¸¥ ½ÅÀå Æ®¸®¸¦ ±×¸² 2 ¿¡ ³ªÅ¸³»¾ú´Ù.
±×·¡ÇÁ G °¡ ½ÅÀå Æ®¸® T ¸¦ °®°í ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ±×¸®°í a ¿Í b ¸¦ T ÀÇ Á¤Á¡µéÀ̶ó°í ÇÏÀÚ. ±×·¯¸é, a ¿Í b ´Â T ÀÇ Á¤Á¡µéÀ̰í T ´Â Æ®¸®À̹ǷÎ, a ¿¡¼ b ·ÎÀÇ °æ·Î P °¡ Á¸ÀçÇÑ´Ù. ±×·¯³ª P ´Â G ¿¡¼µµ ¶ÇÇÑ a ¿¡¼ b ·ÎÀÇ °æ·ÎÀÇ ¿ªÇÒÀ» ÇÑ´Ù ; µû¶ó¼ G ´Â ¿¬°áµÇ¾î ÀÖ´Ù. À̰ÍÀÇ ¿ªµµ ¶ÇÇÑ ¼º¸³ÇÑ´Ù.
(Á¤¸® 4)
"±×·¡ÇÁ G °¡ ½ÅÀå Æ®¸® T ¸¦ °®´Â´Ù." ´Â "G °¡ ¿¬°áµÇ¾î ÀÖ´Ù." ÀÇ ÇÊ¿ä ÃæºÐ Á¶°ÇÀÌ´Ù.
Áõ¸í ¿ì¸®´Â ÀÌ¹Ì G °¡ ½ÅÀå Æ®¸®¸¦ °¡Áö¸é, G °¡ ¿¬°áµÇ¾î ÀÖ´Ù´Â °ÍÀ» º¸¿´´Ù. G °¡ ¿¬°áµÇ¾î ÀÖ´Ù°í °¡Á¤ÇÏÀÚ. ¸¸¾à G °¡ ºñ¼øÈ¯ÀûÀ̸é, Á¤¸® 3 ¿¡ ÀÇÇØ G ´Â Æ®¸®ÀÌ´Ù.
G °¡ ¼øÈ¯À» Æ÷ÇÔÇÑ´Ù°í °¡Á¤ÇÏÀÚ. ÀÌ ¼øÈ¯¿¡¼ °£¼± Çϳª (Á¤Á¡Àº ±×´ë·Î µÒ) ¸¦ Á¦°ÅÇÑ´Ù. »ý¼±µÈ ±×·¡ÇÁ´Â ¾ÆÁ÷µµ ¿¬°áµÇ¾î ÀÖ´Ù. ¸¸¾à ±×°ÍÀÌ ºñ¼øÈ¯ÀûÀ̸é, ÀÛ¾÷À» ¸ØÃá´Ù. ¸¸¾à ¼øÈ¯À» Æ÷ÇÔÇÑ´Ù¸é, ÀÌ ¼øÈ¯¿¡¼ °£¼± Çϳª¸¦ Á¦°ÅÇÑ´Ù. ÀÌ·± ½ÄÀ¸·Î °è¼ÓÇϸé, ±Ã±ØÀûÀ¸·Î ºñ¼øÈ¯ÀûÀÌ°í ¿¬°áµÇ¾î ÀÖ´Â ºÎºÐ ±×·¡ÇÁ T ¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. Á¤¸® 3 ¿¡ ÀÇÇØ T ´Â Æ®¸®ÀÌ´Ù. ¶ÇÇÑ T °¡ G ÀÇ ¸ðµç Á¤Á¡µéÀ» Æ÷ÇÔÇϹǷÎ, T ´Â G ÀÇ ½ÅÀå Æ®¸®ÀÌ´Ù.
Á¤¸® 4 ÀÇ Áõ¸íÀ» ±âÃÊ·Î ÇÑ ½ÅÀå Æ®¸®¸¦ ã´Â ¾Ë°í¸®ÁòÀº ¸Å¿ì È¿À²ÀûÀÌÁö´Â ¾ÊÀ» °ÍÀÌ´Ù ; ¼øÈ¯À» ã´Â µ¥ ¸¹Àº ½Ã°£À» ¼Ò¿äÇÒ °ÍÀÌ´Ù. ¿ì¸®´Â Á»´õ ³ªÀº ¹æ¹ýÀ¸·Î ÀÌ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Ù. ¸ÕÀú ½ÅÀå Æ®¸®¸¦ ã´Â ¾Ë°í¸®ÁòÀ» ¿¹¸¦ ÅëÇØ ¼³¸íÇϰí, ±× ´ÙÀ½ ¾Ë°í¸®ÁòÀ» ±â¼úÇϰڴÙ.
(¿¹Á¦ 5)
±×¸² 1ÀÇ ±×·¡ÇÁ G ¿¡ ´ëÇÑ ½ÅÀå Æ®¸®¸¦ ±¸ÇÏ¿©¶ó.
³Êºñ ¿ì¼± °Ë»ö (Breadth First Search) À̶ó´Â ¹æ¹ýÀ» »ç¿ëÇÒ °ÍÀÌ´Ù (¾Ë°í¸®Áò 6). ³Êºñ ¿ì¼± °Ë»öÀÇ ±âº» »ý°¢Àº ´ÙÀ½ÀÇ ³ôÀº ·¹º§·Î À̵¿Çϱâ Àü¿¡ ÁÖ¾îÁø ·¹º§¿¡ ÀÖ´Â ¸ðµç Á¤Á¡µéÀ» ¹æ¹®ÇÏ´Â °ÍÀÌ´Ù. ¸ÕÀú G ÀÇ Á¤Á¡µéÀÇ ¼ø¼, ¿¹¸¦ µé¾î abcdefgh ¸¦ Á¤ÇÑ´Ù. ±×¸®°í ù ¹øÂ° Á¤Á¡ a ¸¦ ¼±ÅÃÇϰí, ±×°ÍÀ» »Ñ¸®·Î ÇÑ´Ù. T ¸¦ °£¼±Àº ¾ø°í ÇϳªÀÇ Á¤Á¡ a ·Î ±¸¼ºµÈ °ÍÀ̶ó°í ÇÏÀÚ. ±×¸®°í x = b ºÎÅÍ h ¿¡ ´ëÇØ, a ¿¡ ÀÎÁ¢ÇÑ Á¤Á¡ x ¿Í °£¼± (a, x) °¡ T ¿¡ Ãß°¡µÇ¾úÀ» ¶§ ¼øÈ¯À» »ý¼ºÇÏÁö ¾ÊÀ¸¸é À̵éÀ» T ¿¡ Ãß°¡ÇÑ´Ù. T ¿¡ °£¼± (a, b), (a, c) ±×¸®°í (a, g) °¡ Ãß°¡µÉ °ÍÀÌ´Ù (a ¿Í g ¿¡ ºÎ¼ÓµÈ parallel °£¼±µé Áß ¾î¶² °Íµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù). ·¹º§ 1ÀÎ Á¤Á¡µé¿¡ ´ëÇØ¼µµ °¢°¢À» ¼ø¼´ë·Î °Ë»çÇÏ¸é¼ ÀÌ ÀÛ¾÷À» ¹Ýº¹ÇÑ´Ù ;
b : (b, d) ¸¦ Æ÷ÇÔ.
c : (c, e) ¸¦ Æ÷ÇÔ.
g : Æ÷ÇÔÇÒ °ÍÀÌ ¾øÀ½.
·¹º§ÀÌ 2 ÀÎ Á¤Á¡µé¿¡ ´ëÇØ¼µµ ÀÌ ÀÛ¾÷À» ¹Ýº¹ÇÑ´Ù :
d : (d, f) ¸¦ Æ÷ÇÔ.
e : Æ÷ÇÔÇÒ °ÍÀÌ ¾øÀ½.
·¹º§ÀÌ 3 ÀÎ Á¤Á¡µé¿¡ ´ëÇØ¼µµ ÀÌ ÀÛ¾÷À» ¹Ýº¹ÇÑ´Ù.
f : (f, h) ¸¦ Æ÷ÇÔ.
·¹º§ÀÌ 4 ÀÎ Á¤Á¡ h ¿¡¼´Â ¾î¶°ÇÑ °£¼±µµ Ãß°¡µÉ ¼ö ¾øÀ¸¹Ç·Î, ÀÌ ÀÛ¾÷Àº ³¡ÀÌ ³´Ù. ¿ì¸®´Â ±×¸² 1 ¿¡ ³ªÅ¸³½ °Í°ú °°Àº ½ÅÀå Æ®¸®¸¦ ±¸ÇÏ¿´´Ù.
¿¹Á¦ 5ÀÇ ¹æ¹ýÀ» Á¤ÇüÈÇÑ °ÍÀÌ ¾Ë°í¸®Áò 6ÀÌ´Ù.
(¾Ë°í¸®Áò 6)
½ÅÀå Æ®¸®¸¦ ±¸Çϱâ À§ÇÑ ³Êºñ ¿ì¼± °Ë»öÀÌ ¾Ë°í¸®ÁòÀº ³Êºñ ¿ì¼± °Ë»ö ¹æ¹ýÀ» »ç¿ëÇÏ¿© ½ÅÀå Æ®¸®¸¦ ã¾Æ³½´Ù.
ÀÔ·Â: v1, v2, ..., vn À¸·Î ¼ø¼ÈµÈ Á¤Á¡µéÀ» °®´Â ¿¬°á ±×·¡ÇÁ G
Ãâ·Â: ½ÅÀå Æ®¸® T
procedure bfs (V, E)
// V = v1, v2, ..., vn À¸·Î ¼ø¼ÈµÈ Á¡Á¡µé ; E = °£¼±µé
// V' = ½ÅÀå Æ®¸® T ÀÇ Á¤Á¡µé ; E' = ½ÅÀå Æ®¸® T ÀÇ °£¼±µé
// v1 Àº ½ÅÀå Æ®¸®ÀÇ »Ñ¸®
// S ´Â ¼ø¼ÈµÈ ¸ñ·Ï
S : = {v1}
V' : = {v1}
E' : = Ø
while true do
begin
for °¢°¢ÀÇ x ¡ô S, ¼ø¼´ë·Î do
for °¢°¢ÀÇ y ¡ô V - V', ¼ø¼´ë·Î do
if (x, y) °¡ °£¼± then
°£¼± (x, y) ¸¦ E' ¿¡, ±×¸®°í y ¸¦ V' ¿¡ Ãß°¡
if Ãß°¡µÈ °£¼±ÀÌ ¾øÀ½ then
return (T)
S : = ¿ø·¡ÀÇ Á¤Á¡µéÀÇ ¼ø¼¿Í ÀÏÄ¡ÇÏ´Â ¼ø¼·Î S ÀÇ Àڽĵé
end
end bfs
¿¬½À ¹®Á¦ 16 Àº ¾Ë°í¸®Áò 6 ÀÌ ½ÅÀå Æ®¸®¸¦ Á¤È®ÇÏ°Ô Ã£´Â´Ù´Â °ÍÀ» Áõ¸íÇÏ´Â °ÍÀÌ´Ù. ³Êºñ ¿ì¼± °Ë»öÀº n °³ÀÇ Á¤Á¡À» °¡Áø ÀÓÀÇÀÇ ±×·¡ÇÁ G °¡ ¿¬°áµÇ¾î ÀÖ´ÂÁö ¾Æ´ÑÁö¸¦ °Ë»çÇÏ´Â µ¥µµ »ç¿ëµÉ ¼ö ÀÖ´Ù (¿¬½À ¹®Á¦ 26). ¿ì¸®´Â Æ®¸® T ¸¦ »ý¼ºÇϱâ À§ÇØ ¾Ë°í¸®Áò 6 ÀÇ ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. ±×·¯¸é "G °¡ ¿¬°áµÇ¾î ÀÖ´Ù." ´Â "T °¡ n °³ÀÇ Á¤Á¡À» °®´Â´Ù." ÀÇ ÇÊ¿ä ÃæºÐ Á¶°ÇÀÌ´Ù.
³Êºñ ¿ì¼± °Ë»öÀº ¶ÇÇÑ °¡ÁßÄ¡°¡ ¾ø´Â ±×·¡ÇÁ¿¡¼ °íÁ¤µÈ Á¤Á¡ v ¿¡¼ ¸ðµç ´Ù¸¥ Á¤Á¡µéÀÇ ÃÖ¼Ò ±æÀÌ °æ·Î¸¦ ã´Â µ¥µµ »ç¿ëµÉ ¼ö ÀÖ´Ù (¿¬½À ¹®Á¦ 20). ¿ì¸®´Â ¾Ë°í¸®Áò 6 ÀÇ ¹æ¹ýÀ» v ¸¦ »Ñ¸®·Î ÇÏ´Â ½ÅÀå Æ®¸®¸¦ »ý¼ºÇϱâ À§ÇØ »ç¿ëÇÑ´Ù. ¿ì¸®´Â ½ÅÀå Æ®¸®¿¡¼ Á¤Á¡ v ¿¡¼ ·¹º§ i ÀÎ Á¤Á¡À¸·ÎÀÇ ÃÖ¼Ò °æ·ÎÀÇ ±æÀÌ´Â i ¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. Dijkstra ÀÇ °¡Áß ±×·¡ÇÁ¿¡ ´ëÇÑ ÃÖ¼Ò °æ·Î ¾Ë°í¸®Áò (¾Ë°í¸®Áò 6.4.1) Àº ³Êºñ ¿ì¼± °Ë»öÀ» ÀϹÝÈÇÑ °ÍÀ¸·Î¼ °£ÁÖµÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù (¿¬½À ¹®Á¦ 21).
³Êºñ ¿ì¼± °Ë»öÀÇ ´ë¾ÈÀº ±íÀÌ ¿ì¼± °Ë»ö (Depth First Search) ÀÌ´Ù.
(¾Ë°í¸®Áò 7) ½ÅÀå Æ®¸®¸¦ ±¸Çϱâ À§ÇÑ ±íÀÌ ¿ì¼± °Ë»ö
ÀÌ ¾Ë°í¸®ÁòÀº ±íÀÌ ¿ì¼± °Ë»ö ¹æ¹ýÀ» »ç¿ëÇÏ¿© ½ÅÀå Æ®¸®¸¦ ã¾Æ³½´Ù.
ÀÔ·Â : v1, v2, ..., vn À¸·Î ¼ø¼ÈµÈ Á¤Á¡µéÀ» °®´Â ¿¬°á ±×·¡ÇÁ G
Ãâ·Â: ½ÅÀå Æ®¸® T
procedure bfs (V, E)
//
V' = ½ÅÀå Æ®¸® ÀÇ Á¤Á¡µé ; E' = ½ÅÀå Æ®¸® T ÀÇ °£¼±µé
// v1 Àº ½ÅÀå Æ®¸®ÀÇ »Ñ¸®
V : = {v1}
E' : = Ø
w : = v1
while true do
begin
while °£¼±ÀÌ T ¿¡ Ãß°¡µÇ¾úÀ» ¶§ ¼øÈ¯À» »ý¼ºÇÏÁö ¾Ê´Â °£¼± (w, v) °¡ ÀÖÀ¸¸é do
begin
°£¼±ÀÌ T ¿¡ Ãß°¡µÇ¾úÀ» ¶§ ¼øÈ¯À» »ý¼ºÇÏÁö ¾Ê´Â ÃÖ¼Ò ·¹º§ÀÇ
°£¼±(w, vk) ¸¦ ¼±ÅÃÇÑ´Ù.
vk ¸¦ V' ¿¡ Ãß°¡ÇÑ´Ù.
w : = vk
end
if w = v1 then
returm (T)
w : = T ¿¡ ÀÖ´Â w ÀÇ ºÎ¸ð // µÇµ¹¾Æ°¨
end
end dfs
¿¬½À ¹®Á¦ 17Àº ¾Ë°í¸®Áò 7 ÀÌ ½ÅÀå Æ®¸®¸¦ Á¤È®ÇÏ°Ô Ã£´Â´Ù´Â °ÍÀ» Áõ¸íÇÏ´Â °ÍÀÌ´Ù.
(¿¹Á¦ 8)
Á¤Á¡µéÀÇ ¼ø¼¸¦ abcdefgh ·Î ÇØ¼ ±×¸² 2 ÀÇ ±×·¡ÇÁ¿¡ ´ëÇÑ ½ÅÀå Æ®¸®¸¦ ±¸Çϱâ À§ÇØ, ±íÀÌ ¿ì¼± °Ë»ö (¾Ë°í¸®Áò 7) À» »ç¿ëÇÏ¿©¶ó. ¸ÕÀú ù ¹øÂ° Á¤Á¡ a ¸¦ ¼±ÅÃÇϰí, ±×°ÍÀ» »Ñ¸®·Î ÇÑ´Ù (±×¸² 2). ±× ´ÙÀ½ ÃÖ¼Ò ·¹º§À» °®´Â x ¿¡ ´ëÇØ, °£¼± (a, x) ¸¦ Æ®¸®¿¡ Ãß°¡ÇÑ´Ù. ¿©±â¼´Â °£¼± (a, b) °¡ Ãß°¡µÈ´Ù.
ÀÌ ÀÛ¾÷À» ¹Ýº¹ÇÏ¿©, °£¼± (b, d), (d, c), (c, e), (e, f) ±×¸®°í (f, h)¸¦ Ãß°¡ÇÑ´Ù. ÀÌ ½ÃÁ¡¿¡¼ ¿ì¸®´Â (h, x) Çü½ÄÀÇ °£¼±À» Ãß°¡ÇÒ ¼ö ¾ø´Ù. µû¶ó¼ h ÀÇ ºÎ¸ð f ·Î µÇµ¹¾Æ°¡¼ (f, x) Çü½ÄÀÇ °£¼±À» Ãß°¡ÇÏ·Á°í ½ÃµµÇÑ´Ù. ±×·¯³ª ¿©±â¼µµ ¿ª½Ã (f, x) Çü½ÄÀÇ °£¼±À» Ãß°¡ÇÒ ¼ö ¾øÀ¸¹Ç·Î, f ÀÇ ºÎ¸ð e ·Î µÇµ¹¾Æ°£´Ù. À̹ø¿¡´Â °£¼± (e, g) ¸¦ ¼º°øÀûÀ¸·Î Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ÀÌÁ¦´Â ´õ ÀÌ»óÀÇ °£¼±µéÀ» Ãß°¡ÇÒ ¼ö ¾øÀ¸¹Ç·Î, ¸¶Ä§³» »Ñ¸®·Î µÇµ¹¾Æ°¡°Ô µÇ°í, ÀÛ¾÷Àº ³¡ÀÌ ³´Ù.
¾Ë°í¸®Áò 7 Áß¿¡¼, óÀ½¿¡ ¼±ÅÃµÈ »Ñ¸®¸¦ ÇâÇØ °£¼±À» µû¶ó µÇµ¹¾Æ°¡´Â ¶óÀÎ ¶§¹®¿¡, ±íÀÌ ¿ì¼± °Ë»öÀ» ¹éÆ®·¡Å· (backtracking) À̶ó°íµµ ºÎ¸¥´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼´Â ¹®Á¦¸¦ Ç®±â À§ÇØ ¹éÆ®·¡Å·À» »ç¿ëÇÑ´Ù.
(¿¹Á¦ 9) 4-Äý ¹®Á¦
4-Äý ¹®Á¦´Â 4 × 4 ±×¸®µå »ó¿¡ ¾î¶°ÇÑ µÎ ÅäÅ«µµ µ¿ÀÏÇÑ Çà, ¿, ȤÀº ´ë°¢¼±¿¡ ³õÀÌÁö ¾Êµµ·Ï 4 °³ÀÇ ÅäÅ«À» À§Ä¡½ÃŰ´Â ¹®Á¦ÀÌ´Ù. 4-Äý ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ ¹éÆ®·¡Å· ¾Ë°í¸®ÁòÀ» ±¸¼ºÇÏ¿©¶ó (ÀÌ·± ¿ë¾î¸¦ »ç¿ëÇÑ ÀÌÀ¯´Â, À̰ÍÀÌ 4 × 4 ü½ºÆÇ¿¡¼ ¾î¶°ÇÑ Äýµµ ´Ù¸¥ ÄýÀ» °ø°ÝÇÒ ¼ö ¾øµµ·Ï 4 °³ÀÇ ÄýÀ» ¹èÄ¡ÇÏ´Â ¹®Á¦À̱⠶§¹®ÀÌ´Ù.)
¾Ë°í¸®ÁòÀÇ ±âº» »ý°¢Àº ¿¿¡ ÅäÅ«À» °è¼ÓÀûÀ¸·Î À§Ä¡½ÃŰ´Â °ÍÀÌ´Ù. ¾î¶² ¿¿¡ ÅäÅ«À» ¹èÄ¡ÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÒ ¶§´Â, µÇµ¹¾Æ°¡¼ ¾ÕÀÇ ¿ÀÇ ÅäÅ«ÀÇ À§Ä¡¸¦ Á¶Á¤ÇÑ´Ù.
(¾Ë°í¸®Áò 10) ¹éÆ®·¡Å·À» »ç¿ëÇÑ 4-Äý ¹®Á¦ÀÇ ÇØ°á ¹æ¹ý
ÀÌ ¾Ë°í¸®ÁòÀº 4 × 4 ±×¸®µå »ó¿¡ ¾î¶°ÇÑ µÎ ÅäÅ«µµ µ¿ÀÏÇÑ Çà, ¿, ȤÀº ´ë°¢¼±¿¡ ³õÀÌÁö ¾Êµµ·Ï 4 °³ÀÇ ÅäÅ«À» ¹èÄ¡ÇÏ´Â ¹æ¹ýÀ» ã±â À§ÇØ ¹éÆ®·¡Å·À» »ç¿ëÇÑ´Ù.
ÀÔ·Â: Å©±â 4 ÀÎ ÇàÀÇ ¹è¿
Ãâ·Â: true, ÇØ°áÃ¥ÀÌ ÀÖÀ¸¸é
false,
ÇØ°áÃ¥ÀÌ ¾øÀ¸¸é[¸¸¾à ÇØ°áÃ¥ÀÌ ÀÖÀ¸¸é, ¹øÂ° ÄýÀº ¿
, Çà
¿¡ ³õÀδÙ.]
procedure four_queens (row)
k : = 1 // 1 ¿¿¡¼ ½ÃÀÛ
// row (k) ´Â »ç¿ëµÇ±â Àü¿¡ Áõ°¡µÈ´Ù, µû¶ó¼ 1 Çà¿¡¼ ½ÃÀÛÇÑ´Ù.
row (1) : = 0
while k, > 0 do
begin
row(k) : = row(k) + 1
// k ¿¿¡¼ÀÇ ÇÕ¹ýÀûÀÎ À̵¿Á¡À» ã´Â´Ù.
while
row(k) 4 and k ¿, row(k) °¡ Ãæµ¹Çϸé, do
// ´ÙÀ½ Çà¿¡¼ ½ÃµµÇÑ´Ù.
row(k) : = row(k) + 1
if
row(k) 4 then //
k ¿¿¡¼ ÇÕ¹ýÀûÀÎ À̵¿Á¡À» ãÀ½.
if k = 4 then // ÇØ°áÃ¥ ¿Ï¼º
return(true)
else // ´ÙÀ½ ¿
begin
k : = k + 1
row(k) : = 0
end
else // ÀÌÀü ¿·Î µÇµ¹¾Æ°¨
k : = k - 1
end
returm(false) // ÇØ°áÃ¥ ¾øÀ½
end four_queens
¾Ë°í¸®Áò 10 ÀÌ »ý»êÇÏ´Â Æ®¸®¸¦ ±×¸² 3 ¿¡ ³ªÅ¸³»¾ú´Ù. ¹øÈ£´Â Á¤Á¡µéÀÌ »ý¼ºµÈ ¼ø¼¸¦ ³ªÅ¸³½´Ù. ÇØ°áÃ¥Àº Á¤Á¡ 8 ¿¡¼ ±¸ÇØÁ³´Ù. n-Äý ¹®Á¦´Â n × n ±×¸®µå »ó¿¡ ¾î¶°ÇÑ µÎ ÅäÅ«µµ µ¿ÀÏÇÑ Çà, ¿, ȤÀº ´ë°¢¼±¿¡ ³õÀÌÁö ¾Êµµ·Ï n °³ÀÇ ÅäÅ«À» À§Ä¡½ÃŰ´Â ¹®Á¦ÀÌ´Ù. 2-Äý ¶Ç´Â 3-Äý ¹®Á¦¿¡´Â ÇØ°áÃ¥ÀÌ ¾ø´Ù´Â °ÍÀ» º¸ÀÌ´Â °ÍÀº ¾î·ÆÁö ¾Ê´Ù (¿¬½À ¹®Á¦ 10). ¿ì¸®´Â ¹æ±Ý ¾Ë°í¸®Áò 10 ÀÌ 4-Äý ¹®Á¦¿¡ ´ëÇÑ ÇØ°áÃ¥À» »ý¼ºÇÏ´Â ¸¹Àº ¹æ¹ýÀÌ Á¦¾ÈµÇ¾ú´Ù (Âü°í ¹®Çå [Erbas] µîÀ» º¸¾Æ¶ó).
¹éÆ®·¡Å· Áï, ±íÀÌ ¿ì¼± °Ë»öÀº ¿øÇÏ´Â °ÍÀÌ ÇϳªÀÇ ÇØ°áÃ¥ÀÎ ¿¹Á¦ 9 ¿Í °°Àº ¹®Á¦¿¡¼´Â Ưº°È÷ ¸Å·ÂÀûÀÌ´Ù. ¸¸¾à ÇØ°áÃ¥ÀÌ Á¸ÀçÇÑ´Ù¸é, ÇØ°áÃ¥Àº ¸»´Ü Á¤Á¡¿¡¼ ±¸ÇØÁö¹Ç·Î, °¡´ÉÇÑ »¡¸® ¸»´Ü Á¤Á¡À¸·Î À̵¿ÇÏ´Â °Í¿¡ ÀÇÇØ¼ ºÒÇÊ¿äÇÑ Á¤Á¡µéÀ» »ý¼ºÇÏ´Â °ÍÀ» ÇÇÇÒ ¼ö ÀÖ´Ù.
±×¸² 3 4-Äý ¹®Á¦¿¡ ´ëÇÑ ÇØ°áÃ¥À» À§ÇÑ °Ë»ö¿¡¼ ¹éÆ®·¡Å· ¾Ë°í¸®Áò(¾Ë°í¸®Áò 10) ÀÌ »ý¼ºÇÏ´Â Æ®¸®