
ãã®èšäºãæžããããšãã ãéºäŒçã¢ã«ãŽãªãºã ããšãããã¬ãŒãºã®habrapoiskã¯æ°é«ã空èãè£åã£ãŠããŸããã ããããäžååãªã¬ãã«*æ€é²ã«ãã£ãŠåãåããã*ã¯åºçæ¥ãé ãããä»ããæ¥ãããããŠéå±ãªç©myãã®åŸããã®èšäºã¯äžçã«èªåèªèº«ã瀺ãæ©äŒãåŸãŸããã ãã®æéäžã«ãé¡äŒŒã®ãããã¯ã«é¢ããå°ãªããšã3ã€ã®ïŒå€ãã®äººãç§ã®ç®ã«è§ŠããïŒèšäºãå ¬éãããŸããã以äžã®æç« ãåããŠèªãããšã¯ãããããªãã§ãããã ãã®ãããªäººã ã«ã¯ãGAãç§åŠçããã³ç§åŠçã«èª¬æããããã®æªçµéšã®è¥è ã®æ¬¡ã®è©Šã¿ãã錻ãããã®ã§ã¯ãªããããã°ã©ãã³ã°ã²ãŒã Robocodeã®GAã«åºã¥ããããã®äœæã説æãã第2éšã®
ããŒã1 éºäŒçã¢ã«ãŽãªãºã ã®å¯¿åœãšä»äºã
é ãããå§ããŸãããã 察åŠããå¿ èŠãããã¿ã¹ã¯ã®ã»ãããããã€ããããŸãã ç§ãã¡ã®ç®æšã¯ã Given ïŒã¿ã¹ã¯ã®åææ¡ä»¶ïŒãResponse ïŒã¿ãŒã²ããç¶æ ïŒã«å€æã§ããã¢ã¯ã·ã§ã³ãèŠã€ããããšã§ãã
ç¶æ³ãåçŽã§ããã®ãããªåé¡ã®è§£æ±ºçããããã®ãããã®å©ããåããŠæ¡ä»¶ããæ確ã«èšç®ã§ããå Žåãããã§ãç§ãã¡ã®ç¥æµãªãã§ãã¹ãŠãããŸã
ããŒããã©ããã£ãŠãã®ãããªç®æšãéæããã®ã§ããããïŒ
ç§ãã¡ã®ããã°ã©ã ã®äžçã®ç¥ã¯ç§ãã¡ã®ä»äºã§ãã ããã°ã©ã ã¯ãããä¿¡ãããããšäº€å°ŸããæäŒã®ãããããæ¬ã
ãã¢ãªã³ã°ããã°ã©ã ã®æè¡
ç§ãã¡ã®å€ãã¯ãããã°ã©ã ã§æŽåçãªæ§çè¡çºã䜿çšããããšãã匷ã欲æ±ãæã£ãŠãããšæããŸãã ããã§ã¯ããã®ãããªçš®ééžè±ãããåœã§ã¯å¥šå±ãããŠããªãããšãäºåã«èŠåããããšãäœåãªããããŠããŸãã ã«ããªãã¯æäŒã¯ãã¹ãŠãç§ãã¡ã«æ®ããŠããŸããçµå©åŸã®ããã°ã©ã ãåããããã°ã©ã ã§ã...ãããŠããã®æ°ã®æ¯ãªç·ãããªãã«ããŒã§ã«ã¯ãã«ãè²·ã£ããšããŠãã圌ãã¯ããŒãããŒãå€ããŸããã ããããç§ã¯åãã€ããŠããŸãããããŒã¬ã ã¿ã€ãã®äžå€«å€åŠ»å¶ã¯æŽ»æ³ãåããŠããŸãã ã¯ãããããŠãŸã ã以äžã®ãç¶ãããæ¯åããªã©ã®èšèã䜿çšããŠããã«ãããããããééåäœã®ããã°ã©ã ããããŸãã ãŸããè¿èŠªçžå§Šã...ããŒããç§ã¯* facepalm *æäŒã«ã€ããŠè©±ããŠããŸããã ããŠãããã«ã€ããŠã¯åŸã§ã
亀é ããã°ã©ã ã®åé¡ã¯ããã»ã©åçŽã§ã¯ãããŸããã é¢æ°ãæååãå€æ°ã®ã©ã³ãã ãªäº€æã¯ãã³ã³ãã€ã©/ã€ã³ã¿ãŒããªã¿ãŒããããªãã®ã¢ãã¬ã¹ãžã®æãããåèªã®å€ªãæµãã«ã€ãªããã決ããŠæ°ããããã°ã©ã ã§ã¯ãããŸããã ã€ãŸããããã°ã©ã ãæ£ããã¯ãã¹ããæ¹æ³ãèŠã€ããå¿ èŠããããŸãã è³¢ããããããã¡ãéãèŠã€ããŸããã ãããŠãã³ã³ãã€ã©ã®æ§é ãç 究ããè³¢ãå°å¹Žå°å¥³ãããã§ã«æšæž¬ããŠããŸããã ã¯ããããã¯æ§æããªãŒã§ãã
ç§ã¯ããã«ç±æã§æ»ã«ãŸããç§ãã¡ã®ã²ãã¯ãŸã ããã»ã©å€ªããªãã®ã§ãæãåçŽãªã¿ã€ãã®ããã°ã©ã ã䜿çšããŸãã åžæãã人ã¯ç¡æ°ã®è±å¯ãªããã°ã©ãã³ã°ã®è°·ã«è¡ãããšãã§ããããã§ã¯ãã¹ãŠãåçŽã§ã-ããã°ã©ã ã¯åŒã§æ§æãããåŒã¯ããã€ãã®ã¢ãªãã£ãå€æ°ãå®æ°ãæã€åçŽãªé¢æ°ã§æ§æãããŠããŸãã ååŒã¯ãããã°ã©ã ã«ãã£ãŠè¿ãããå€ã®1ã€ãã«ãŠã³ãããŸãã
äŸïŒäºæ¬¡æ¹çšåŒã解ãããšããïŒããŸãæåããªãïŒ2ã€ã®åŒã®åã ã®ããã°ã©ã ã®æ£æ¹åœ¢ïŒ
function square(a, b, c){ x1 = min(sin(b)*(a+1), 0); x2 = 3 + exp(log(b*a)); return {x1, x2}; }
ãã¬ãŒã³ããŒã·ã§ã³ã決å®ããŸãããä»ãã¹ãã¬ãŒãžãæ±ãå¿ èŠããããŸãã ãããã®ããã°ã©ã ã®åšãã«ã¯ãã·ã¹ãã ã®ããéšåããå¥ã®éšåïŒäžè¬çã«èšãã°ãç§ã®å Žåã¯äžè¬ã«ç°ãªãèšèªã§æžãããŠããïŒã«è»¢éãããªã©ããŸã å€ãã®ãã³ã¹ãæ®ã£ãŠãããããå人ãããªãŒã®åœ¢ã§ä¿åããããšã¯ããŸããããŸãã䟿å©ã§ãã ãã䟿å©ãªæ¹æ³ïŒçæ³çã«ã¯æéã®ã¢ã«ãã¡ãããäžã®è¡ã®ã»ããïŒã§ãã¬ãŒã³ããŒã·ã§ã³ãè¡ãã«ã¯ãåã ã®ããªãŒã®ããã°ã©ã ã»ãããã³ãŒãå/ãã³ãŒãã®æ¹æ³ãåŠç¿ããå¿ èŠããããŸãã
æšã®ããã«èŠããããããã§ã¯ãªãããã
ãã®ãããããªãŒãæååãšããŠæ瀺ããå¿ èŠããããŸãã ããã§ã¯ãã«ã«ãããªãŒã®åã圹ç«ã¡ãŸãã æåã«ãããªãŒã«åé¡ãããé¢æ°ãå€æ°ãããã³å®æ°ã®ã»ããã決å®ããå¿ èŠããããŸãã å€æ°ãšå®æ°ã¯ããªãŒã®èã«å¯Ÿå¿ããã¿ãŒããã«ãé¢æ°ãšåŒã°ããŸã-ããªãŒã®æ®ãã®ïŒå éšïŒããŒããéã¿ãŒããã«ãšåŒã°ããŸãã é¢æ°ãç°ãªãæ°ã®åŒæ°ãæã€ããšãã§ãããšããäºå®ã«ã泚æãæã䟡å€ããããŸãããã®ããããã®ãããªç¥èïŒãã¢ãªãã£ããå°é家ã®å£ããéãã«æµããèšèïŒãæ¬åœã«å¿ èŠã§ãã çµæã¯ã次ã®ãããªãšã³ã³ãŒãããŒãã«ã§ãã
éç«¯æ« | ã¿ãŒããã« | ||||||
---|---|---|---|---|---|---|---|
ãã | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
ã¢ã€ã³ã³ | n | + | * | ãã | 2 | a | b |
ã¢ãªã㣠| 1 | 2 | 2 | 4 | 0 | 0 | 0 |
äŸ¡å€ | -{a1} | {a1} + {a2} | {a1} * {a2} | {a1}> {a2}ã®å Žå {a3}ïŒ{a4} | 2 | a | b |
ããã§ãnã+ã*ãifã¯é¢æ°ã§ãã 2-å®æ°; aãšbã¯å€æ°ã§ãã å®éã®åé¡ã§ã¯ããã®ãããªã»ãããš2次æ¹çšåŒã䜿çšããéã¿ä»ãããŒãã«ã¯è§£ããŸããã ãŸãããŒãã«ããé€ç®ãä»ã®é»ç€ºé²ã®ã·ããªãªãåé¿ããããã«ããã¹ãŠã®é¢æ°ã¯å®æ°ã®ã»ããå šäœïŒãŸãããŸãã¯åé¡ã§äœ¿çšããã»ããïŒã§å®çŸ©ããå¿ èŠããããšããäºå®ã«çæããå¿ èŠããããŸãã ãããŠãããªãã¯æ²¹æããã«åº§ã£ãŠããŒããã察æ°ããã£ããããããããã©ãããããèããªããã°ãªããŸããã ç§ãã¡ã¯èªãã«æã£ãŠãã人ã§ã¯ãããŸããããã®ãããªéžæè¢ãé€ããŠãç°¡åãªæ¹æ³ã§è¡ããŸãã
ãã®ããããã®ãããªããŒãã«ã䜿çšããŠãããªãŒããæååãžããŸãã¯ãã®éã«é¢æ°ãé§åããããšã¯åé¡ã§ã¯ãããŸããã ããšãã°ã次ã®ãããªè§£èªçšã®è¡ãåãåããŸããã

