|
NP-¿ÏÀü¼º°ú º¯È¯¼º
|
|
¡á NP-¿ÏÀü¼º°ú º¯È¯¼º
- NP-¿ÏÀü¼º(completeness) ÀÌ·ÐÀº ´ÙÇ×½Ä
½Ã°£ÀÇ ¾Ë°í¸®ÁòÀ» °³¹ßÇÏÁö ¸øÇÑ ¹®Á¦µéÀÇ ¼ºÁúÀ» ±Ô¸íÇÏ·Á´Â
³ë·ÂÀÇ °á°úÀÌ´Ù.
- NP-¿ÏÀü¼º ÀÌ·ÐÀº Áö³ ¼ö½Ê³â°£ °¡Àå
Áß¿äÇÑ ÀÌ·ÐÀû ¹ßÀüÀÇ Çϳª·Î ´ÙÇ×½Ä ½Ã°£ ¾Ë°í¸®ÁòÀ» °³¹ßÇÏÁö
¸øÇÏ´Â ¸¹Àº ¹®Á¦µéÀÌ ¼·Î °è»êÀûÀ¸·Î ¿¬°üÀ» °¡Áø´Ù´Â
»ç½ÇÀ» ÀÔÁõÇÏ¿´´Ù.
¡á ºñ°áÁ¤·ÐÀû(nondeterministic) ¾Ë°í¸®Áò
- ¿¬»êÀÇ °á°ú°¡ À¯ÀÏÇÏ°Ô Á¤ÀǵǴ ¾Ë°í¸®ÁòÀ»
°áÁ¤·ÐÀû ¾Ë°í¸®ÁòÀ̶óÇÔ
- ¾Ë°í¸®ÁòÀÇ °á°ú°¡ À¯ÀÏÇÏÁö ¾ÊÀº ¿¬»êÀ»
°¡Áú ¼ö ÀÖµµ·Ï, Áï, ¿¬»ê°á°úÀÇ ÁýÇÕ Áß Çϳª¸¦ ¼±ÅÃÇÒ
¼ö ÀÖµµ·Ï Çã¿ëÇÑ ¾Ë°í¸®ÁòÀ» ºñ°áÁ¤·ÐÀû ¾Ë°í¸®ÁòÀ̶ó
ÇÑ´Ù. ÀÌ ¾Ë°í¸®Áò¿¡¼´Â ´ÙÀ½ 3°³ÀÇ ¿¬»êÀ» Ãß°¡·Î
Çã¿ëÇÑ´Ù.
(1)
choice(S) ... ÁýÇÕ SÀÇ ¿ø¼Ò Áß Çϳª¸¦ ÀÓÀÇ·Î
¼±ÅÃÇÑ´Ù.
(2)
failure ... ¾Ë°í¸®ÁòÀÌ
½ÇÆзΠ³¡³µÀ½À» ¾Ë¸°´Ù.
(3)
success ... ¾Ë°í¸®ÁòÀÌ ¼º°øÀûÀ¸·Î
³¡³µÀ½À» ¾Ë¸°´Ù.
|
- ¿¹¸¦ µé¸é x=choice(1..n)À̶ó´Â ¿¬»êÀ»
¼öÇàÇÏ¸é ¿¬»ê°á°ú·Î x´Â [1..n]ÀÇ ÀÓÀÇÀÇ Á¤¼ö °ªÀ» °®°Ô
µÈ´Ù. choice(S) ¿¬»êÀÇ Æ¯¼ºÀº ¸¸ÀÏ ¾Ë°í¸®ÁòÀ» ¼º°øÀûÀ¸·Î
¼öÇàÇÏ´Â ¼±ÅÃÀÌ ÀÖÀ» °æ¿ì´Â Ç×»ó ±× ¼±Åà Áß Çϳª¸¦ ÅÃÇÏ¿©
¾Ë°í¸®ÁòÀ» ¼º°øÀûÀ¸·Î ³¡³»¸ç, ±×·¯ÇÑ ¼±ÅÃÀÌ ¾øÀ»
°æ¿ì¿¡¸¸ ½ÇÆзΠ³¡³»°Ô µÈ´Ù. ©ç,©è,©éÀÇ °è»ê½Ã°£Àº O(1)ÀÌ´Ù.
¢º (¿¹Á¦) A[0..n-1]¿¡¼
x¸¦ ã´Â ºñ°áÁ¤·ÐÀû ¾Ë°í¸®Áò n°³ÀÇ ¿ø¼Ò¸¦ °®´Â
¹è¿ A¿¡ x Æ÷ÇԵǾî ÀÖ´Â °æ¿ì ±× ÀÎÅؽº¸¦ ÇÁ¸°Æ®ÇÏ°í
±×·¸Áö ¾ÊÀº °æ¿ì -1À» ÇÁ¸°Æ® ÇÑ´Ù.
-------------------------------------------------------------------
j
= choice(0..n-1)
if
( A(j)=x ) {printf(j); success;}
printf
('-1'); failure
-------------------------------------------------------------------
- choice(S) ¿¬»êÀ» ÇàÇÒ ¼ö ÀÖ´Â ±â°è´Â
Çö½ÇÀûÀ¸·Î Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª ¹«Á¦ÇÑ º´·Ä¼ºÀÌ Çã¿ëµÈ´Ù¸é
choice() ÇÔ¼ö°¡ ¼öÇàµÉ ¶§, °¢ ¼±Åà °á°ú¸¶´Ù ÇϳªÀÇ Ã³¸®±â(processor)¸¦
ÇÒ´çÇÏ¿© °¢ ¼±Åà °á°ú¸¦ ¼±ÅÃÇÏ¿© °è»êÀ» ÁøÇàÇÏ°Ô
ÇÏ¿© ¼·Î ´Ù¸¥ 󸮱Ⱑ °¢ ¼±Åà °á°ú¸¦ °¡Áö°í º´·ÄÀûÀ¸·Î
¼öÇàÇÏ¿© À̵é Áß¿¡¼ °¡Àå ¸ÕÀú ¼º°øÀûÀ¸·Î Á¾·áÇϴ ó¸®±â°¡
´Ù¸¥ ¸ðµç 󸮱âÀÇ °è»êÀ» ³¡³»°Ô ÇÏ´Â ¹æ¹ýÀÌ ÀÖÀ» ¼ö
ÀÖ´Ù.
- ºñ°áÁ¤·ÐÀû ¾Ë°í¸®Áò¿¡¼ Choice() ÇÔ¼ö´Â
¸Å¹ø ¼±ÅÃÀ» ÇؾßÇÒ ¶§¸¶´Ù ÁÖ¾îÁø ¼±Åà °¡´ÉÇÑ ÁýÇÕÀ¸·ÎºÎÅÍ
¼º°øÀûÀÎ ¿ø¼Ò¸¦ ¼±ÅÃÇÏ´Â ´É·ÂÀ» °®´Â´Ù.
¢º (¿¹Á¦)
ºñ°áÁ¤·ÐÀû CNF¸¸Á·¼º ¾Ë°í¸®Áò(E, n)
-------------------------------------------------------------------
/*
ÀÔ·Â : E : ³í¸®½Ä
n : ³í¸®½Ä ³»ÀÇ ¼·Î ´Ù¸¥
³í¸® º¯¼öÀÇ ¼ö
Ãâ·Â
: ³í¸®½ÄÀÌ ÂüÀÌ µÉ ¼ö ÀÖ´Â °æ¿ì ¼º°ø ¾Æ´Ï¸é ½ÇÆÐ
ÁÖ¾îÁø
³í¸®½Ä E°¡ ÂüÀÌ µÉ ¼ö ÀÖ´ÂÁö °áÁ¤ */
{
boolean x[n];
for ( i = 1; i <= n; i++ )
{ x[i] = choice (true,
false); }
if ( E(x[1], ..., x[n]) == true ) success;
else failure;
}
-------------------------------------------------------------------
|