ðããã«ãã³ã°ã©ããšNPå®å š
ãªã€ã©ãŒã°ã©ã:
ãªã€ã©ãŒã°ã©ãã¯ãã°ã©ãã®å šãŠã®èŸºãäžåºŠã ãéãéè·¯ãããªãã¡ãªã€ã©ãŒéè·¯ãæã€ã°ã©ããæããŸãããªã€ã©ãŒéè·¯ãšã¯ãã°ã©ãã®ããé ç¹ããã¹ã¿ãŒãããå šãŠã®èŸºãäžåºŠã ãéã£ãŠæåã®é ç¹ã«æ»ãçµè·¯ã®ããšã§ãã
ããã°ã©ãããªã€ã©ãŒã°ã©ãã§ããããã®å¿ èŠååæ¡ä»¶ã¯ããã®ã°ã©ããé£çµã§ãããå šãŠã®é ç¹ã®æ¬¡æ°ïŒæ¥ç¶ãããŠãã蟺ã®æ°ïŒãå¶æ°ã§ããããšã§ãã
ããã«ãã³ã°ã©ã:
ããã«ãã³ã°ã©ãã¯ãã°ã©ãã®å šãŠã®é ç¹ãäžåºŠã ãéãéè·¯ãããªãã¡ããã«ãã³éè·¯ãæã€ã°ã©ããæããŸããããã«ãã³éè·¯ãšã¯ãã°ã©ãã®ããé ç¹ããã¹ã¿ãŒãããå šãŠã®é ç¹ãäžåºŠã ãéã£ãŠæåã®é ç¹ã«æ»ãçµè·¯ã®ããšã§ãã
ããã«ãã³ã°ã©ãã§ãããã©ãããå€å®ããäžè¬çãªæ¡ä»¶ã¯ååšããªããããäžããããã°ã©ããããã«ãã³ã°ã©ãã§ãããã©ãããå€å®ããã®ã¯NPå®å šåé¡ã§ãã
ã°ã©ãçè«ã§ã¯ããªã€ã©ãŒè»è·¡ïŒãŸãã¯ãªã€ã©ãŒã»ãã¹ïŒãšã¯ãæéã°ã©ãã®è»è·¡ã®ãã¡ããã¹ãŠã®èŸºãæ£ç¢ºã«äžåºŠã ã蚪ããè»è·¡ã®ããšã§ããïŒé ç¹ãå蚪ããããšã¯å¯èœïŒãåæ§ã«ããªã€ã©ãŒã»ãµãŒããããŸãã¯ãªã€ã©ãŒã»ãµã€ã¯ã«ãšã¯ãåãé ç¹ãå§ç¹ãšããåãé ç¹ãçµç¹ãšãããªã€ã©ãŒè»è·¡ã®ããšã§ããããããã¯ã1736幎ã«æåãªã±ãŒããã¹ãã«ã¯ã®7ã€ã®æ©ã®åé¡ã解ããŠããã¬ãªã³ãã«ãã»ãªã€ã©ãŒã«ãã£ãŠåããŠè°è«ãããããã®åé¡ãæ°åŠçã«èª¬æãããšæ¬¡ã®ããã«ãªãïŒ
ç»åã®ã°ã©ããäžãããããšãïŒå蟺ãã¡ããã©1åãã€èšªãããããªçµè·¯ïŒãããã¯ãµã€ã¯ã«ïŒåãé ç¹ãå§ç¹ãšãïŒåãé ç¹ãçµç¹ãšããçµè·¯ïŒãæ§æããããšã¯å¯èœãïŒ
ãªã€ã©ãŒã¯ïŒãªã€ã©ãŒåè·¯ãååšããããã®å¿
èŠæ¡ä»¶ã¯ïŒã°ã©ãã®ãã¹ãŠã®é ç¹ãå¶æ°æ¬¡ã§ããããšã§ããããšã蚌æãïŒãã¹ãŠã®é ç¹ãå¶æ°æ¬¡ã§ããé£çµã°ã©ãã¯ãªã€ã©ãŒåè·¯ãæã€ããšã蚌æãªãã«è¿°ã¹ãïŒãã®åŸè
ã®äž»åŒµã®æåã®å®å
šãªèšŒæã¯ã1873幎ã«Carl Hierholzerã«ãã£ãŠæ»åŸã«çºè¡šãããïŒ
é£çµã°ã©ãããªã€ã©ãŒã»ãµã€ã¯ã«ãæã€ã®ã¯ããã¹ãŠã®é ç¹ã®æ¬¡æ°ãå¶æ°ã§ããå Žåã«éãããã
ãªã€ã©ãŒã»ã°ã©ããšããçšèªã¯ãã°ã©ãçè«ã«ãããŠ2ã€ã®äžè¬çãªæå³ãæã€ã1ã€ã¯ãªã€ã©ãŒã»ãµã€ã¯ã«ãæã€ã°ã©ãã§ããããã1ã€ã¯ãã¹ãŠã®é ç¹ãå¶æ°ã®æ¬¡æ°ãæã€ã°ã©ãã§ããããããã®å®çŸ©ã¯é£çµã°ã©ãã§ã¯äžèŽãã[2]ã
ãªã€ã©ãŒåè·¯ãååšããããã«ã¯ã0åã2åã®é ç¹ãå¥æ°æ¬¡ã§ããããšãå¿ èŠã§ãããããã¯ã±ãŒããã¹ãã«ã¯ã»ã°ã©ãããªã€ã©ãŒåè·¯ã§ãªãããšãæå³ãããå¥æ°ã®æ¬¡æ°ãæã€é ç¹ã1ã€ããªãå Žåããªã€ã©ãŒã»ãã¬ã€ã«ã¯ãã¹ãŠåè·¯ã§ãããå¥æ°æ¬¡ã®é ç¹ãã¡ããã©2ã€ããã°ããã¹ãŠã®ãªã€ã©ãŒã»ãã¬ã€ã«ã¯ãã®ãã¡ã®1ã€ããå§ãŸãããã1ã€ã§çµããããªã€ã©ãŒçè»è·¡ãæã€ãããªã€ã©ãŒçåè·¯ãæããªãã°ã©ããåãªã€ã©ãŒçãšåŒã¶ã
ã°ã©ãçè«ã®æ°åŠåéã§ã¯ãããã«ãã³ã»ãã¹ïŒãŸãã¯è¿œè·¡å¯èœãã¹ïŒãšã¯ãç¡åã°ã©ããŸãã¯æåã°ã©ãã«ãããŠãåé ç¹ãã¡ããã©1å蚪ãããã¹ã®ããšã§ãããããã«ãã³ã»ãµã€ã¯ã«ïŒãŸãã¯ããã«ãã³åè·¯ïŒãšã¯ãåé ç¹ãã¡ããã©1å蚪ãããµã€ã¯ã«ã®ããšã§ãããé£æ¥ããé ç¹ã§å§ãŸããé£æ¥ããé ç¹ã§çµããããã«ãã³ã»ãã¹ã¯ãããã«1ã€ã®èŸºãè¿œå ããŠããã«ãã³ã»ãµã€ã¯ã«ã圢æããããšã§å®æãããããšãã§ããããã«ãã³ã»ãµã€ã¯ã«ããä»»æã®èŸºãåãé€ããšããã«ãã³ã»ãã¹ãã§ããããã®ãããªçµè·¯ãšãµã€ã¯ã«ãã°ã©ãã«ååšãããã©ããã決å®ããããšïŒããã«ãã³çµè·¯åé¡ãšããã«ãã³ãµã€ã¯ã«åé¡ïŒã¯ãNPå®å šã§ããã
ããã«ãã³ã»ãã¹ãšããã«ãã³ã»ãµã€ã¯ã«ã¯ãæ£åäºé¢äœã®èŸºã°ã©ãããããã«ãã³ã»ãµã€ã¯ã«ãèŠã€ãããšããã€ã³ã·ã¢ã³ã»ã²ãŒã ïŒçŸåšã¯ããã«ãã³ã®ããºã«ãšãåŒã°ããïŒãèæ¡ãããŠã£ãªã¢ã ã»ããŒã¯ã³ã»ããã«ãã³ã«ã¡ãªãã§åä»ãããããããã«ãã³ã¯ãã®åé¡ããåããããã«ãã³ãçºæããåå æ°ïŒã¯ã©ãŒã¿ããªã³ïŒãšå€ãã®é¡äŒŒç¹ãæã€ãåæ ¹ã«åºã¥ã代æ°æ§é ã§ããã€ã³ã·ã¢ã³åŸ®ç©åãçšããŠè§£ããããã®è§£æ³ã¯ä»»æã®ã°ã©ãã«ã¯äžè¬åããªãã
ããã«ãã³ã«ã¡ãªãã§åœåãããã«ãããããããå€é¢äœã«ãããããã«ãã³ãµã€ã¯ã«ã¯ããã®1幎åã«ããŒãã¹ã»ã«ãŒã¯ãã³ã«ãã£ãŠãç 究ãããŠãããç¹ã«ããã«ãã³ãµã€ã¯ã«ã®ãªãå€é¢äœã®äŸã瀺ããŠãã[1]ãããã«ä»¥åã«ã¯ããã§ã¹ç€ã®éšå£«ã®ã°ã©ãïŒãã€ããã¢ãŒïŒã«ãããããã«ãã³ãµã€ã¯ã«ãšãã¹ã¯ã9äžçŽã«ã€ã³ãã®æ°åŠã§ã«ãã©ã¿ã«ãã£ãŠããŸãåãé ã«ã€ã¹ã©ã æ°åŠã§ã¢ã«ã»ã¢ããªã»ã¢ã«ã»ã«ãŒãã«ãã£ãŠç 究ãããŠããã18äžçŽã®ãšãŒãããã§ã¯ãã¢ãã©ãã ã»ãã»ã¢ã¯ãã«ãšã¬ãªã³ãã«ãã»ãªã€ã©ãŒã«ãã£ãŠéšå£«ã®ãã¢ãŒãçºè¡šãããã
NPå®å šã®æ±ãæ¹ãæããŠãã ãã
NPå®å š (NP-Complete) åé¡ãèå¥ããæ¹æ³ã¯ãäž»ã«ä»¥äžã®ã¹ãããã«åŸããŸããNPå®å šåé¡ãšã¯ãNPïŒNon-deterministic Polynomial timeïŒã«å±ãããã€NPã®äžã§æããé£ãããåé¡çŸ€ãæããŸããã€ãŸãããã¹ãŠã®NPåé¡ããã®åé¡ã«å€é åŒæéã§åž°çå¯èœã§ããå Žåããã®åé¡ã¯NPå®å šã§ãããšãããŸãã
åé¡ãNPã«å±ããããšã瀺ã:
ãŸããäžããããåé¡ãNPã«å±ããããšã瀺ãå¿ èŠããããŸããNPåé¡ãšã¯ãããã蚌æ ãïŒãŸãã¯è§£ïŒãäžããããå Žåããã®è§£ãæ£ãããã©ãããå€é åŒæéã§æ€èšŒã§ããåé¡ã®ããšã§ãã
NPå°é£ïŒNP-HardïŒã§ããããšã瀺ã:
NPå°é£ã§ãããšã¯ããã¹ãŠã®NPåé¡ããã®åé¡ã«å€é åŒæéã§åž°çã§ããããšãæå³ããŸããããã瀺ãããã«ã¯ãæ¢ã«NPå°é£ã§ãããšèšŒæãããåé¡ããå§ãããã®åé¡ãå€é åŒæéã§äžããããåé¡ã«å€æããæ¹æ³ãèŠã€ããå¿ èŠããããŸãã
å€é åŒæéåž°ç:
ãã®ã¹ãããã§ã¯ãæ¢ç¥ã®NPå®å šåé¡ããæ°ããåé¡ãžãšãåž°çããè¡ããŸããåž°çãšã¯ãããåé¡ã®ã€ã³ã¹ã¿ã³ã¹ãå¥ã®åé¡ã®ã€ã³ã¹ã¿ã³ã¹ã«å€é åŒæéå ã§å€æããããšã§ããã€ãŸããããæ¢ç¥ã®NPå®å šåé¡ãæ°ããåé¡ã«å€é åŒæéã§å€æã§ããã°ããã®æ°ããåé¡ãNPå®å šã§ãããšèšŒæã§ããŸãã
å ·äœçãªåž°çã®äŸ:
å ·äœçã«ã¯ãæãããç¥ãããŠããNPå®å šåé¡ã®äžã€ã§ããããµãã£ã¹ãã¡ã€ã¢ããªãã£åé¡ïŒSATïŒãããå§ãããããæ°ããåé¡ã«å€é åŒæéã§å€æããæ¹æ³ãèŠã€ããããšãäžè¬çã§ããSATåé¡ã¯ãè«çåŒãäžãããããšãããã®è«çåŒãçã«ããå€æ°ã®å²ãåœãŠãååšãããã©ãããå€å®ããåé¡ã§ãã
NPå®å šåé¡ã蚌æããããšã¯ãã³ã³ãã¥ãŒã¿ç§åŠã«ãããéèŠãªç 究åéã®äžã€ã§ãããæ°ããåé¡ãNPå®å šã§ããããšã瀺ãããšã¯ããã®åé¡ã®èšç®è€éæ§ãç解ããäžã§éèŠãªæå³ãæã¡ãŸãããã®ããã»ã¹ãéããŠãç¹å®ã®åé¡ã«å¯Ÿããå¹ççãªã¢ã«ãŽãªãºã ã®ååšã®å¯èœæ§ãæ¢æ±ããããšãã§ããŸãã
NPå®å šããå€å¥ããpyuthonã©ã€ãã©ãªã¯ãããŸããïŒ
NPå®å
šåé¡ãèå¥ããããã®çŽæ¥çãªPythonã©ã€ãã©ãªã¯ååšããŸãããNPå®å
šæ§ãå€æããéçšã¯ãäžè¬çã«ã¯æ°åŠçãªèšŒæã«åºã¥ããŠãããç¹å®ã®åé¡ãNPå®å
šã§ãããã©ãããèªåçã«è©äŸ¡ããã¢ã«ãŽãªãºã ãããŒã«ã¯ãããŸããã
ãé¡ãèŽããŸã