è¡šã«åŸã£ãŠãåèŠçŽ ãèå¥ããã¢ãªãã£ãæãåºããŸãã

ããŠãã¢ãªãã£ã®å©ããåããŠãé¢æ°ã®åŒæ°ãžã®åç §ãæŽçããŸãã

ãªã¹ãã®æåŸã®3ã€ã®èŠçŽ ã¯èª°ãå¿ èŠãšããããããã®å€ã¯é¢æ°ã®çµæã«åœ±é¿ãäžããªããšããäºå®ã«æ³šæããŠãã ããã ããã¯ããªã¹ãã«å«ãŸããèŠçŽ ã®æ°ãããªãŒããŒãã®æ°ãã¢ãªãã£ã«å¿ããŠåžžã«å€åãããšããäºå®ã«ããçºçããŸããã ãã®ããã誀ã£ãããªãŒã§èŠããããããçå®çªé»è©±ããããæ¹ãé©åã§ãã
æåã®èŠçŽ ã§ãã«ã¢ãããããšãåŒããªãŒãæã«æãããŸãïŒ

é¢æ°ã®å€ã¯ãããªãŒã®ååž°çãªèµ°æ»ã«ãã£ãŠèšç®ã§ããŸããããã¯æ¬¡ã®ããã«ãªããŸãã

