ãã®èšäºã§ã¯ãDAG (æåéå·¡åã°ã©ã) ãšåæ£å°åž³ã«ããããã®å¿çšã«ã€ããŠèª¬æãããããã¯ãã§ãŒã³ãšæ¯èŒããŸãã
DAG ã¯ãæå·é貚ã®äžçã§ã¯æ°ãããã®ã§ã¯ãããŸããã ãããã¯ãã§ãŒã³ã®ã¹ã±ãŒã©ããªãã£åé¡ã®è§£æ±ºçãšããŠèããããšããããããããŸããã ããããä»æ¥ç§ãã¡ã¯ã¹ã±ãŒã©ããªãã£ã«ã€ããŠã§ã¯ãªããä»®æ³é貚ãä»ã®ãã®ãšç°ãªãç¹ãã€ãŸãåæ£åã仲ä»è
ã®æ¬ åŠãæ€é²ãžã®èæ§ã«ã€ããŠè©±ããŸãã
ãŸããDAG ã¯å®éã«ã¯æ€é²ã«å¯ŸããŠããèæ§ããããå°åž³ã«ã¢ã¯ã»ã¹ããããã®ä»²ä»è
ãååšããªãããšã瀺ããŸãã
ç§ãã¡ãããç¥ã£ãŠãããããã¯ãã§ãŒã³ã§ã¯ããŠãŒã¶ãŒã¯å°åž³èªäœã«çŽæ¥ã¢ã¯ã»ã¹ã§ããŸããã å°åž³ã«ãã©ã³ã¶ã¯ã·ã§ã³ãè¿œå ãããå Žåã¯ããããã¯ãããã¥ãŒãµãŒ (å¥åããã€ããŒã) ã«ããããäŸé Œãããå¿
èŠããããŸãã ã©ã®ãã©ã³ã¶ã¯ã·ã§ã³ã次ã®ãããã¯ã«è¿œå ããããã©ã®ãã©ã³ã¶ã¯ã·ã§ã³ãè¿œå ããªããã決å®ããã®ã¯ãã€ããŒã§ãã ãããã¯ãžã®æä»çã¢ã¯ã»ã¹ãæã¡ã誰ã®ãã©ã³ã¶ã¯ã·ã§ã³ãå°åž³ã«å«ãããã決å®ããæš©å©ãæã€ã®ã¯ãã€ããŒã§ãã
ãã€ããŒã¯ããªããšåæ£å°åž³ã®éã«ç«ã€ä»²ä»è ã§ãã
å®éã«ã¯ãéåžžãå°æ°ã®ãã€ã㌠ããŒã«ããããã¯ãŒã¯ã®èšç®èœåã®åå以äžãéåçã«å¶åŸ¡ããŸãã ãããã³ã€ã³ã®å Žå㯠XNUMX ã€ã®ããŒã«ãã€ãŒãµãªã¢ã ã®å Žå㯠XNUMX ã€ã®ããŒã«ã§ãã 圌ããå
±è¬ããã°ãæãããããååŒããããã¯ããããšãã§ããŸãã
éå»æ°å¹Žéã«ããã£ãŠããããã¯ãããã¥ãŒãµãŒãéžæããååãç°ãªãããããã¯ãã§ãŒã³ã®å€ãã®ããªãšãŒã·ã§ã³ãææ¡ãããŠããŸããã ãããããããã¯ãããã¥ãŒãµãŒèªäœã¯ã©ãã«ãè¡ãããäŸç¶ãšããŠãéå£ã«ç«ã£ãŠããããŸãŸã§ãããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãããã¯ãããã¥ãŒãµãŒãééããå¿
èŠãããããããã¯ãããã¥ãŒãµãŒããããåãå
¥ããªãå Žåããã©ã³ã¶ã¯ã·ã§ã³ã¯å®éã«ã¯ååšããŸããã
ããã¯ãããã¯ãã§ãŒã³ã§ã¯é¿ããããªãåé¡ã§ãã ããã解決ãããå Žåã¯ãèšèšãæ ¹æ¬çã«å€æŽãããããã¯ãšãããã¯ãããã¥ãŒãµãŒãå®å
šã«åé€ããå¿
èŠããããŸãã ãããŠããããã¯ã®ãã§ãŒã³ãæ§ç¯ãã代ããã«ãåãã©ã³ã¶ã¯ã·ã§ã³å
ã®ä»¥åã®ããã€ãã®ããã·ã¥ãå«ããã©ã³ã¶ã¯ã·ã§ã³èªäœãæ¥ç¶ããŸãã ãã®çµæãæ°åŠã§æåéå·¡åã°ã©ã (DAG) ãšããŠç¥ãããæ§é ãåŸãããŸãã
ããã§ã誰ãã仲ä»è ãªãã§ã¬ãžã¹ããªã«çŽæ¥ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããã ãã©ã³ã¶ã¯ã·ã§ã³ãå°åž³ã«è¿œå ããå Žåã¯ããããè¿œå ããã ãã§ãã ããã€ãã®èŠªãã©ã³ã¶ã¯ã·ã§ã³ãéžæããããŒã¿ãè¿œå ãããã©ã³ã¶ã¯ã·ã§ã³ã«çœ²åããŠãããã¯ãŒã¯äžã®ãã¢ã«éä¿¡ããŸãã æºåãã§ããŠã ãããæ¢ãã人ã¯èª°ãããªãã®ã§ãããªãã®ååŒã¯ãã§ã«å°åž³ã«èšé²ãããŠããŸãã
ããã¯ã仲ä»è ãä»ããã«å°åž³ã«ãã©ã³ã¶ã¯ã·ã§ã³ãè¿œå ããããã®ãæãåæ£åãããæãæ€é²ã«åŒ·ãæ¹æ³ã§ãã ãªããªãã誰ãã誰ã®èš±å¯ãæ±ããã«èªåã®ãã©ã³ã¶ã¯ã·ã§ã³ãã¬ãžã¹ããªã«è¿œå ããã ãã ããã§ãã
DAG ã¯ãã¬ãžã¹ããªã®é²åã«ããã第 XNUMX 段éãšèããããšãã§ããŸãã ãŸããäžå
åãããã¬ãžã¹ããªããããäžæ¹ã®åœäºè
ãã¬ãžã¹ããªãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ããŠããŸããã ãã®åŸãå°åž³ã«ååŒãèšé²ããè€æ°ã®ç®¡çè
ããã§ã«ååšãããããã¯ãã§ãŒã³ãç»å ŽããŸããã ãããŠæåŸã«ãDAG ã«ã¯ã³ã³ãããŒã©ãŒããŸã£ãããªãããŠãŒã¶ãŒããã©ã³ã¶ã¯ã·ã§ã³ãçŽæ¥è¿œå ããŸãã
ç§ãã¡ã«ã¯ãã®èªç±ãããã®ã§ããããæ··ä¹±ãæãããšã¯ãªãã¯ãã§ãã ã¬ãžã¹ããªã®ç¶æ
ã«ã€ããŠåæããå¿
èŠããããŸãã ãããŠããã®åæããŸãã¯ã³ã³ã»ã³ãµã¹ã¯ãéåžžã次㮠XNUMX ã€ã®ããšã«ã€ããŠã®åæãæå³ããŸãã
- äœãèµ·ãã£ãã®ãïŒ
- ã©ã®ãããªé åºã§ãããèµ·ãã£ãã®ã§ããããïŒ
æåã®è³ªåã«ã¯ç°¡åã«çããããšãã§ããŸããæ£ããäœæããããã©ã³ã¶ã¯ã·ã§ã³ãå°åž³ã«è¿œå ããããšããã©ã³ã¶ã¯ã·ã§ã³ã¯çºçããããšã«ãªããŸãã ãããŠæéã ããã«é¢ããæ å ±ã¯ãããŸããŸãªã¿ã€ãã³ã°ã§ãã¹ãŠã®åå è ã«å±ãå¯èœæ§ããããŸãããæçµçã«ã¯ãã¹ãŠã®ããŒãããã®ãã©ã³ã¶ã¯ã·ã§ã³ãåä¿¡ãããããçºçããããšãç¥ãããšã«ãªããŸãã
ããããããã¯ãã§ãŒã³ã§ããã°ãäœãèµ·ãããã¯ãã€ããŒã決ããããšã«ãªãã§ãããã ãã€ããŒããããã¯ã«å«ããããšã決å®ãããã®ã¯äœã§ãèµ·ãããŸãã 圌ããããã¯ã«å«ããªãããšã¯ãã¹ãŠèµ·ãããŸããã
ãããã¯ãã§ãŒã³ã§ã¯ããã€ããŒã¯ã³ã³ã»ã³ãµã¹ã«é¢ãã XNUMX çªç®ã®åé¡ãã€ãŸãé åºââã解決ããŸãã 圌ãã¯ããããã¯å ã®ãã©ã³ã¶ã¯ã·ã§ã³ãå¿ èŠã«å¿ããŠé åºä»ããããšãã§ããŸãã
DAG å ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®é åºã決å®ããã«ã¯ã©ãããã°ããã§ãã?
ã°ã©ãã«æ¹åæ§ããããšããã ãã§ããã§ã«ããçšåºŠã®ç§©åºãåŸãããŠããŸãã åãã©ã³ã¶ã¯ã·ã§ã³ã¯ãXNUMX ã€ä»¥äžã®ä»¥åã®èŠªãã©ã³ã¶ã¯ã·ã§ã³ãåç
§ããŸãã 芪ã¯èªåã®äž¡èŠªãæããŸãã 芪ã¯æããã«åã®ãã©ã³ã¶ã¯ã·ã§ã³ã®åã«çŸããŸãã ããããã®ãã©ã³ã¶ã¯ã·ã§ã³ã芪åãªã³ã¯é·ç§»ã«ãã£ãŠå°éã§ããå Žåããã®ãã©ã³ã¶ã¯ã·ã§ã³ ãã§ãŒã³å
ã®ãã©ã³ã¶ã¯ã·ã§ã³éã®é åºãæ£ç¢ºã«ããããŸãã
ãã ãããã©ã³ã¶ã¯ã·ã§ã³éã®é åºã¯ãã°ã©ãã®åœ¢ç¶ã ãããåžžã«æ±ºå®ã§ããããã§ã¯ãããŸããã ããšãã°ãXNUMX ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãã°ã©ãã®äžŠååå²ã«ããå Žåã§ãã
ãã®ãããªå Žåã®ãããŸããã解決ããããã«ããããã泚æãããã€ããŒã«äŸåããŸãã ç§ãã¡ã¯åœŒããã蚌人ããšãåŒã³ãŸãã ãããã¯éåžžã®ãŠãŒã¶ãŒã§ããããã®ä»»åã¯ãã©ã³ã¶ã¯ã·ã§ã³ãåžžã«ç§©åºããæ¹æ³ã§ãããã¯ãŒã¯ã«éä¿¡ããããšã§ãã ãã®ããã芪åãªã³ã¯ã«æ²¿ã£ãé·ç§»ã«ãã£ãŠä»¥åã®åãã©ã³ã¶ã¯ã·ã§ã³ã«å°éã§ããããã«ãªããŸãã 泚æãããã€ããŒã¯ä¿¡é Œã§ãããŠãŒã¶ãŒã§ããããããã¯ãŒã¯å
šäœããã®ã«ãŒã«ã«éåããªãããšãä¿¡é ŒããŠããŸãã ããããã« åçç㫠圌ããä¿¡é ŒããŠããã ãããã«ãå泚æãããã€ããŒã¯æ¢ç¥ã® (å¿åã§ã¯ãªã) å人ãŸãã¯çµç¹ã§ããããšããŸãè©å€ãä¿¡é Œã«åºã¥ãããžãã¹ãªã©ãã«ãŒã«ã«éåããå Žåã«äœãã倱ãããšãèŠæ±ããŠããŸãã
泚æãããã€ããŒã¯ãŠãŒã¶ãŒã«ãã£ãŠéžæãããåãŠãŒã¶ãŒã¯ãããã¯ãŒã¯ã«éä¿¡ãããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã«ä¿¡é Œã§ãããããã€ããŒã®ãªã¹ããå«ããŸãã ãã®ãªã¹ã㯠12 ã®ãããã€ããŒã§æ§æãããŠããŸãã ããã¯ãå人ãå泚æè
ã®èº«å
ãšè©å€ã確èªããã«ã¯ååãªæ°ã§ãããå°æ°ã®æ³šæãããã€ããŒã§é¿ããããªãåé¡ãçºçããå Žåã§ããããã¯ãŒã¯ãåäœãç¶ããããšãä¿èšŒããã«ã¯ååã§ãã
ãã®ãããã€ããŒã®ãªã¹ãã¯ãŠãŒã¶ãŒããšã«ç°ãªããŸãããé£æ¥ãããã©ã³ã¶ã¯ã·ã§ã³ã®ãªã¹ãã¯æ倧 XNUMX ã€ã®ãããã€ããŒã«ãã£ãŠç°ãªãå ŽåããããŸãã
泚æãããã€ããŒãã§ããã®ã§ããã®ãã©ã³ã¶ã¯ã·ã§ã³ã DAG ã«åé¢ããããããäœæãã泚æã«åºã¥ããŠä»ã®ãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã泚æã§ããŸãã ãã®ãããªã¢ã«ãŽãªãºã ãäœæããããšã¯å¯èœã§ã (ã.
ãããããããã¯ãŒã¯å šäœã®é åºãå³åº§ã«æ±ºå®ããããšã¯ã§ããŸããã泚æãããã€ããŒãéå»ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®æçµçãªé åºã確èªããããã«ååãªæ°ã®ãã©ã³ã¶ã¯ã·ã§ã³ãéä¿¡ããã®ã«æéãå¿ èŠã§ãã
ãŸããé åºã¯ DAG å ã®ãããã€ããŒã®ãã©ã³ã¶ã¯ã·ã§ã³ã®äœçœ®ã«ãã£ãŠã®ã¿æ±ºå®ãããããããããã¯ãŒã¯äžã®ãã¹ãŠã®ããŒãã¯é ããæ©ãããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ãåä¿¡ãããã©ã³ã¶ã¯ã·ã§ã³ã®é åºã«é¢ããŠåãçµè«ã«éããŸãã
ãããã£ãŠãäœãèµ·ãã£ããšèãããã«ã€ããŠã¯åæããããŸããã€ãŸããDAG ã«å°éãããã©ã³ã¶ã¯ã·ã§ã³ã¯ãã¹ãŠçºçãããšããããšã§ãã ãŸããã€ãã³ãã®é åºã«ã€ããŠãåæããŠããŸããããã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®é¢ä¿ããæããã§ãããã泚æãããã€ããŒã«ãã£ãŠéä¿¡ããããã©ã³ã¶ã¯ã·ã§ã³ã®é åºããæšæž¬ãããŸãã ãããã£ãŠãç§ãã¡ã¯ã³ã³ã»ã³ãµã¹ãæã£ãŠããŸãã
Obyte ã«ã¯ãã®ããŒãžã§ã³ã®ã³ã³ã»ã³ãµã¹ããããŸãã Obyte å°åž³ãžã®ã¢ã¯ã»ã¹ã¯å®å
šã«åæ£åãããŠããŸããããã©ã³ã¶ã¯ã·ã§ã³ã®é åºã«é¢ããã³ã³ã»ã³ãµã¹ã¯äŸç¶ãšããŠéäžåãããŠããŸãã 10 ãããã€ããŒã®ãã¡ 12 ãããã€ããŒã¯äœæè
(Anton Churyomov) ã«ãã£ãŠç®¡çãããŠããããã®ãã¡ç¬ç«ãããããã€ããŒã¯ XNUMX ã€ã ãã§ãã ç§ãã¡ã¯ãå°åž³ã®æ³šæã®åæ£åãæ¯æŽããç¬ç«ãã泚æãããã€ããŒã® XNUMX ã€ã«ãªãæ欲ã®ããåè£è
ãæ¢ããŠããŸãã
æè¿ããªãŒã㌠ãããã€ã㌠ããŒãã®èšçœ®ãšç¶æã«æ欲ã瀺ã XNUMX çªç®ã®ç¬ç«ããåè£è ããã³ã·ã¢å€§åŠãçŸããŸããã
ã§ã¯ãäºéæ¯åºãã©ã®ããã«ã³ã³ãããŒã«ããã°ããã®ã§ãããã?
ã«ãŒã«ã«ããã°ãXNUMX ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãåãã³ã€ã³ã䜿çšããŠããããšãå€æããå Žåããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã®æåŸã®é åºã§æåã«æ¥ããã©ã³ã¶ã¯ã·ã§ã³ãåã¡ãšãªããŸãã XNUMX çªç®ã®ãã®ã¯ã³ã³ã»ã³ãµã¹ ã¢ã«ãŽãªãºã ã«ãã£ãŠç¡å¹ã«ãªããŸãã
åãã³ã€ã³ã䜿çšãã XNUMX ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³é㧠(芪åæ¥ç¶ãéããŠ) é åºã確ç«ã§ããå Žåããã¹ãŠã®ããŒãã¯ãã®ãããªäºéæ¯æãã®è©Šã¿ãå³åº§ã«æåŠããŸãã
ãã®ãã㪠XNUMX ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³éã®èŠªé¢ä¿ãã泚æã衚瀺ãããªãå Žåããããã¯äž¡æ¹ãšãå°åž³ã«åãå
¥ãããã泚æãããã€ããŒã䜿çšããŠãã©ã³ã¶ã¯ã·ã§ã³éã®åæãšæ³šæã®ç¢ºç«ãåŸ
ã€å¿
èŠããããŸãã ãã®å Žåãåã®ãã©ã³ã¶ã¯ã·ã§ã³ãåã¡ãšãªããXNUMX çªç®ã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯ç¡å¹ã«ãªããŸãã
XNUMX çªç®ã®ãã©ã³ã¶ã¯ã·ã§ã³ãç¡å¹ã«ãªã£ãŠãããããåç
§ããåŸç¶ã®ãã©ã³ã¶ã¯ã·ã§ã³ããã§ã«ååšããŠãããäœãéåããŠãããããã®ãã©ã³ã¶ã¯ã·ã§ã³ãå°æ¥ç¡å¹ã«ãªãããšãèªèããŠããªãã£ãããã«ããã©ã³ã¶ã¯ã·ã§ã³ã¯ã¬ãžã¹ããªã«æ®ããŸãã ããããªããšãåŸç¶ã®é©åãªãã©ã³ã¶ã¯ã·ã§ã³ã®èŠªãåé€ããå¿
èŠããããããã¯ãæ£ãããã©ã³ã¶ã¯ã·ã§ã³ãå°åž³ã«åãå
¥ãããããšãããããã¯ãŒã¯ã®äž»ååã«éåããããšã«ãªããŸãã
ããã¯ãã·ã¹ãã å
šäœãæ€é²ã®è©Šã¿ã«èããããããã«ããéåžžã«éèŠãªã«ãŒã«ã§ãã
ãã¹ãŠã®æ³šæãããã€ããŒãå ±è¬ããŠãXNUMX ã€ã®ç¹å®ã®ååŒããæ€é²ãããããšããŠãããšæ³åããŠã¿ãŸãããã 圌ãã¯ãããç¡èŠãããã©ã³ã¶ã¯ã·ã§ã³ã®ã芪ããšããŠæ±ºããŠéžæããããšã¯ã§ããŸããããããã ãã§ã¯ååã§ã¯ãªãããã©ã³ã¶ã¯ã·ã§ã³ã¯ãå ±è¬ããŠããªããããã¯ãŒã¯äžã®ä»»æã®ãŠãŒã¶ãŒã«ãã£ãŠçºè¡ãããä»ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®èŠªãšããŠéæ¥çã«å«ãŸããå¯èœæ§ããããŸãã æéãçµã€ã«ã€ããŠããã®ãããªååŒã¯äžè¬ãŠãŒã¶ãŒãããŸããŸãå€ãã®åãå«ãã²å«ãåãåããéªã ããŸåŒã«å¢å ãããã¹ãŠã®åæããã泚æãããã€ããŒããããã®ååŒãç¡èŠããªããã°ãªããªããªãã§ãããã æçµçã«ã¯ãããã¯ãŒã¯å šäœãæ€é²ããªããã°ãªããªããªãããããã¯åŠšå®³è¡çºã«çããã
ãã®ããã«ããŠãããšã泚æãããã€ããŒéã«å
±è¬ããã£ããšããŠããDAG ã¯æ€é²èæ§ãç¶æããããããã€ããŒããã©ã³ã¶ã¯ã·ã§ã³ãå«ããªããšæ±ºå®ããå Žåã«ã¯äœãã§ããªããšããæ€é²èæ§ãããã¯ãã§ãŒã³ãè¶
ããŸãã ããã¯ãDAG ã®äž»ãªç¹æ§ããå°ãããŸããã€ãŸããã¬ãžã¹ããªãžã®åå ã¯å®å
šã«ç¬ç«ããŠããã仲ä»è
ã¯ååšããããã©ã³ã¶ã¯ã·ã§ã³ã¯å
ã«æ»ããŸããã
åºæïŒ habr.com