| NP ¿ÏÀü ¹®Á¦ | ¿©·¯ °¡Áö NP ¿ÏÀü¹®Á¦ | NP-¿ÏÀü¼º°ú º¯È¯¼º |

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;

        }

-------------------------------------------------------------------