ãç¶ããã®ç®ã¯ãããªæã
ç§ãã¡ã¯æãæãå Žæã«æ»ããŸã-亀差ç¹ãžã 亀é ããã°ã©ã ã§ã¯ã次ã®æ¡ä»¶ãèšå®ããŸãããŸãã2ã€ã®äº€é åäœã2ã€ã®åå«ãäžããŸãïŒã€ãŸããæ¯éå£ã®ãµã€ãºã¯äžå®ã§ãïŒã 第äºã«ã亀é ã®çµæãšããŠãåå«ã¯äž¡æ¹ã®èŠªã®ç¹æ§ãããçšåºŠææããå¿ èŠããããŸãïŒã€ãŸãããªã³ãŽã¯ãªã³ãŽã®æšããé ãé¢ããŠè»¢ãã£ãŠã¯ãããŸããïŒã ããã§ãããã°ã©ã ãã©ã®ããã«è¡šç€ºãããããããããŸãããããã¯ãã©ã€ã³ãŸãã¯ããªãŒã®ã³ã¬ã¯ã·ã§ã³ã§ãã ãããã£ãŠãæååãŸãã¯ããªãŒãšããŠäº€å·®ã§ããŸãã
æšãè¶ããããšã¯ãã©ã³ãã ã«éžæãããæã®äº€æã§ãã æååã®äº€å·®ã¯ãããã€ãã®æ¹æ³ã§å®è£ ã§ããŸããåäžç¹çµæãïŒåºåçæ¥çïŒãç¹ããç¹ãžã®çµæããèŠçŽ ããšã®äº€æãªã©ãåè©ãå«ãé·ãè€éãªæã§èšè¿°ã§ããŸãããå³ãäžç®ã§ååã«ç解ã§ããŸãã

åçµåã«ãããæ¥çã®å Žæãã©ã³ãã ã«éžæãããããšã¯æ³šç®ã«å€ããŸããèŠçŽ ããšã®äº€å·®ã®å Žåãšåæ§ã«ã亀æã¯ããçšåºŠã®ç¢ºçã§è¡ãããŸãã éºäŒã®èŠ³ç¹ããã®äº€é ã¯ææã«èŠããŸãããå®è£ ãããå°é£ã§ãã
ããããã®å¥³ã®åã¯ç§ãšäžç·ã§ãïŒ
ããã»ã¹ã®æã芪å¯ãªéšåãèŠã€ããŸããïŒèè ã®å人çãªç掻ãã©ãã»ã©è²§åŒ±ã§ãããããã®èšäºã§æ¢ã«å€ãæããŠããŸãïŒã ä»ãäžå¯Ÿã®å人éã®é¢ä¿ãããç§ãã¡ã¯ç€ŸäŒçåºç€ã«ç§»ããŸãã
å人ã¯äžä»£ã«åããããŸãã æ°äžä»£ã¯ãåäžä»£ã®å人ã®åäŸã§æ§æãããŠããŸãã çŸåšã®äžä»£ã®æ¯åãšåšãäžä»£ã®ç¶èŠªãšæ¯èŠªãç¥ç¶æ¯ãgreatç¥æ¯ãªã©ããŒãäžä»£ãŸã§ååšããŠããããšãããããŸã-èªãã«æã£ãŠãããã¹ãŠã®äººã ã®ç¥å ã çãŸããåŸã®æ°ããäžä»£ã®åå人ã¯åé¡ã解決ããããšããŸãããããã€ãã®ç¥ã®ãã£ãããã¹é¢æ°ã¯ãã®è¡åãè©äŸ¡ããè¥ã人ã®æŽ»åã®è©äŸ¡ã«å¿ããŠãå人ã¯åå«ãåçŸããæ©äŒãç²åŸããŸããã€ãŸããå±ãç¶ç¶ããããã«éžæãããäžä»£ã®æé«ã®ä»£è¡šè ãã¯ã©ã¹ã«å ¥ããŸãã ç§ãã¡ã®äžçã¯éé ·ã§æ®é ·ã§ããããžã¹ããã¢ã®ãã¹ãŠã®èŠç¯ïŒãŸãã¯ããªããæããã®ã¯äœã§ãFÃŒhrerã®èãã«ããã°ïŒãäžé©åãªéè·ãã䞡芪ã¯ãåå«ãç£ããšãã䜿åœãæãããåŸãã¬ãŒã³ããŒã²ã³ã§æ è¡ããåäŸã®ã«ããã«ã®ããã«ç掻空éã解æŸããŸãã åã©ããã¡ã¯èŠªã®è¶³è·¡ããã©ããäžä»£ããäžä»£ãžãšç¶ããŸãã
亀é ã®ã¯ã©ãŒã¿ãçºè¡ãããŸãã«ãã£ãããã¹é¢æ°ïŒãŸãã¯ãã£ãããã¹é¢æ°ïŒã¯ãåé¡ã解決ããå人ã®èœåãé©åã«è©äŸ¡ãããã®ãã£ãããã¹ã®æ°å€è¡šçŸãæäŸããå¿ èŠããããŸãïŒå€ãé«ãã»ã©ãããè¯ããã£ãããã¹ïŒã ããšãã°ããã®äºæ¬¡æ¹çšåŒã®å Žåãããã¯ãåã ã®ããã°ã©ã ã«ãã£ãŠèšç®ããã眮æå€x1ãx2ã«ã€ããŠãæ¹çšåŒã®å·ŠåŽã®å€ããŒãã«ã©ãã ãè¿ããã®å°ºåºŠã§ããå¯èœæ§ããããŸãã
ãã£ãããã¹é¢æ°ã¯ãåå人ã«ç¹å®ã®æ°ãäžãããã®æçšæ§ãšãã£ãããã¹ã瀺ããŸãã ãã®å€ã¯ãéžæïŒéžæïŒæé ã«åœ±é¿ããŸãããã®å人ããã®å€ãæã£ãŠããã»ã©ã亀差ãããã¢ïŒããã«ã¯è€æ°ïŒãèŠã€ããå¯èœæ§ãé«ããªããŸãã å®éã«ã¯ãäžä»£ã®ãã¹ãŠã®åäœã®é©å床ãèšç®ããåŸããããã®å€ãæ£èŠåãïŒåäœã®é©å床ã®åèšã1ã«çãããªãããã«ïŒããã¹ã®å Žæããšã«ããããæããïŒ0ãã1ã®ä¹±æ°ïŒã幞éãªãã®ã決å®ããŸãã ã¢ã«ãã¡ãªã¹ã¯èªåèªèº«ãããã€ãã®å Žæã«ç²åŸã§ããŸãããæè ã¯äœãç²åŸã§ããã

ç¹æ®ã«ã¯ä»ã®æ¹æ³ããããŸããããããã¯ãã¹ãŠäžè¬çãªã«ãŒã«ãé å®ããŠããŸããã€ãŸããåäœã®ãã£ãããã¹ãå€ããã°å€ãã»ã©ã亀é ã«åå ããªããã°ãªããŸããã äžä»£ã®æé«ã®ä»£è¡šè ãè¿œå ã®äººçã®åœ¢ã§ç¥åœãžã®å¥ä»ã®è³ãåãåããšããããã»ã¹ã«ãšãªãŒã䞻矩ã®ãªãã·ã§ã³ãå«ããããšãã§ããŸãïŒåœŒã¯åæã«åäŸãè²ãŠãããšãã§ããŸããã圌ã¯å€æŽãªãã§æ¬¡ã®äžä»£ã«ç§»ããŸãã ããã«ãããéåžžã«æåãããœãªã¥ãŒã·ã§ã³ã倱ãããšããªããªãã亀差ããéçšã§ç Žå£ãããå¯èœæ§ããããŸãã
çªç¶å€ç°ã«ã€ããŠãèšåããŸãã ãã®æäœã¯ãããã€ãã®å°ããªç¢ºçã§ã©ã³ãã ã«å人ã®ãã©ã°ã¡ã³ããå€æŽããéºäŒåããŒã«ã®å€æ§åãå¯èœã«ããŸãã 䟿å©ãªããšã¯ãçªç¶ãã®ãããªçªç¶å€ç°ãä¹³ç³ãåå²ããã®ã«åœ¹ç«ã¡ãŸãïŒ ããããã§ãªããã°ãããäžã€ã®æã¯äžèŠã§ã-ãããŠãããªãã®æ¥ã®çµãããŸã§ããã§èªåèªèº«ãèŠãããåå«ãäžããããšã¯ãŸã å°ãã®ãã£ã³ã¹ã§ãã
åµé ãšé»ç€ºé²
圌ãã¯äžä»£ããäžä»£ãžãšåãç¶ãããæ¹æ³ãèŠã€ããŸãããä»ãåé¡ã¯ãäœãæ ¹æ¬åå ã«ãªã£ãã®ã§ãããããã¯ã©ã®ããã«å§ãŸããŸãããïŒ ããªãã®äžçã®ãããšã¯å¯Ÿç §çã«ããã®ãããªããšã説æããããã«ãããã°ãã³ããã7æ¥éãã®ãããªããªãã¯ãæãã€ãå¿ èŠã¯ãããŸããã ããã§çãã¯éåžžã«æ確ã§ã-ããã¯ãã¹ãŠã©ã³ãã ã«äœæããããŒãäžä»£ããå§ãŸããŸããã ã¯ããã¯ããè¡/ããªãŒãã©ã³ãã ã«çæããŸãã å¯äžã®èŠä»¶ã¯ãå人ã®æ£ç¢ºããšããããã©ãã ãæ¬ é¥ããããã§ã-誰ãæ°ã«ããŸãããéžæã¯ãã®ä»äºãããŸãã
ç§ãã¡ã®äžçã¯ãå¿ èŠãªéãååšããŸãã æºè¶³åºŠã®åºæºãèšå®ããååã«æ¥ãªåäœãçŸãããããã»ã¹ãåæ¢ããããäžä»£ã®åäœãã©ãã ã倧ããç°ãªããã確èªããŸãã äžä»£å šäœãäžåµæ§åçå ã§æ§æãããŠããå Žåããã以äžã®ãã¢ãªã³ã°ã®
ããïŒ ããã·ã£è³æ¥äžæïŒ çµæã¯äœã§ããïŒ
ãã®é åçãªèšèé£ãã§ç«ã¡æ¢ãŸã£ãŠæ¯ãè¿ããŸãïŒã€ãŸããäžåãïŒã èŠçŽãããšãéºäŒçã¢ã«ãŽãªãºã ã¯æ¬¡ã®ããã«ãªããŸãã
éºäŒçã¢ã«ãŽãªãºã ã®åã ã®åœ¢åŒã§åé¡ã®è§£æ±ºçãè¡šçŸããããšãåŠã¶-ç¹å®ã®ã¢ã«ãã¡ãããäžã®åºå®é·ã®ãªã¹ãã ãã®åŸããã£ãããã¹é¢æ°ãéžæããŸããããã«ãããå人ãè©äŸ¡ãããŒãäžä»£ãã©ã³ãã ã«çæã§ããŸãã ããã§ãèªç±ãªæã®ãµã€ã¯ã«ãå§ãŸããŸãïŒãããã®ããŒã¿ãã¢ã«åŸã£ãŠåœ¢æãããäžä»£ã®å人ã®ãã£ãããã¹ãèšç®ããïŒæè ã¯æšãŠãããã¢ã«ãã¡ãªã¹ã¯1ãã¢ã«éå®ãããŸããïŒãæ®ãã®ä»²éã¯ã2人ã®åäŸãç£ã¿ïŒçªç¶å€ç°ãä»å ãããŸãïŒãèªåèªèº«ã«æã眮ããŸãã ããã¯ãéžæãããã®ãèŠã€ããããå€æŽãç§ãã¡ãåã°ããã®ãããããããã¹ãŠã«é£œãããŸã§ç¶ããŸãã ããŠãã©ãããã°ã·ã§ã ã«ãªãã§è¡ãããšãã§ããŸãïŒ

ããŒã2 Robocodeãããã®ç»åã«ãããéºäŒçã¢ã«ãŽãªãºã ã®åœ¹å²ã
æåã®éšåãåŒããã蟌ãŸãããã®ã¯ãç§ãã¡å šå¡ãç²ããã®ã§ãç¹°ãè¿ãã¯ããŸããã äžéšã®å®è£ æ©èœãçç¥ããŠããŸãã
Robocodeã«ã€ããŠã¯ã habrahabr.ru / blogs / programmers_games / 59784ã§ç¢ºèªã§ããŸãïŒåçã¯å€±ãããŠããŸãïŒã ã€ãŸããããã¯ããšããšJavaèšèªã®æ©èœãåŠç¿ããããã«äœæãããããã°ã©ãã³ã°ã²ãŒã ã§ãããåå è ã¯ç¬èªã®ããããããããäœæãããããããããéã®æŠããæé ããããšãã§ããŸãã ååå è ã¯Javaã§ã³ãŒããèšè¿°ããŸããJavaã¯å°ããªæŠè»ãå¶åŸ¡ããä»ã®æŠè»ãšæŠããŸãã
ç§ãã¡ã¯æ¬¡ã®ã¿ã¹ã¯ã«çŽé¢ããŠããŸãïŒéºäŒçã¢ã«ãŽãªãºã ã䜿çšããèªååããããããã¿ã³ã¯å¶åŸ¡ã·ã¹ãã ã®éçºã ããããã¯èªåçã«äœæããã³å€æŽããå¿ èŠããããŸãã é²åã®éçšã§ã1察1ã®æŠéã§ç¹å®ã®äºåã«éžæãããæµã«ãé©å¿ãããŸãã
åé¡ã®è§£æ±ºçãå人ãšããŠæ瀺ããæ¹æ³
ãŸããã¿ã³ã¯ã®èœåã決å®ããŸãã ãããããæŠéäžã«å®è¡ã§ããåºæ¬ã¢ã¯ã·ã§ã³ã®ãªã¹ãã¯ãéãåããäœãå転ããããæã€ã移åãããšãã4ã€ã®ãã€ã³ãã«å¶éãããŠããŸãã 5çªç®ã®ã¢ã¯ã·ã§ã³ã§ããã¬ãŒããŒã®å転ã¯ãèæ ®ããé€å€ããäºçŽ°ãªããšã«æ°ä»ããŸãã-äžå®ã®å転ïŒãããã£ãŠãã¿ã³ã¯ã«ã¯åžžã«æµã®äœçœ®ã«é¢ããé¢é£æ å ±ããããŸãïŒã
æããã«ãæŠéãæåãããããã«ããããã®ã¢ã¯ã·ã§ã³ã¯ã©ã³ãã ã«å®è¡ãããã¹ãã§ã¯ãªããæŠå Žã®ç¶æ³ïŒç¶æ ïŒãã€ãŸãæŠè»ã®äœçœ®ãé床ããšãã«ã®ãŒããã®ä»ã®ãã©ã¡ãŒã¿ãŒã«äŸåããŸãã ãããã£ãŠãæŠè»ã®å¶åŸ¡ããã»ã¹ã¯ãæŠéã®ç¶æ ã«åºã¥ããŠäžèšã®ã¢ã¯ã·ã§ã³ãå®è¡ããããšã«ãªããŸãã æŠå Žã®ç¶æ³ã«åºã¥ããŠæŠè»ã®åäœïŒã¢ã¯ã·ã§ã³ïŒã決å®ããæ³åã¯ãå¶åŸ¡æ©èœãšåŒã°ããéºäŒçã¢ã«ãŽãªãºã ã®æ©èœã«ãªããŸãã
å¶åŸ¡é¢æ°ã¯4ã€ã®å€ïŒç ²åŒŸãšãã«ã®ãŒãç ²å¡å転è§ãè¹äœå転è§ãæŠè»ã®åãïŒãè¿ãå¿ èŠããããããåã®éšåã§èª¬æããããã«ã4ã€ã®åŒã§æ§æãããŸãã 4ã€ã®è¡/æšã
ã³ãŒãã£ã³ã°ããŒãã«ãäœæããã«ã¯ãäžé£ã®åºæ¬çãªé¢æ°ãå€æ°ãããã³å®æ°ã決å®ããå¿ èŠããããŸãã
æ©èœïŒ
+ïŒxãyïŒ= x + y
++ïŒxãyãzïŒ= x + y + z
nïŒxïŒ= -x
*ïŒxãyïŒ= x * y
**ïŒxãyïŒ= x * y * z
minïŒxãyïŒ= x> yïŒ yïŒx
sïŒxïŒ= 1 /ïŒ1 + expïŒ-xïŒïŒ
ifïŒxãyãzãwïŒ= x> yïŒ zïŒw
å€æ°ïŒ
xãy-察æŠè»ã®æŠè»ã®çžå¯Ÿåº§æšã
drã¯ãã¿ã³ã¯ã«ãå°éãããããã«æ®ãããè·é¢ã§ãã
trã¯æŠè»ãåãããã«æ®ãããè§åºŠã§ãã
wã¯ãæŠè»ãããã£ãŒã«ãã®ç«¯ãŸã§ã®è·é¢ã§ãã
dhã¯ãæµã®æŠè»ã®æ¹åãšæŠè»ã®å€§ç ²ã®éã®è§åºŠã§ãã
GH-æŠè»ã®å€§ç ²ã®å転è§ã
hã¯æµã®æŠè»ã®ç§»åæ¹åã§ãã
dã¯ãæŠè»ãšæµã®æŠè»ã®éã®è·é¢ã§ãã
eã¯æµã®æŠè»ã®ãšãã«ã®ãŒã§ãã
Eã¯æŠè»ã®ãšãã«ã®ãŒã§ãã
ãŠã§ã«ãšå®æ°ïŒ0.5ã0ã1ã2ã10
ãã£ãããã¹æ©èœ
ãã£ãããã¹é¢æ°ãéžæãããæ¹æ³ã説æããŸãããã æŠéãRobocodeãã®çµæã¯ãå€ãã®ãã¥ã¢ã³ã¹ã«åºã¥ããŠåœ¢æãããŸãã ããã¯ãåå©ã®æ°ã ãã§ãªããã¢ã¯ãã£ããã£ããµãã€ãã«ã察æŠçžæã®ããããªã©ãããããçš®é¡ã®ãã€ã³ãã§ãã ãã®çµæããRobocodeãã¯ãã©ã¡ãŒã¿ãŒãåèšã¹ã³ã¢ãã§ãããããã©ã³ã¯ä»ãããŸãããã®ãã©ã¡ãŒã¿ãŒã§ã¯ãäžèšã®ãã¹ãŠã®åŸ®åŠãªç¹ãèæ ®ãããŸãã å人ã®ãã£ãããã¹ãèšç®ãããšãã«äœ¿çšããŸããåèšãã£ãããã¹ã¯ãäž¡æ¹ã®ã¿ã³ã¯ã®åèšãã€ã³ãã«ãããã¿ã³ã¯ã®ãã€ã³ãã®å²åã«çããã0ã100ã®å€ãåããŸãããããã£ãŠããã£ãããã¹å€ã50ãè¶ ããå Žåãããããã¯ãããã£ãŠãã©ã€ãã«ã¯åœŒããã匷ãã§ãã ãã®ãããªã«ãŠã³ãã·ã¹ãã ã«ããã°ãæåã®å Žæã¯ãã»ãšãã©ã®ã©ãŠã³ãã§åã£ã人ãåžžã«å ããŠããããã§ã¯ãªãããšã«æ³šæããŠãã ããã ããŠãããã§ã¯ã¹ã¯ãŒã¿ãŒã«ã€ããŠã®ãã¬ãŒãºã§è©ãããããŸããã¯ãªãšãŒã¿ãŒãåºæºãå®çŸ©ããããã«åŸã£ãŠããŸãã
äžè¬çã«ãå人ã®ãã£ãããã¹ã®èšç®ã«ã¯äžé£ã®æŠããå«ãŸããŸãïŒ ã€ãŸã ãã£ãããã¹ã®èª€ç®ãšããŠããã®ãããªäžèŠåãã«è¶³ããªãç¹ã¯ãã¿ã³ããªã³ãšã®ãã®ãããªãã³ã¹ã§æ§æãããŠããŸãã
1ïŒç§ãã¡ã®ã·ã¹ãã ã¯ãå人ã®ãšã³ã³ãŒããããæè²äœãchromosome.datãã¡ã€ã«ã«ä¿åããŸãã
2ïŒå人ããšã«ãRobocodeç°å¢ãèµ·åãããã¥ãšã«ãéå¬ãããŸãã 圌女ã®æèŠã«ã¯ãæŠéã®ç¶æ ã説æãã.battle圢åŒã®ãã¡ã€ã«ãéä¿¡ããŸããæŠè»ã®ãªã¹ããæŠå Žã®ãµã€ãºãã©ãŠã³ãæ°ãªã©ã§ãã
3ïŒæŠéã®å ŽåãRobocodeã¯æŠè»ãããŒãããããããã·ã§ã«ã¯ãšã³ã³ãŒããããåäœã§Chromome.datãã¡ã€ã«ãèªã¿åãããããäžé£ã®ã¢ã¯ã·ã§ã³ã«è§£éãããããã«åŸã£ãŠæŠããŸãã
4ïŒè©Šåã®çµããã«ãRobocodeç°å¢ã¯æŠéã®çµæãresults.txtãã¡ã€ã«ã«æžã蟌ã¿ãäœæ¥ãçµäºããŸãã
5ïŒã·ã¹ãã ã¯ãã®ãã¡ã€ã«ãéžæããæŠè»ãšå¯ŸæŠçžæã®åèšã¹ã³ã¢ã解æããŠæœåºããŸãã åçŽãªç®è¡ã«ããããã£ãããã¹ã®å€ãååŸããŸãã
圌ãã®ããã«ã
èšèšå±ãèŠçŽããŸãã ç§ãã¡ã®ã·ã¹ãã ã¯2ã€ã®éšåïŒããã°ã©ã ïŒã§æ§æãããŠããŸãã ãã®ãã¡ã®æåã¯ãéºäŒçã¢ã«ãŽãªãºã ã«åºã¥ããŠãå人ãåéããæååã®ã»ãããšããŠä¿åãã2çªç®ïŒããããã³ãŒãïŒã¯ããã解éãïŒåŒããªãŒã«åŠçïŒãã¿ã³ã¯ãå¶åŸ¡ããŸãïŒååž°çãã©ããŒãµã«ãã€ãŸãçŸåšã®ç¶æ ã«ãã£ãŠç¹å®ã®å€æ°ã®åŒããªãŒã®å€ãèšç®ããŸãïŒããã«ïŒã æåã®ããã°ã©ã ã¯SIã§èšè¿°ããã2çªç®ã®ããã°ã©ã ã¯Javaã§èšè¿°ãããŠããŸãã
éºäŒçã¢ã«ãŽãªãºã ãå®è£ ããéã人å£ã®åäœæ°ã¯51ïŒ25ãã¢+ãšãªãŒãåäœ1人ïŒã«çããéžæãããŸããã é²åã®1ã¹ãããïŒäººå£ã®å€åïŒã«ã¯çŽ12åããããŸãããããã£ãŠãåèšã§æ°æéãã±ãŒã¹ãåŒãããããŸãã
ãã®çµæãWallsãšCrazyããããã®å¯ŸæŠçžæãäœæããçµæã瀺ããŸãã


æåã®ã±ãŒã¹ã§ã¯ã70æ³ã®ãã£ãããã¹ã®å人ã®1人ã«å°éããåŸã«ããã»ã¹ãåæ¢ããŸããã2çªç®ã®ã±ãŒã¹ã§ã¯ãäžä»£ã®å人ã®å¹³åãã£ãããã¹ã50ãè¶ ããã®ã«ååã§ããã
çèåŸãã¢ã«ã³ãŒã«ã§ç®ãããã
誰ããæ··è¡ãäŒãŠãããšããã®çæ£ã§è¡ã®æ¶ãæ³£ãããšãæããŠããªãå ŽåïŒç¹ã«ã髪ã¯ããããã³ãŒãããåãå§ããŸã-ç§ãã¡ã¯Javaãšã®çžäºææªãæã£ãŠããŸãïŒããã®ãããžã§ã¯ãã®ãœãŒã¹ãæ·»ä»ããŸã ã Robocode 1.7.2.2ã䜿çšããŠãLinuxïŒæåŸã®ubuntïŒã§éçºããã³ãã¹ããããŸããã ããããã®ååã¯ãã«ã¯ã§ãïŒç ç²è ã¯çªç¶å€ç°ã§ããããïŒã 圌ã¯ïŒreadmeã䜿çšããŠïŒæ®ããæããŠãããŸãã
æåŸã«ãç§åŠçãªç¡ç¥ãšé§æŽèœããaã³ããŸããåäŸã®é ããã€ãã¹ã¿ã³ãããèœã¡ãŸããã ç§ã¯åœŒããç§ãæãŸããŠè¹ã«ä¹ãããŽã©ã«ã¬ã«æ²¿ã£ãŠè¡ãããããšãåžžã«æããŠããŸãã èŠåã
updïŒäžèšã®æ¹æ³ã¯ãæãåçŽã§æãåå§çãªæ¹æ³ã§ãã æ§ç¯ããããããããå®éã®ããã³ãŒãã®æŠãã§çã«ç«¶äºåãæã€ããã«ã¯ãé·ããã¡ã€ã«æäœãå¿ èŠã§ãïŒåºæ¬çãªèŠçŽ ïŒé¢æ°ãå€æ°ãå®æ°ïŒã確çã亀差ã®æ¹æ³ãéžæãçªç¶å€ç°ã®æ éãªéžæ...åãªãã·ã§ã³ãè©äŸ¡ããé©åãªæé ãããã£ãŠãã³ã¡ã³ãã«ã¯ãããããæ¹åããããã®åççãªææ¡ãããã誰ã§ããããè¡ãããšãã§ããŸãã