-
Notifications
You must be signed in to change notification settings - Fork 0
Home
äºéžæã®ãªã³ã©ã€ã³å¯ŸæŠã§äœ¿ã£ãŠããAIãã¢ããããŒãããŸããã詳现ã¯è¿œèšããã決åã®AIã«ã€ããŠããåç §ããŠäžããã
æ¬Wikiã¯ãCode VS Reborn ã«æåºããAIã«ã€ããŠã®è§£èª¬ããŒãžã§ãã
äºéžã¯åçã®ïŒäœã§ããã
決åã¯æ®å¿µãªããåæŠæéã§4äœã§ããããªããäºéžã§ã¯çµ¶å¯Ÿããªããããªå€ãªåããããŠãã®ã§ãäœãããã°ã£ãŠãæš¡æ§ã»ã»ã»
ãã®ç¹æ®å¿µã§ãããã決åããŒãã¡ã³ãã§ãå¯äžèªãçžæã殺ãã«è¡ãã¹ãã«çºåïŒ4æå ãŸã§ã®å®å šæ¢çŽ¢ã®ãããïŒãè¡ããïŒé£éãçµããªããªã£ãããã¹ãã«çãã«åãæ¿ããŠçºåããè©Šåãããäžè©ŠåãããŸããïŒã®ãæãããªã次ãéå¬ãããããŸãé 匵ããããšæããŸããããšãããããªæŠæ³ãšããèããŠéåžžã«åèã«ãªããŸããã2次äŒãæ¬åœã«æ¥œããã£ãã§ãïŒ
äºéžã®è©Šåã§æãå°è±¡ã«æ®ã£ãè©Šåã«ã€ããŠ
20190510_1813 ã®keraãããšã®è©Šåãäžçªå°è±¡çã§ããïŒè©Šåã®ãªãã¬ã€ãã¡ã€ã«ãã¢ããããŸããïŒ
è©Šåã®å±éãç°¡åã«èª¬æãããš
- 21é£éã23é£éã§ã«ãŠã³ã¿ãŒããæå
- 21é£éãããããçžæãããŸãè¿ããªãã¿ã€ãã³ã°ã§çºåããŠïŒçžæã®ã«ãŠã³ã¿ãŒã¯16é£éïŒåå©
- 15é£éãçžæãããŸãè¿ããªãã¿ã€ãã³ã°ã§çºåããã€ãããã18é£éã§è¿ãããŠæå
- 12é£é(çºåæã«ã¹ãã«ã72ãŸã§ããŸã£ãŠãããå€åæå³çïŒ+ 12é£éã®3ã¿ãŒã³åŸã«ã¹ãã«ãçºåããŠçžæã«é£éãããã«äŒå¿ã®åå©
- 22é£éãããããçžæãããŸãè¿ããªãã¿ã€ãã³ã°ã§çºåããŠïŒçžæã®ã«ãŠã³ã¿ãŒã¯16é£éïŒåå©
決åã§ããããè©Šåããããã£ããªãã»ã»ã»
äºéžã®äžã§å¢æ¹ç¯ãç¹°ãè¿ããã¡ã«ãèªåã§ã解説ãæ©ããã¡ã«æžããªããšäœãäœã ãåãããªããªããããªã³ãŒãã«ãªã£ãŠããŸã£ãã®ã§ãèŠããŠãããã¡ã«è§£èª¬ãæžãããšã«ããŸããã
端æã£ãéšåããäžæ£ç¢ºãªéšåãå€ã ãããšæããŸããããã®ç¹ã¯ã容赊ãã ããã
ãªããæ¬Wikiã§ã¯ãäžèšã®å 容ã«ã€ããŠã¯è§£èª¬ããŸããããªã³ã¯å ãŸãã¯ããã®æã®åèæžãHPãWikiãªã©ãåç §ããŠäžããã
- ã²ãŒã ã®ã«ãŒã«ã
- ã²ãŒã æšãããŒã æ¢çŽ¢ãªã©ããã®æã®ã²ãŒã ã®AIãäœæããéã«å¿ èŠãšãªãåºç€ç¥èã
- 256ãããã®è«çæŒç®ãäžåºŠã®CPUåœä»€ã§é«éã«å®è¡ããSIMD(Single Instruction Multiple Data)åœä»€ãã64ãããã®ç¹æ®ãªãããæŒç®ãè¡ãäºãã§ãã BMI(Bit Manipulation Instructions Sets)åœä»€ãªã©ã
- 決åæã®AIã«ã€ããŠãšãäºéžæã®AIã®ã³ãŒããè¿œå ããŸããã
- 決åã®ææ³ãšãªãã¬ã€ãäžã€è¿œå ããŸããã
- æåŸã®ã»ãã«ã察æŠã®èšé²ããè¿œå ããŸããã
- record.xlsx ã«æ¥ããšã®20äœä»¥å ã®åå è ã®é äœã®æšç§»ã®ããŒã¿ãè¿œå ããŸããã
- äžéãã®èšäºã®å®æã
決åæŠã®èªåã®AIã§ãããæåã®é£éçºç«åã«è¬ã®3é£éãè¡ããªã©ãäžå¯è§£ãªè¡åãã¿ãããã®ã§ãããããäœãããã°ã£ãŠããã®ã§ã¯ãªãããšæã£ãŠããŸãããããã«ãä»æ¥ïŒ5/26æ¥ïŒã«togatogaããã®ãã€ãã¿ãŒã§ãç§ã®ããã§å ¬éãããŠããAIãštogatogaããã®AIã察æŠãããæ瞟ãã¢ãããããŠãããç§ã®AIãæšæããŠããã®ãèŠãŠãäºéžæã®å¯ŸæŠæ瞟ãèãããšãããŸã§è² ããã¯ãã¯ãªãã®ã§ããã¯ã決åã®AIã«ã¯äœãäžå ·åãããã«éããªããšç¢ºä¿¡ããŸããã
ããã§ãäºéžã®æåŸã§ãªã³ã©ã€ã³å¯ŸæŠæã®AIãšã決åæåºçã§40æŠã»ã©å¯ŸæŠããããšãããäºéžã®AIã30å10æã§å§åã§ããã
ãã£ã±ããããããŠãŸããïŒïŒïŒïŒïŒ
決åã®ãµããããç°å¢ã§ä»ã®AIãšã®å®å¯ŸæŠã®ãã§ãã¯ãã§ããªãã£ããšã¯ãããå®å šã«èªåã®ãã¹ãªã®ã§èšãèš³ã¯å šãã§ããªãã®ã§ãããäºéžæã®ç§ã®AIãšå¯ŸæŠããŠã¿ãã人ãããããŸããããäºéžçã®AIãã¢ããããŒãããŠãããŸããã®ã§ã䜿ã£ãŠãã£ãŠãã ãããå®è¡ããéã®ãã©ã¡ãŒã¿ã¯ãäžèšã®ãªã³ã©ã€ã³ç°å¢ã®ãã©ã¡ãŒã¿ã§åãã¯ãã§ãïŒãªãããã®ããŒãžã§ã³ã¯ -ut ãã€ããªããšããŸãåäœããŸããïŒã
ãªãããµããããç°å¢ãšã»ãŒåãæ¡ä»¶ã§å®è¡ããããå Žåã¯ãäžèšã®ãã©ã¡ãŒã¿ã§åäœããããšè¯ãã®ã§ã¯ãªãããšæããŸãïŒäžå¿åãããšã¯ç¢ºèªããŸããïŒãå®éã«ãã®ã³ãŒããäºéžã®ãµããããç°å¢ã§èµ°ãããŠã¯ããªãã®ã§ãå€ãªåäœãããå¯èœæ§ã¯ãããŸãã
-bw 5000 -bcw 1500 -bd 16 -bcm 12 -bcm- 1 -bcm2 -1 -bminx 2 -bmaxx 6 -bhm 0 -nbhm 0 -nc -nbw 700 -nbcw 350 -nbihd 10 -nftl 1350 -bihmax 70 -bihmin 70 -bihd 35 -hl1 -20 -hl2 -10 -emdh -5 -ai2 -ai3 -fmcn 10 -fmcm -10 -smcm -5 -nbminc 9 -nfb -ut
ãªããäºéžãã決åãŸã§ã®éã«è¡ã£ãäœãæ¹æªããããã¯ãã°ã£ãŠããã®ãã¯ãŸã 調ã¹ãŠããŸããããã³ãŒãã¯äºéžæã®ãã®ã¯æ±ºåæã®ãã®ãããããã«èªã¿ã¥ãããšæããŸãã®ã§ãäžèº«ãã¿ãã®ã¯ããŸããå§ãããŸããã
ä»ããèãããšããªãŸããµããããç°å¢ã§ãããã°ããæ¹æ³ãèŠã€ããŠããŸã£ãããããããå€ããããããããå€ããããã£ãŠæãã§äºéžçµäºåŸã«ãããããšè©°ã蟌ãã§ããŸã£ãã®ãæå ã ã£ããããªæ°ãããããã»ã»ã»
éçºã¯ãVisual Studio 2017 㧠C++ ã䜿ã£ãŠè¡ããŸããã
äºéžã®ãªã³ã©ã€ã³å¯ŸæŠã¯ Core i7 8550U ã¡ã¢ãª 16G ã® Windows 10 ã®ããŒãPCã§è¡ããŸããã
ãªã³ã©ã€ã³ç°å¢ã§ã¯ãVisual Studio 2017ã®Releaseã¢ãŒãã§ã³ã³ãã€ã«ããŸããããããªã³ã³ãã€ã«æžããã»ããµã䜿çšããªãããšããèšå®ä»¥å€ã¯ç¹ã«èšå®ãããã£ãŠããªããšæããŸãã
å®è¡æã«äžãããã©ã¡ãŒã¿ã§ãããäºéžæçµæã¯ä»¥äžã®ããã«ãªã£ãŠããŸããããgitã«ã¢ããããã³ãŒãã¯ãããããããããšå€æŽãããŠããã®ã§ãããã§èšå®ãããŠãããã©ã¡ãŒã¿ã®ããã€ãã¯ææ°çã§ã¯ååšããŠããŸããïŒäºéžæã®æåŸã®ã»ãã§ã¯ã5/26ã«ã¢ããããŒãããäºéžææçµçã®ã³ãŒãããã®ãã©ã¡ãŒã¿ã§åäœãããŠããŸããïŒã
-bw 30000 -bcw 4900 -bd 20 -bcm 12 -bcm- 1 -bcm2 -1 -bminx 2 -bmaxx 6 -bhm 0 -nbhm 0 -tm -nc -nbw 3850 -nbcw 1470 -nbihd 10 -nftl 2500 -ut -bihmax 70 -bihmin 70 -bihd 50 -hl1 -50 -hl2 -25 -emdh -5 -ai2 -ai3 -fmcn 10 -fmcm -20 -smcm -10 -nbminc 8 ânfb
compile.sh ã¯ä»¥äžã®ããã«ãªã£ãŠããŸãã
g++ -o ysai.exe -std=c++11 -O2 -DNDEBUG -march=native -pthread codevsreborn.cpp
決åæåºçã® run.sh ã¯ä»¥äžã®ããã«ãªã£ãŠããŸãã
./ysai.exe -bw 5000 -bcw 1500 -bd 16 -bcm 12 -bcm2 16 -bcm- -1 -bminx 2 -bmaxx 6 -nc -nbw 700 -nbcw 350 -nbihd 10 -nftl 1350 -bihmax 70 -bihmin 70 -bihd 35 -emdh -5 -ai2 -ai3 -fmcn 10 -fmcm -10 -smcm -5 -nbminc 9 -nebw 500 -nebcw 200 -dbw 200 -dbcw 75 -dbt 350 -ebw 500 -ebcw 200 -ebt 500
ãŸããåºç€ãšãªããããã¯èœäžã·ãã¥ã¬ãŒã¿ã®é«éåãç®æããŸãããåœç¶ã§ããããããé«éã§ããã°ããã»ã©æ·±ãæ¢çŽ¢ãè¡ãäºãã§ããããã«ãªããããéåžžã«éèŠã§ãã
決åã®AIã®ç· ãåãã®æåºåŸã«ãåå è ã®ããã°ãªã©ã§å ¬éãããã³ãŒãã®è§£èª¬ãªã©ãèŠãéããå€ãã®åå è ãããããã¯ã®çš®é¡ã空çœãå«ããŠã11çš®é¡ã§4ãããã«åãŸãããšãããã²ãŒã ç€ã®1ãã¹åã®æ å ±ã4ãããã§è¡šçŸããŠããæ¹ãå€ãããã«èŠåããããŸããããŸãã1åã®é«ãã16ãªã®ã§ã1åã®ããŒã¿ã4*16=64ãããã§è¡šçŸããããšã§ããããã¯ã®èœäžåŠçã pext_u64 ã§é«éã«è¡ã£ãŠããæ¹ãå€ãããã§ããããã ã1åã®é«ãã¯å®éã«ã¯ã¿ãŒã³éå§æã®èœäžãšããã¯ã®èœäžåãå«ãããš19è¡ããããããã®æ¹æ³ã§ã¯1åã®ããŒã¿ã64ãããã«åããããªãã®ã§ã¯ãªãããšæãã®ã§ããããããåå è ã®æ¹ãã©ã察åŠããŠãããã«ã€ããŠã¯èª¿ã¹ãŠããŸããã
äžæ¹ãçè ã®AIã§ã¯ãã²ãŒã ç€ã®ããŒã¿æ§é ã¯ã256ãããã®ãããããããåŸè¿°ã®ããã«20æçšæããŸããïŒ1ãã¹åœããã®ããŒã¿éã20ããããšããããšïŒãäžèšã®æ¹æ³ãšæ¯ã¹ããšãåçŽã«5åãã®ããŒã¿éãå¿ èŠã«ãªããŸããããã®ä»£ãããããã¯ã®æ¶æ» å€å®ãéåžžã«é«éã«è¡ãäºãåºæ¥ãŸãã
ãŸãããããšã¯å¥ã«ååã®ãããã¯æ°ãèšé²ããå€æ° blocknum ãçšæããŸãããããã¡ãã«é¢ããŠã¯é«éåãšã¯ããŸãé¢ä¿ãªãã®ã§è§£èª¬ã¯ããŸããã
ãã®ã²ãŒã ã®ãã£ãŒã«ãã®å€§ããã¯ã瞊19ã暪10ãšãªã£ãŠãããäžåæ¯ã®ããŒã¿ã«24ããããå²ãåœãŠãããšã§ã24*10=240 ãšãªãã256ãããã§äžæã®ãã£ãŒã«ãã®ãããããããè¡šçŸå¯èœã§ãã1æã®ããããããã®ããŒã¿ã256ãããã«åããããšã§ã256ãããã®ãããæŒç®ãè¡ãAVX256ãå©çšããé«éãªèšç®ãè¡ãäºãã§ããããã«ãªããŸãã
å ·äœçã«ã¯ãå·Šã®åããé ã«ã256ãããã®ããŒã¿ãã24ããããã€å²ãåœãŠãŠããŸããã³ãŒãã§ã¯ã codevsreborn.hpp å ã® BitBoard ãšããååã® struct ã§å®çŸ©ããŠããŸãããŸããBitBoardã§ã¯ãBitBoardå ã®ä»»æã®åº§æšã®ããããç«ãŠãããBitBoardå士ã®è«çæŒç®ãè¡ãã¡ãœãããªã©ãå®çŸ©ãããŠããŸãã
ã²ãŒã ç€ã®ããŒã¿ã¯ãåããã¡ã€ã«å ã§å®çŸ©ãããŠãã PlayerInfo å 㧠BitBoard bb[BB_SIZE]; ã®ããã«å®çŸ©ãããŠããŸãïŒBB_SIZE=20ïŒã20æã®ããããããã®å èš³ã¯ä»¥äžã®éãã§ãã
ã€ã³ããã¯ã¹ | 説æ |
---|---|
0 | ä»»æã®ãããã¯ãååšãããã©ãã |
1~9 | ã€ã³ããã¯ã¹ã®çªå·ã®ãããã¯ãååšãããã©ãã |
10 | ãéªéãããã¯ãååšãããã©ãã |
11ïœ19 | ã20ïŒã€ã³ããã¯ã¹ãã®ãããã¯ã®åšå²8ãã¹ã®ãããã¯ãè¡šã |
Code VS reborn ã¯ãã以åã«éå¬ããã Code VS for student ãšæ¯èŒãããšããããã¯ã®æ¶æ» å€å®ã®ã«ãŒã«ã¯äŒŒãŠã¯ããŸããã以äžã®ããã«æ±ºå®çã«ç°ãªãç¹ããããŸãã
- Code VS for student ã§ã¯ã瞊ã暪ãæãã«äžŠãã ãããã¯ã®åèš ïŒäœãã¹äžŠãã§ãè¯ãïŒ ã10ã«ãªã£ãå Žåã«ãããã¯ãæ¶æ» ããã
- Code VS reborn ã§ã¯ãé£ãåã£ã2ã€ã®ãããã¯ã10ã®å Žåã®ã¿ãããã¯ãæ¶æ» ããã
Code VS for student ã®ã«ãŒã«ã§ã¯ããããã¯ã®æ¶æ» å€å®ã®éã«ã瞊ã暪ãæãæ¹åã®ãããã¯ã®è¶³ãç®ãå¿ èŠã§ããããCode VS reborn ã®ã«ãŒã«ã®å Žåã¯ããã®ãããªèšç®ã¯äžåå¿ èŠãããŸããã
Code VS reborn ã®å Žåã®ãããã¯ã®æ¶æ» å€å®ã¯ãäŸãã°ã1ã®ãããã¯ãæ¶æ» ããæ¡ä»¶ã¯ã察å¿ãã9ã®ãããã¯ã®åšå²8ãã¹ã®ããããã®ãã¹ã«1ã®ãããã¯ãååšãããã©ããã確èªããã ãã§ã§ããŸããã€ãŸããã1ã®ãããã¯ã®æåšãè¡šãããããããããšã9ã®ãããã¯ã®åšå²8ãã¹ã®ãã¹ãè¡šããããããããã®è«çç©ïŒANDïŒæŒç®ãè¡ã£ãçµæåŸãããããããããããã1ã®ãããã¯ã§æ¶æ» ãããã¹ããè¡šããããããããšãªããŸãã ãã®æŒç®ã¯ãSIMDåœä»€ã䜿ãäºã§CPUã®1åœä»€ã§é«éã«å®è¡ã§ããŸãã
ãŸããäžèšã®æ¶æ» å€å®ã¯ãäžèšã®ããã«ããã¹ãŠã®æ°åã®ãããã¯ã«å¯ŸããŠæ¯åè¡ãå¿ èŠã¯ãããŸãããå¿ èŠãªãããã¯ã«å¯ŸããŠã®ã¿è¡ãäºã§èšç®éãæžããããšãã§ããŸãã
- ã¿ãŒã³éå§æã«èœäžãããããã¯å ã®ãããã¯ïŒ3å or 4åïŒããããã«å¯ŸããŠãããããã¯ã®çªå·ã®ãããã¯ããšã10ïŒãããã¯ã®çªå·ã®ãããã¯ãã®ã¿å€å®ããã°ããã
- ãããã¯ãæ¶æ» ããåŸã®å Žåã¯ããããã¯ã®æ¶æ» ã«ãã£ãŠèœäžãããããã¯ããããã«å¯ŸããŠäžèšãšåæ§ã®ãããã¯ã®ã¿å€å®ããã°ããïŒãã¡ãã®å Žåã¯çµæãšããŠå šéšã®æ°åã®ãããã¯ã®å€å®ãå¿ èŠã«ãªãå Žåãããããããã§ãªãå ŽåãããïŒã
ã¹ãã«ã«ãã£ãŠãããã¯ãæ¶æ» ããå Žåã¯ã以äžã®èšç®ã§æ¶æ» ãããããã¯ã®äœçœ®ãèšç®ã§ããŸãã
ã5ã®ãããã¯ã®ããããããã OR (ã5ã®åšå²ã®ãããã¯ã®ããããããã AND (NOT ããéªéãããã¯ã®ããããããã) AND ãä»»æã®ãããã¯ã®ãããããããïŒ
bbã䜿ã£ãå Žåã¯ä»¥äžã®åŒã§è¡šçŸã§ããŸãã
bb[5] | (bb[15] & (~bb[10]) & bb[0])
ãããã¯ãæ¶æ» ããå Žåã¯ãæ¶æ» ãããããã¯ã®åã ãããããã¯ãèœäžãããå¿ èŠããããŸãããããã¯ã®ååã®èœäžåŠçã¯ããããã¯ã®æ¶æ» ãããã¹ãåã®ããããããããŒã¿ãããã°ãpext_u32 ãšãã BMI åœä»€ã䜿ã£ãŠç°¡åã«èšç®ã§ããŸããããã 0 ãã 10 ã® 11 ã®ããããããã«å¯ŸããŠè¡ãã°ãããã¯ã®èœäžåŠçã¯å®äºã§ãã
åãããã¯ã®åšå²8ãã¹ãè¡šãããããããã®èšç®ã¯ä»¥äžã®æ¹æ³ã§é«éåããŸããã
- ããã¯ãèœäžãããå Žå
以äžã®ãããªããŒãã«ããããããäœã£ãŠããïŒBOARD_WIDTH=10, BOARD_HEIGHT=19)
// around_bb_table[x][y] ã¯ãã²ãŒã ç€ã®(x, y)ã®åº§æšã®ãã¹ã®åšå²8ãã¹ãè¡šãããããããã
BitBoard around_bb_table[BOARD_WIDTH][BOARD_HEIGHT];
ãããå©çšããã°ãããã¯å ã®åãããã¯ã«å¯ŸããŠããã®ããã¯ãèœäžããã座æšãå ã«ããã®ããŒãã«ãåŒã㊠OR æŒç®ãè¡ãã°åãããã¯ã®åšå²8ãã¹ãè¡šããããããããèšç®ã§ããŸãã
- ãããã¯ãæ¶æ» ããå Žå
ãããã¯ãæ¶æ» ãããã®åŸæ¶æ» ããå Žæã«ãããã¯ãããå Žåã¯ãåãããã¯ã®åšå²8ãã¹ãè¡šããããããããèšç®ããªããå¿ èŠããããŸã ïŒåçŽã«ã(x,y)ã®äœçœ®ã®ãããã¯ãæ¶æ» ããå Žåã«ãaround_bb_table ãš NOT æŒç®ã䜿ã£ãŠå·®åã§èšç®ãããšããããšã¯ã§ããŸããïŒã ãã®ããããã®å Žåã¯ãŸããåãããã¯ã®åšå²8ãã¹ãè¡šãããããããããã¹ãŠã¯ãªã¢ããŠããç€é¢ã«æ®ã£ããããã¯ã®æ°ã ããaround_bb_tableãåŒã㊠OR æŒç®ãããªããã°ãªããªãããã«æããŸããããã®æŒç®ãããŒãã«ãçšæããããšã§é«éåããããšãå¯èœã§ãã
å ·äœçã«ã¯ä»¥äžã®ãããªããŒãã«ããããããäœã£ãŠãããŸãã
// xåã®ããããã¿ãŒã³ã瀺ãããšã§ããŸãšã㊠xåã®ãããã1ã®åº§æšã®åšå²8ãã¹ãè¡šããããããŒããèšç®ã§ããããã«ããããã®ãã®ã
BitBoard around_bb_x_table[BOARD_WIDTH][1 << BOARD_HEIGHT];
äŸãã°ããããã¯ãæ¶æ» ãããã®åŸã«ãããã¯ãèœäžããåŸã® x åã«ååšãã 1 ã®ãããã¯ã®ãããåã x1 ã ã£ãå Žåããã®åã®1ã®ãããã¯ã®åšå²ã®8ãã¹ã®ãããããã㯠around_bb_x_table[x][x1] ã§è¡šçŸã§ããŸãããã®æ¹æ³ã§ãããã¹ãã§ã¯ãªãããåãåäœã§åãããã¯ã®åšå²8ãã¹ã®ãããããããèšç®ã§ããã®ã§å€§å¹ ãªé«éåãå®çŸã§ããŸããã
ãŸãããã®å€å®ã§ãããæ¶æ» ãããããã¯ãšãèœäžãããããã¯ãšããã®ãããã¯ã®å¯Ÿã«ãªããããã¯ã ãåèšç®ããã°ããã®ã§å¿ ããã1~9ãŸã§ã®å šãããã¯ã«å¯ŸããŠèšç®ãè¡ãå¿ èŠã¯ãããŸããã
ãªãããã®ããŒãã«ã®ããŒã¿ãµã€ãºã§ãããBitBoard ã 256bit = 32 byteãBOARD_WIDTH = 10ã1 << BOARD_HEIGHT = 2 ^ 19 ãšãªã£ãŠããã®ã§ãåèšã¯
32 * 10 * (2 ^ 19) = 10 * (2 ^ (5 + 19)) = 160 * (2 ^ 20) = 160MB
ãšãªããããªã倧ããã§ã¯ãããŸããããµããããç°å¢ã®ã¡ã¢ãª1GBã«åååãŸã£ãŠããŸãã
ãã®èšç®çµæããã¡ã€ã«ã«èšé²ããŠãå®è¡æã«èªã¿èŸŒããšãã颚ã«ããã°æ©ããªããšæã£ãã®ã§ããããã®ããŒãã«ã®èšç®ã®æèŠæéã¯ããŒãPCã§0.2ç§çšåºŠïŒãµããããç°å¢ã§ã¯0.35ç§çšåºŠã§ããïŒã§èšç®ã§ããã®ã§ããã®éšåã¯åŸåãã§ããããšæŸã£ãŠããããå¿ããŠããŸãããã®ããã¥ã¡ã³ããæžããä»æãåºããŸããããŸããAIã®åŒ·ãã«ã¯ã»ãšãã©åœ±é¿ã¯ãªããšæãããŸãã
ããã¯ãèœäžããããã³ã«ãäžèšã®åŠçãããããã¯ãäžã€ãæ¶æ» ããªããªããŸã§ç¹°ãè¿ãã°ããããã¯èœäžæã®ã·ãã¥ã¬ãŒã¿ã¯å®æããŸããç¹°ãè¿ããæ°ãé£éã®æ°ãšãªããŸããäžèšã®ææ³ã§ãåå è ã®äžã§ãæé«ã¯ã©ã¹ã®é床ã®ãããã¯èœäžã·ãã¥ã¬ãŒã¿ãå®è£ ã§ããã®ã§ã¯ãªãããšæããŸãïŒããããããšãã£ãšéãã®ããããããããŸããããã®å Žåã¯äºã®äžã®èã ã£ããšããããšã§ã»ã»ã»ïŒã
ãã®ã²ãŒã ã¯ãã²ãŒã éå§åŸã¯ãã§ããã ãæ©ã倧é£éãçµãããšãéèŠã§ãããã®ããã«ã¯ãæ©ãæé ã§ã®å€§é£éãæ¢ãå¿ èŠããããŸãã
ãã®ã²ãŒã ã¯1æãããæ倧ã4*9+1=37 (+1ã¯ã¹ãã«çºåïŒçš®é¡ã®è¡åãã¿ãŒã³ããããããçŸå®çã«ã¯å®å šæ¢çŽ¢ã¯4ïœ5æãéçã ãšæãããŸããã4ïŒ5æã¯å°åºå€§é£éãçµãããšã¯äžå¯èœã§ããããã§ãããŒã ãµãŒããŸãã¯ChokudaiãµãŒãã䜿ã£ãŠæ·±ãæ¢çŽ¢ãè¡ã£ãŠå€§é£éãæ¢çŽ¢ããã®ãäžè¬çã ãšæããŸãïŒãã®ã²ãŒã ã®AIã解説ããããããªããã°ããããŸãã®ã§ãæ€çŽ¢ãããšè¯ãã§ãããïŒã
æ¬AIã§ã¯ãããŒã ãµãŒããæ¡çšããŸãããChokudaiãµãŒãã¯ãå€æ§æ§ã®ç¢ºä¿ãæéã®ç®¡çã®å®¹æããšããã¡ãªãããããã®ã§ãããæ¢çŽ¢ã®å¹ ãåºãããšã¡ã¢ãªã倧éã«æ¶è²»ããïŒãããããŠããã¯èª€è§£ããïŒïŒããããµããããç°å¢ã®ã¡ã¢ãª1Gã®å¶éãå³ãããšæã£ãŠæ¡çšããŸããã§ãããå€æ§æ§ã«é¢ããŠã¯å¥ã®æ¹æ³ã§è§£æ±ºããŸããã
ããŒã ãµãŒãã§ã¯ãæ¢çŽ¢å¹ ã w ãšãããšåæ¢çŽ¢æ·±ãã«ããããè©äŸ¡å€ãäžäœ w ã®å±é¢ãæ¡çšããŠæ¬¡ã®æ·±ãã®æ¢çŽ¢ãè¡ããŸããããã®ã²ãŒã ã§ã¯ãè©äŸ¡å€ã«å·¥å€«ãè¡ããªããšè©äŸ¡å€ã®äžäœã®å±é¢ã䌌ããããªå±é¢ã°ããã«ãªã£ãŠããŸããå€æ§æ§ã確ä¿ã§ããªããšããåé¡ãã§ããšæãããŸããããã§ãå€æ§æ§ã®ç¢ºä¿ãšããŠãåæ·±ãã®å±é¢ããã®å±é¢ã§å¯èœãªé£éæ°æ¯ã«åããããããã®é£éæ°æ¯ã®æ¢çŽ¢å¹ ã決ããããšã§å€æ§æ§ã確ä¿ããããšãèããŸããã
ããã¯ãäŸãã°ãæ·±ã d ã§æ倧 10 é£éå¯èœã ã£ãå Žåãæ·±ã d 㧠10é£éãè¡ãè¡åãå¿ ãããããæ·±ãå±é¢ã§æ倧ã®é£éãè¡ãäºãã§ããè¡åãšã¯éããªãããšãèæ ®ããæ·±ã d ã§10é£éæªæºã®è¡åãæ®ãããšã§å€æ§æ§ã確ä¿ãããšããããšãè¡šããŠããŸãã
å ·äœçã«ã¯ãããŒã ãµãŒããè¡ãéã«ãæ倧深ã d, åæ·±ãã®æ¢çŽ¢å¹ w, åé£éæ°ã®æ¢çŽ¢å¹ w2 ãèšå®ããŸãã äŸãã° w = 100, w2 = 30 ã®å Žåãããæ·±ãã§èšç®ãããå±é¢ã®æ°ããã®å±é¢ã§å¯èœãªé£éæ°ããšã«ãœãŒãããå Žåã以äžã®è¡šã®ããã«ããŒã æ¢çŽ¢ãè¡ããŸãã6é£éã®æç¹ã§æ¡çšããå±é¢ã®æ°ã®åèšã w(100) ã«ãªãã®ã§ã5é£é以äžã®å±é¢ã¯æ¡çšããŸããã
é£éæ° | ãã®é£éãå¯èœãªå±é¢ã®æ° | æ¡çšããå±é¢ã®æ° |
---|---|---|
10 | 5 | 5 |
9 | 10 | 10 |
8 | 50 | 30 |
7 | 100 | 30 |
6 | 200 | 25 |
5ä»¥äž | ? | 0 |
wã«å¯ŸããŠãw2ãã©ã®çšåºŠã«èšå®ããã°ãããã«ã€ããŠã¯ãããããè©ŠããŠã¿ãã®ã§ãããwã®20%ïœ30%ãããããããããªæãã§ããã
ãã®ææ³ã§æ·±ã d ãå¢ãããå Žåã«èŠã€ããé£éã¯ã確ãã«å€§é£éãéæã§ãããããããŸãããã倧é£éãéæãããŸã§ã®éã®ã¿ãŒã³ã§å€§é£éãéæã§ãããšã¯éããŸãããäŸãã° d = 15 㧠20 é£éãéæå¯èœãªæé ãèŠã€ãããšããŠããéäžã® 1 ïœ 14 ã®ãã¹ãŠã®æ·±ã㧠10é£é以äžããã§ããªããšããå¯èœæ§ããããŸãã
äºéžã§æ§ã ãªè©ŠåçµæãèŠãã«ã10ã¿ãŒã³ååŸã§12é£éãè¡ãããããªé£éãçµãã§ããªããšãããšã15é£éã®ãããªå€§é£éãçµããŠãããšããŠãå ã«çžæã«12é£éãèœãšãããŠã€ã¶ããããšããå¯èœæ§ãé«ããšããããšãããããŸãããããã§ããŸãç®æšãšããé£éæ° c ãèšå®ãããã®ããŒã æ¢çŽ¢ãè¡ã£ãéã«ãcé£éãåããŠéæããæ·±ããããcé£é以å€ã®ããŒã¿ããã¹ãŠåé€ããŠæ¢çŽ¢ãç¶ãããšããææ³ãåããŸãããèŠã€ãã£ãæéã®12é£éãåãè¡åãå¿ ãæ®ããšããããšã§ãã
äºéžã§ã¯ c ã«ã¯12ãèšå®ããŠå®è¡ããŸããããããã ãš12é£éãæéã§éæã§ããæé ãæ°çš®é¡ããèŠã€ãããªãããšããããå€æ§æ§ã確ä¿ã§ããªããšæããæçµçã«ã¯äžã€å°ãªã 11 é£éã®ããŒã¿ãæ®ãããšã«ããŸããã
ãªãã1æ20ç§ã®å¶éãããã®ã§ãå°ãäœè£ããã£ãŠ19ç§æ¢çŽ¢ããæç¹ã§æ¢çŽ¢ãæã¡åã£ãŠããã®æç¹ã§æãæ·±ããŸã§æ¢çŽ¢ã§ããæ·±ãã«ããããã£ãšãè©äŸ¡å€ã®æé ãéžã³ãŸããã12é£éã19ç§ä»¥å ã«èŠã€ããããªãã£ãã±ãŒã¹ã¯ãŸããªãã£ããšæããŸãã
ãµããããç°å¢ã§ã¯ããã«å ããæçµç®æšé£éæ°ïŒ=16ïŒã決ããããã以äžã®é£éãèŠã€ãã£ãæç¹ã§æ¢çŽ¢ãæã¡åããŸããã
äºéžã®åŸåã«ãªããšãé£éã®çºç«ç¹ãäžã«èšå®ããçžæã«å ã«é£éãããŠããããã倧ããªé£éã§è¿ããšããã«ãŠã³ã¿ãŒæŠè¡ãã¿ãããããã«ãªããŸãããç¹ã«Keraããã®AIãé¡èã ã£ããšæããŸããç§ã®AIã¯ç¹ã«ã«ãŠã³ã¿ãŒæŠè¡ãæèããŠäœã£ãŠããããã§ã¯ãªãã®ã§ãããåŸè¿°ããããã«æ©ããã¡ãããã®ã«ãŠã³ã¿ãŒæŠè¡ã£ãœããã®ããšãããšããããŸããããæ¬æ Œçã«ã«ãŠã³ã¿ãŒæŠè¡ãå®è£ ããŠããAIã»ã©ã«ãŠã³ã¿ãŒãåŸæã ã£ãããã§ã¯ãããŸãããèªåã®AIã«ãã«ãŠã³ã¿ãŒæŠè¡ãæ確ã«åãå ¥ããŠã¿ãããšæãã以äžã®ãããªæ¹é ãæœããŸããã
å ·äœçã«ã¯ãäžèšã®ããŒã æ¢çŽ¢ã§ãcïŒ=12ïŒé£éãåããŠèµ·ããæ·±ãã§æµããéªéãããã¯ã40åéã蟌ãã ããšã«ããŠå€§é£éãçµããšããæ¢çŽ¢ã«å€ããŠã¿ãŸãããããããããšã§ãé£éã®çºç«ç¹ãäžãã4段ç®ããäžã«ãªãçµã¿æ¹ãã§ããã®ã§ã¯ãªãããšããèãã§ãããããããããæçµæ¥ã®2,3æ¥åã«å®è£ ããããããããäºéžã®é äœãèœã¡ããããŸã§ã¯å€§äœ8äœã®goldåå ãä¿ã£ãŠããã®ã§ããã8äœåå ãå±ãããªããŸãããããã£ãŠãäºéžã®æçµæ¥ã®å€æ¹ããããããã®ææ³ããããŠå ã«æ»ãããšããããªããšãé äœãæ»ã£ãŠäºéžçªç Žã§ããããšãããïŒå®éã«ã¯ãé äœãæ»ã£ãã®ã¯ãã®ã³ãŒããæ»ããã®ãåå ãš100%èšãåãããšã¯ã§ããŸãããïŒãããããã®ææ³ã¯å€±æã ã£ãã®ã§ã¯ãªãããšæãããŸããæ»ããŠäºéžãçªç Žåºæ¥ãã®çµæãªãŒã©ã€ã ã£ãã®ã§ãããæçµæ¥ã¯æ¬åœã«èæ°·ãèžãæãã§ããã
ãªãããã®ææ³ã®ã³ãŒãã¯çŸåšã®ã³ãŒãããåé€æžã§ãã
æåã®å€§é£éãçµãéã«ããã¹ãŠã®æãæ¢çŽ¢ãããš1æåœããæ倧36éãïŒé£éãçµãæ¢çŽ¢ãªã®ã§ãã¹ãã«çºåã¯æ¢çŽ¢ã«å ¥ããªãïŒã®è¡åããšããŸããããããæžããããšãã§ããã°ããæ·±ãæ¢çŽ¢ãè¡ãäºãåºæ¥ãŸããããã§ãæåã®å€§é£éãçµãããŒã æ¢çŽ¢ã§ã¯ãã²ãŒã ç€ã®å·Šå³2åã«ãããã¯ãèœãšããªãããã«ããããšã§ã1æåœããã®è¡åã®çš®é¡ã9Ã4=36éãããã5Ã4=20éãã«æžãããŸãããããããããšã§ãé£éãçµãéã«ã暪ã«å¹³ã¹ã£ããçµãã®ã§ã¯ãªãã瞊ã«é«ãçµã¿ããããªã£ãçµæãçºç«ç¹ãé«ããªã£ãŠçžæãå ã«é£éããŠãããã¯ãéãããŠæ¥ãŠãã«ãŠã³ã¿ãŒããããããªããšããå¹æãåŸãããã®ã§ã¯ãªãããšæãããŸãããã®å·¥å€«ã¯äºéžã®ååã§å®è£ ããåŸã¯æåŸãŸã§å®æœããŸããã
ãªãããã®å·Šå³2åã«ãããã¯ãèœãšããªããšãã工倫ã¯ç¹ã«èª°ãã®ç䌌ãããããã§ã¯ãªããèªåã®éå»ã®ããã¯ã¢ãããåã£ãŠãããã³ãŒãã§ç¢ºèªã§ããéãã§ã¯äºéžéå§5æ¥ç®ã®ã4/19æ¥ã®æç¹ããè¡ã£ãŠããããã§ãã
æ¢çŽ¢æã«ãç°ãªã£ãæé ã§åãå±é¢ãçŸããã±ãŒã¹ããããŸããäžåºŠçŸããå±é¢ãããã·ã¥åãã眮æè¡šã«èšé²ããŠããããšã§ã次ã«åãå±é¢ãçŸããæã«æ¢çŽ¢ãæã¡åãããšãã§ããŸãããã®ææ³ã§ã¯å€§å¹ ãªé«éåã¯éæã§ããŸããã§ãããããããªãïŒæ°10%çšåºŠïŒã®é«éåã¯éææããŸãã
å±é¢ã®ããã·ã¥å㯠fnv_1 ã䜿ããŸãããæåã¯ãã®æã®ã²ãŒã ã®å®çªã§ãã zobrist hash ã䜿ã£ãã®ã§ãããzobrist ããã·ã¥ã¯å±é¢ãå€ãã£ãæã®å·®åãå°ãªãå Žåã«ã¯æå¹ã§ãããé£éåŸãªã©å€§ããå±é¢ãå€ããå Žåã¯ããŸãæ©ããªããfnv_1ã®ã»ããç·åçã«æ©ãã£ãã®ã§ãã¡ããæ¡çšããŸããã
äºéžã®ãªã³ã©ã€ã³å¯ŸæŠã§äœ¿ã£ãŠããPC㯠Core i7 ã®ã¯ã¢ããã³ã¢ã ã£ãã®ã§ã䞊ååãéäžããè¡ããŸãããå ·äœçã¯ãããã¯ãèœãšãäœçœ®ïŒx座æšïŒæ¯ã« C++ ã® thread ã䜿ã£ãŠã¹ã¬ãããç«ã¡äžããŠãã«ãã¹ã¬ããåããŸããããã®éã«çœ®æè¡šã¯å ±æããŸãããæ¬åœã¯çœ®æè¡šã®æžãæãæã« mutex ãªã©ã䜿ã£ãŠæä»å¶åŸ¡ãè¡ãã¹ããªã®ã§ãããæä»å¶åŸ¡ããããªããªããŠãå€ãªåäœããããªãã£ãã®ã§çœ®æ祚ã®æžãæãæã®æä»å¶åŸ¡ã¯çç¥ããŸãããæä»å¶åŸ¡ã¯ã次ã®æ·±ãã®å±é¢ãvectorã«pushããéã®ã¿äœ¿ããŸãããããã«ãã£ãŠé床ãã¯ã¢ããã³ã¢ã®4åã«ã¯ãªããŸããã§ãããã3åãããã«ã¯ãªã£ããšæããŸãã
ãã®ããŒã ãµãŒãã§åŸããã倧é£éã®æé ã®ãã¡ãæåã« c é£éãéæãããæãŸã§ãèšé²ããŠæ¡çšããŸãããæåŸãŸã§æ¡çšããªãã£ãã®ã¯ãããŸãé·ãæ¡çšãããšçžæã®å åºãã®å€§é£éã«å¯Ÿå¿ã§ããªããªãããã§ãããã ãã8ã¿ãŒã³ãŸã§ã«çžæã倧é£éããŠããããšã¯ãŸãèããããªãã®ã§ã8æç®ãŸã§ã¯ç¡æ¡ä»¶ã§æåã«èšç®ããæé ãåãããšã«ããŸããã8æç®ä»¥éã«ããŒã ãµãŒãã§èšç®ããæããšããã©ããã®å€æã«ã€ããŠã¯åŸè¿°ããŸãã
ããŒã æ¢çŽ¢æã®å±é¢ã®è©äŸ¡å€ã§ãããåºæ¬çã«ã¯ãã®å±é¢ã§ãšãããã¹ãŠã®æïŒãã®æ·±ãã§å®éã«ããã¯ãèœãšããæ倧36éãïŒãèœãšããŠã¿ãæã®æ倧é£éæ°ãããŒã¹ã«è©äŸ¡å€ãèšç®ããŸãããä»ã®æ¹ã®ããã°ãšããèŠããšã倧é£éãçãããŒã æ¢çŽ¢æã®è©äŸ¡å€ã¯ãäžã€ã ããããã¯ãèœãšããŠã¿ãŠé£éå¯èœãã©ããã調ã¹ããšãããé£éã®æœåšèœåã枬ãæ¹æ³ã§èšç®ããŠãã人ãå€ãããã§ããããæ¬åœã«ãã®ã¿ãŒã³ã«é£éã§ãããã©ãããéèŠã ãšèãããã®ææ³ã¯åããŸããã§ããïŒãã®åŸèª¬æãããéåžžã®æ¢çŽ¢æã«ããã®ããšã¯åœ±é¿ããŸãïŒãè©äŸ¡å€ã¯ããããè©Šè¡é¯èª€ããçµæ以äžã®ãããªåŒã§èšç®ããŸãããæå³ãšããŠã¯ææ·±éšãŸã§ã§è¡ããé£éæ°ãæ倧ã«ç¶æããããã§ãææ·±éšã§ã倧é£éãçããããã«ãããšãããã®ã§ãïŒïœã¯ã»ãšãã©ããŸãã§ãïŒã
c1 = æ¢çŽ¢ããæ·±ããŸã§ã«è¡ããæ倧é£éæ°
c2 = ææ·±éšã§ã®å±é¢ã§ãšããæ倧é£éæ°
b = ææ·±éšã§æ倧é£éããåŸã®æ®ããããã¯æ°
è©äŸ¡å€ = c1é£éã§èœãšãããããã¯æ° * 1000 + c2é£éã§èœãšãããããã¯æ° * 100 + b
ãã ããããŸãäžãŸã§ç©ããšãéªéãèœã¡ãŠãããšãã«æºè¶³ã«ã«ãŠã³ã¿ãŒã§ããªããªãã®ã§ã14段ç®ä»¥éã«ãããã¯ãç©ãŸããå Žåã¯è©äŸ¡å€ã0ãšããŸããã
ãªããéäžã§ã¯ã以äžã®ããã«è©äŸ¡å€ãèšç®ããŠããããããããŸããããã ãäžèšã®è©äŸ¡å€ã§ã¯ãæ¢çŽ¢ã®éäžã§æ倧é£éãçµããå Žåããã£ããšããŠãããã®è¡åãæ¡çšãããªãã±ãŒã¹ãããã®ã§æçµçã«ã¯äžæ¡çšãšããŸããã
è©äŸ¡å€ = åã®æ·±ããŸã§ã®è©äŸ¡å€ * k + c2é£éã§èœãšãããããã¯æ° * 100 + b
k ã¯å®æ°ã§ãå°ãããããšæ·±ãå±é¢ã§ã®é£éæ°ãéèŠããã倧ãããããšæµ ãå±é¢ã§ã®é£éæ°ãéèŠãããŸãã
ãŸããä»ã®åå è ã®æ¹ã§ãé£éãããããããªãããã¯ãšãããã¯ã®äœçœ®é¢ä¿ãè©äŸ¡ããŠãã人ãèŠåããããŸããããçè ã®AIã§ã¯ãã®ãããªå·¥å€«ã¯è¡ããŸããã§ãããçè ã®ããæ¹ãšã©ã¡ããåªããŠãããã¯ãæ¯èŒããŠããªãã®ã§äžæã§ãã
èªåã®PCã§ãªã³ã©ã€ã³å¯ŸæŠããéã®ããŒã æ¢çŽ¢ã®ãã©ã¡ãŒã¿ã¯ä»¥äžã®éãã§ãã ïŒïŒãã€ããŠããã®ã¯ã䞊ååã«ããé«éåãå®è£ ããåã«äœ¿ã£ãŠããæ°å€ã§ãã
ãªã³ã©ã€ã³ç°å¢ | ãµããããç°å¢ | |
---|---|---|
æ倧ããŒã æ·±ã | 20 | 16 |
ããŒã å¹ | 50000ïŒ10000ïŒ | 5000 |
é£éæ°æ¯ã®ããŒã å¹ | 5000ïŒ3500ïŒ | 1500 |
æåã®ç®æšé£éæ° | 12 | 12 |
æçµç®æšé£éæ° | ãªã | 16 |
å¶éæé(ms) | 19000 | 19000 |
äžèšã®ãã©ã¡ãŒã¿ã§ãå°ãªããšããªã³ã©ã€ã³ç°å¢ã§ã¯ä»ã®äžäœAIãšã»ãŒéè²ãªãéãã§12é£éãçµãããšãå¯èœãªæ觊ãåŸãããŸããïŒçµ±èšãåã£ãããã§ã¯ãªãã®ã§èªåã®AIã®ã»ããæ¬åœã«éããã©ããã¯äžæïŒããµããããç°å¢ã§ãããããé£éã®éãã¯å¹³åããŠ1ã¿ãŒã³åŒ±ã»ã©ããå€ãããªããããªæ°ãããŸãã
åå è ã®AIã®èšäºãèŠããšãå€ãã®æ¹ã¯ããŒã ãŸãã¯ChokudaiãµãŒãã§å€§é£éãæ¢ããçžæã®ç¶æ³ãããçšåºŠèŠãªããé£éã®çºç«ãè¡ããã©ããã®å€æãè¡ã£ãŠããããã«æããŸããçè ã®AIã§ãããŒã ãµãŒãã§å€§é£éãæ¢ããŠã¯ããŸããããã¡ãã¯ãããŸã§è£å©ãšããåžžã«èªåãšçžæã®äž¡æ¹ã«å¯ŸããŠ4æå ïŒãã ããæéãç¡ããªã£ãŠãããããã3æå ã2æå ãŸã§æžããïŒãŸã§ã®å®å šæ¢çŽ¢ïŒÎ±ïŒ+αãäœãã«ã€ããŠã¯åŸè¿°ããŸãïŒãè¡ã£ãŠæåæãæ¢ããšããææ³ãåããŸããã
äžèšã®ããã«ãèªåãšæµã®äž¡æ¹ã§4æå ãŸã§ã®å šæ¢çŽ¢ãè¡ãããšã®å©ç¹ãšæ¬ ç¹ã¯ä»¥äžã®ãããªãã®ããããšæããŸãã
- 倧é£éãçºåã§ãããããªç¶æ³ã«ãªã£ãæããã€é£éãçºåããã®ãæãæå©ããããçšåºŠå€æã§ããã
倧é£éïŒäŸãã°11é£é以äžïŒãçºåã§ãããããªç¶æ³ã«ãªã£ãæã§ããããã«çºåããã«æ°ã¿ãŒã³åŸ ã£ãŠããçºåããã»ããè¯ãã±ãŒã¹ããããŸããã4ã¿ãŒã³å ãŸã§ãèªåãšçžæã®äž¡æ¹ã§å šæ¢çŽ¢ãè¡ãäºã§ã4ã¿ãŒã³å ãŸã§ã®ã©ãã§å€§é£éãçºåããã°ãããã®å€æãããçšåºŠæ£ç¢ºã«è¡ãäºãã§ããããã«ãªããŸãïŒãã¡ãã4æç®ã®æç¹ã§ã¯ç¶æ³ãããèŠããŠããå®éã«ã¯5æç®ä»¥éã§äžå©ã«ãªãã±ãŒã¹ããŸãŸãããŸããã»ã»ã»ïŒã
- å°é£éã«ãã劚害ãããŸãè©äŸ¡ã§ãã
ã²ãŒã ã®åºç€ã§ã¯ãŸãããããŸããããçžæã®ãã£ãŒã«ãã«ããçšåºŠã®ãéªéãéãããåŸã§ããã°ã4æå ãŸã§ã®éã§ãå°ããªé£éãçºåããŠçžæã«ãéªéããµãããããšã§ãçžæã®é£éã®çºç«ç¹ãã€ã¶ããªã©ã®çç±ã§çžæã«å€§ææãäžããã±ãŒã¹ããããŸããããããæ£ç¢ºã«èªãããšãã§ããããã«ãªããŸãã
- ææªã®ã±ãŒã¹ãåé¿ã§ãã
çžæã®å±é¢ã«å¯ŸããŠã4æå ãŸã§å šæ¢çŽ¢ããããšã§ãåã¿ãŒã³ã«ãããææªã®ã±ãŒã¹ãæ³å®ããããã«å¯Ÿãã察çãåãããšãã§ããããã«ãªããŸããäžç€ä»¥éã®çžæã®å°é£éã«ãã劚害ã«ã察åŠã§ããããã«ãªããŸãã
- 4æ以å ã§çžæãè©°ããããªè¡åãååšããå Žåã確å®ã«æçã§çžæãè©°ãŸããããšãã§ããã
æ» å€ã«ãããŸããããæ°æå·®ã§åã¡è² ãã決ãŸããããªç¶æ³ã§åŒ·ããªããŸãããŸãã4æ以å ã®çžæã®è©°ã¿ãéããããšããªããªããŸãã
- ãããããããŒïŒã¹ãã«ã§çžæã«å€§éã®ãéªéãéããæŠæ³ïŒã«åŒ·ããªãã
ã¹ãã«ãçºåããã«ã¯ã¹ãã«ãã€ã³ãã80æºããå¿ èŠããããŸããããããé²ãããã«ã¯ãçŽ2ã¿ãŒã³ããã«3é£é以äžãè¡ãå¿ èŠããããŸãã4æå ãŸã§å®å šæ¢çŽ¢ãè¡ãã°ãçžæãã¹ãã«ãã€ã³ãã80以äžæºããããªããããªå°å»ã¿ãª3é£éã®è¡åãåãããšãã§ããããã«ãªããŸãã
- æ¢çŽ¢ã«æéãããã
åœç¶ã§ãããå šæ¢çŽ¢ã«ã¯æéãããããŸããç¹ã«ããµããããç°å¢ã¯ããŸãèšç®é床ãéãç°å¢ã§ã¯ãªãããã§ãçè ã®PCãšæ¯ã¹ãŠäžŠååŠçãè¡ããªãã£ãå Žåã«1.5åãããé ããããªæããããŸãããããã§ãåè¿°ã®é«éãªã·ãã¥ã¬ãŒã¿ã«ããã4æå ãŸã§ã®å®å šæ¢çŽ¢ïŒÎ±ãèªåãšæµã®äž¡æ¹ã«å¯ŸããŠæ¯ã¿ãŒã³è¡ã£ãŠããå¹³åããŠåæã®å€§å¢ã決ãŸã£ãŠãã30ã¿ãŒã³ããããŸã§ã¯èããããããã§ããã
- èªåãšæµã®4æå ãŸã§ã®å šæ¢çŽ¢ã«æéããããã倧é£éãçµãããã®ããŒã æ¢çŽ¢ã«å²ãåœãŠãããšãå¯èœãªæéãæžãã
ãã®æ¬ ç¹ã¯ç¢ºãã«ãããŸãããããããè©ŠããŠã¿ããšããã1ç§ã®ããŒã æ¢çŽ¢ãš2ç§ã®ããŒã æ¢çŽ¢ã§èŠã€ããæ倧é£éæ°ã«åçãªå·®ã¯ãªããåŸãããå©ç¹ã®ããšãèãããšãã®æ¬ ç¹ãäžåããšæãããŸãã
- çžæã®è¡åãæ°ã«ããããã®ã¯å¿ ãããæåã§ã¯ãªãïŒããããæ°ã«ããªãããã«ããããªãã»ã»ã»ïŒ
æµã®4æå ãŸã§ã®å šæ¢çŽ¢ãè¡ãäºã§ãåã¿ãŒã³ã«ããããã£ãšãèªåã«äžå©ãªç¶æ³ã調ã¹ãããšãã§ããŸãããå®éã«æµããã®ãããªè¡åããšã£ãŠãããšã¯éããŸããããŸããæµã劚害ããŠãããšæ³å®ããå Žåã®æåæã¯ãæµã劚害ããŠããªãã£ãå Žåã«ã¯æªæã«ãªã£ãŠããŸãå¯èœæ§ãé«ãã§ãããã ãææªã®ã±ãŒã¹ãç¡èŠããŠè¡åããå Žåã«ãçžæãææªã®ã±ãŒã¹ã®è¡åããšã£ãŠããå Žåã¯èŽåœçãªã®ã§ãããããžããã©ãããããéåžžã«æ©ãŸããåé¡ãšãªããŸããäºéžã®åºç€ã§ã¯ãã®ç¹ã«ã€ããŠã¯èãããåžžã«çžæããã¡ãã«ãšã£ãŠææªã®è¡åããšããšä»®å®ããŸãããäºéžã®åŸåã§ã¯ãã®ç¹ã«ã€ããŠåŸè¿°ã®ãããªå¯ŸçãåããŸããã
- åºç€ã§äžé£éïŒ8ïœ10é£éãããïŒãè¡ã£ãŠããŸã
4æå ãŸã§ããèªãŸãªãã®ã§ã4æå ãŸã§ã§10é£é以äžããé£éãçµããªãå Žåã10é£é以äžãçºåããŠããŸãã±ãŒã¹ãåºãŸãããç¹ã«åºç€ã§ããããã£ãŠããŸããšã»ãŒè² ãã確å®ããã®ã§ïŒçžæã«ãéªéã25以äžããèœãšãããçžæã®é£éã®åŠšå®³ã«ãªããªãã±ãŒã¹ãå€ãããããã®åŸã®çžæã®å€§é£éãé²ããè² ããŠããŸãïŒæå¶ããå¿ èŠããããŸããæçµçã«ã¯è©äŸ¡å€ã®èšç®åŒã«æãå ããããšã§å¯ŸçããŸããã
- å°é£éïŒ7é£é以äžïŒã«ãã劚害ããããããããã«ãªã
4æå ãŸã§ããèªãŸãªãã®ã§ã4æå ãŸã§ã«å€§é£éãèŠã€ãããã4æ以å ã«å°é£éïŒçžæã«éããéªéã9以äžïŒãè¡ãäºã«ãã£ãŠçžæã«ãéªéãéãããè¡åãååšããå Žåããã®è¡åããšããããããã«ãªã£ãŠããŸãããã§ããäžç€ä»¥éã¯ãã®ãããªè¡åãæå¹ãªããšããããŸãããåºç€ã§ãã®ãããªè¡åããšã£ãŠããŸããšãã¯ãèŽåœçã§ãããã¡ããæçµçã«ã¯è©äŸ¡å€ã®èšç®åŒã«æãå ããããšã§å¯ŸçããŸããã
- 5æç®ä»¥éã«å€§é£éã§é転ãããã±ãŒã¹ããã
4æå ãŸã§ããèªãŸãªãã®ã§ã5æç®ä»¥éã§çžæã倧é£éããŠã«ãŠã³ã¿ãŒãããŠè² ããã±ãŒã¹ãããã
äºéžã®åºç€ã§ã¯ãã®ãããªããšã¯ããŸããããŸããã§ããããäºéžã®åŸåããé£éã®çºç«ç¹ãäžã«ããããšã§çžæã«å ã«é£éããããã倧ããªé£éãã«ãŠã³ã¿ãŒã§è¿ããšããæŠæ³ãã§ãŠããŸãããçºç«ç¹ãäžã«ããå Žåã¯ãçžæã®å€§é£éããã¡ãã®é£ééå§åŸãã5æç®ä»¥éã«ãªãå Žåãå€ãã4æç®ãŸã§ã®å šæ¢çŽ¢ã ãã§ã¯å¯Ÿå¿ã§ããŸããããã®æŠæ³ã«å¯Ÿãã察åŠæ³ã«ã€ããŠã¯åŸè¿°ããŸãã
次ã«ãæµã®4æå ãŸã§ã®å šæ¢çŽ¢ïŒÎ±ã«ã€ããŠèª¬æããŸãã
ãã®ã²ãŒã ã§ã¯ãçžæã«ã©ãã ããéªéãéã£ããšããŠãã1ã¿ãŒã³ã«éã£ãŠãããéªéã®æ°ã¯10ã§ãæ®ãã¯æ¬¡ã®ã¿ãŒã³ãŸã§æã¡è¶ãããŸãããã®ãããåã¿ãŒã³ã«ãããŠã¯ãèªåã®ãã£ãŒã«ãã«ãéªéãéã£ãŠããªããããèªåã®ãã£ãŒã«ãã«ãéªéã10åéã£ãŠããããã®2éãã®ç¶æ³ããããåŸãŸããããã ãããã®2ã€ã®ã©ã¡ãã®ç¶æ³ãèµ·ãããã«ãã£ãŠãã®åŸã©ã®ãããªé£éãã§ãããã©ããã¯å€§ããå€ãã£ãŠããã®ã§ãèªåã®4æå ãŸã§ã®å šæ¢çŽ¢ãè¡ãéã«ã¯ãåã¿ãŒã³ã«ãããŠããéªéãéã£ãŠãããã©ãããèæ ®ã«å ¥ããå¿ èŠããããŸãã
ããããããšãäžèšã§ãŸãšãããšãèªåã®æ¢çŽ¢æã«åæ·±ãã«ãããŠãèªåã®ãã£ãŒã«ãã«ãéªéãéã£ãŠããå¯èœæ§ããããã©ãããç¥ãããããèæ ®ã«å ¥ããã ãšããããšã§ãã
詳现ãæžããšé·ããªããããã®ã§ã¯ããããŸãããæµã®4æå ãŸã§ã®å šæ¢çŽ¢+αæã«ã¯ãæ¢çŽ¢ã®åæ·±ãã«ãããŠãããæ§ã ãªæ¡ä»¶æ¯ã«ãããæµã®æ§ã ãªè¡åã«å¯Ÿããæµã«ãšã£ãŠãã£ãšæå©ãªå€ããèšç®ããŸãã
æ§ã ãªæ¡ä»¶ãšããŠã¯ä»¥äžã®ãããªãã®ãæããããŸãã
- ã©ã®æ·±ãã§æµã®ãã£ãŒã«ãã«ãéªéãèœäžããã
- ã¹ãã«ããã®æ·±ãã§äœ¿çšããã
- ã¹ãã«ããã®æ·±ã以åã§äœ¿çšããã
æµã®æ§ã ãªè¡åã«å¯Ÿããå€ãšããŠã¯ä»¥äžã®ãããªãã®ãæããããŸãã
- ãã®æ¡ä»¶ã§è¡ããé£éæ°
- ãã®æ¡ä»¶ã§ã¹ãã«ãçºåå¯èœãªå Žåã«éã蟌ãããéªéãããã¯æ°
- ãã®æ¡ä»¶ã§ãã£ãŒã«ãäžã«ååšãããããã¯æ°
- ãã®æ¡ä»¶ã§ãã£ãŒã«ãäžã«ååšãããéªéãããã¯æ°
- ãã®æ¡ä»¶ã§ãã£ãŒã«ãäžã«ååšãããã¹ãã«ã§æ¶ãããããã¯æ°ïŒ5ãš5ã®åšèŸºã®éåžžã®ãããã¯æ°ïŒ
ãŸããæµã®å šæ¢çŽ¢æã«ããã®æ·±ãã§æµã®ãã£ãŒã«ãã«ãéªéãèœäžããªãã£ãå Žåã¯ãèœäžããå Žåã®ç¶æ³ãå ããŠæ¢çŽ¢ãè¡ããŸãïŒãããïŒÎ±ã§ãïŒãããããããšã§ããã¡ããé£éãè¡ã£ãŠçžæã«ãéªéãéã蟌ãã å Žåã®æµã®åããè¡åãèæ ®ã«å ¥ããããšãã§ããããã«ãªããŸãããã ããåœç¶ã§ããããããè¡ããšæ¢çŽ¢ã®å±é¢æ°ãå¢å ããŸãïŒæ倧2^4=16åïŒã
ãªããæµã®å Žåã¯æ¢çŽ¢æã«ãäžèšã®æ å ±ã¯èª¿ã¹ãŸãããäžèšã®æ å ±ãç·åããå±é¢ã®è©äŸ¡å€ã®ãããªãã®ã¯å¿ èŠãªãã®ã§èšç®ããŸããã
ãã®èšç®ã«ã¯ãåæã¯ã§ããµããããç°å¢ïŒäžŠååããªãïŒã§é·ãå Žåã¯7ç§ã»ã©ãå¹³åãããš3ç§ã»ã©ããã£ããããªæ°ãããŸããæ¢çŽ¢å±é¢æ°ã¯æ倧㧠37 ^ 4 * 16 = çŽ3000äžå±é¢ãªã®ã§ã1å±é¢ããã 1/æ°çŸäž ç§ã§èšç®ã§ããŠãããšããããšã«ãªãã§ããããïŒãã ãã眮æè¡šãã€ãã£ãæç©ãã¯è¡ã£ãŠããã®ã§å®éã«èª¿ã¹ãå±é¢æ°ã¯ããå°ãå°ãªãã¯ãïŒããªããäºéžçµäºåŸã®æ¹è¯ã§ãããæ·±ã1ã§èªåãçžæã«éã蟌ãããéªéã®ãããã¯æ°ã®æ倧æ°ã確å®ã§ããããšãèæ ®ã«å ¥ãããšãšã§ãã®æéãçŽååã«ããããšãã§ããŸããã
äžèšã®æµã®æ¢çŽ¢ã§åŸãããæ å ±ãèªåã®4æå ãŸã§ã®å šæ¢çŽ¢æã«å©çšããŸããèªåã®æ¢çŽ¢æã«ã¯ãèªåãè¡ã£ãè¡åã®çµæãåè¡åã§çžæã«ã©ãã ããéªéãéãããæ£ç¢ºã«èšç®ããããšãã§ããŸãããã®æ å ±ãå©çšããã°ãåæ·±ãã§çžæåŽã®ãã£ãŒã«ãã«ãéªéãéããã©ããããããã®ã§ãèªåããããŸã§ã«ãšã£ãè¡åã«å¯ŸããŠãçžæããšãããšãã§ããææªã®è¡åïŒäŸãã°æ倧é£éæ°ããã¹ãã«ã§ãããããããéªéã®æ倧æ°ãçžæãæžããããšãå¯èœãªãã¡ãã®æ倧ã¹ãã«ãã€ã³ããªã©ïŒãããããŸãããã®æ å ±ã䜿ã£ãŠãçžæãåžžã«èªåã«ãšã£ãŠææªã®è¡åããšã£ããšããä»®å®ã§æ¢çŽ¢ãè¡ããŸãããããŠã4æå ã®å±é¢ã§ã®è©äŸ¡å€ïŒèšç®æ¹æ³ã¯åŸè¿°ïŒã®æãé«ãæãæåæãšããŠæ¡çšããŸãã
ãã¡ãã®å Žåã¯ãæ倧 37 ^ 4 = çŽ200 äžå±é¢ã調ã¹ãå¿ èŠãããããµããããç°å¢ã§ã倧äœ1ç§ä»¥äžã§èšç®ããããšãå¯èœã§ããã
äžèšã®æé ã§ã4æç®ãŸã§èªåãšçžæã®å šæ¢çŽ¢ãè¡ã£ãçµæãããç¯å²ã«éãããŸãããçžæãèªåã«ãšã£ãŠææªã®è¡åããšã£ãå Žåã®æåæãèšç®ããŠæ¡çšãããšããAIã«ãªããŸãããªã³ã©ã€ã³ç°å¢ã§ã¯50ã¿ãŒã³ãããããµããããç°å¢ã§ã30ã¿ãŒã³ãããã¯èšç®ã§ãããšæããŸãïŒãããéããå Žåã¯æ¢çŽ¢æ·±ããæžããïŒã
åè¿°ããããã«ã8æç®ãŸã§ã¯ç¡æ¡ä»¶ã§æåã«èšç®ããããŒã æ¢çŽ¢ã®è¡åãå¿ ããšãããã«ããŠããŸããã9ã¿ãŒã³ç®ããã¯ããŒã æ¢çŽ¢ã®çµæãšãäžèšã®å šæ¢çŽ¢ã§åŸãããæåæã®ãã¡ã©ã¡ããæ¡çšãããã«ã€ããŠã¯ã以äžã®ããã«å€æããŸããã
- ãéªéãéã£ãŠãããããŒã æ¢çŽ¢ã®çµæã¯äœ¿ããªããªãã®ã§ãã®æç¹ã§ç Žæ£ããã
- æ¢çŽ¢æã«ãåæãããŒã æ¢çŽ¢ã§åŸãããè¡åããšã£ãå Žåã®è©äŸ¡å€ã®æ倧å€ãèšç®ããŠãããæåæã®è©äŸ¡å€ãšæ¯èŒããŠå·®ãäžå®ä»¥äžã®å Žåã¯ãããŒã æ¢çŽ¢ã®è¡åãåªå ãããå·®ãšããŠã¯ãããããè©ŠããŸãããæçµçã«ã¯ 30 çšåºŠã«èœã¡çããŸããã
åºç€ã®è©äŸ¡å€ã¯ä»¥äžã®ãããªèŠçŽ ã®åèšã§èšç®ããŠããŸããã
- çžæåŽã®èœäžäºå®ã®ãéªéã®æ° - èªååŽã®èœäžäºå®ã®ãéªéã®æ°
- çžæåŽã®ãã£ãŒã«ãå ã®ãéªéã®æ° - èªååŽã®ãã£ãŒã«ãå ã®ãéªéã®æ°
- 䞡端ã®åã«ååšãã 5 ã®ãããã¯ã®æ°ã«ããããã«ãã£
ãã®é ã¯ããŸã ã¹ãã«ãéèŠã ãšæã£ãŠãã®ã§ã5ã¯ãªãã¹ã端ã«çœ®ããªãã»ããè¯ãããªãšæã£ãŠå ¥ããŠãŸããã
- èªåã®ã¹ãã«çºåã«é¢ããè©äŸ¡å€
èªåã®ã¹ãã«ãã€ã³ã | è©äŸ¡å€ |
---|---|
80 æªæº | ã¹ãã«ããã®æç¹ã§çºåã§ããå Žåã«çžæã«éããéªéã®æ° * (1 + ã¹ãã«ãã€ã³ã) / 81 |
80ä»¥äž | ã¹ãã«ããã®æç¹ã§çºåããå Žåã«çžæã«éããéªéã®æ° |
ã¹ãã«ãã€ã³ãã0ã§ãè©äŸ¡å€ã0ã«ãªããªãããã«å·¥å€«ããŠããŸãããŸãããã®é ã¯ãŸã ã¹ãã«ãç©æ¥µçã«çãã«è¡ã£ãŠãããããªæ°ãããŸãã
- æµã®ã¹ãã«çºåã«é¢ããè©äŸ¡å€
èªåã®ã¹ãã«ãã€ã³ã | è©äŸ¡å€ |
---|---|
56 æªæº | 0 |
80 æªæº | -ã¹ãã«ããã®æç¹ã§çºåã§ããå Žåã«çžæã«éããéªéã®æ° * ã¹ãã«ãã€ã³ã / 80 / 5 |
80ä»¥äž | -ã¹ãã«ããã®æç¹ã§çºåãããå Žåã«çžæã«éããéªéã®æ° |
ãããŸãæµã®ã¹ãã«çºåã«ææã«ãªãããããšãæµã倧é£éãçµãã§ããå Žåã§ããã¹ãã«ãçã£ãŠãããšåéãããŠããŸãããã«ãªãã®ã§ãã¹ãã«ãã€ã³ãã56æªæºïŒã¹ãã«çºåãŸã§æéã§ã4ã¿ãŒã³ãããç¶æ³ïŒã®å Žåã®è©äŸ¡å€ã¯ 0 ãšããŸããã
ãŸããå®éã«çºåã§ããªããã°å±éºã§ã¯ãããŸãããå®è³ªçãªè¢«å®³ã¯ãªãã®ã§ããã« 5 ã§å²ã£ãŠããŸãã
- äžã«ç©ã¿ãããå Žåã®è©äŸ¡
ããŸãäžã«ãããã¯ãç©ã¿ããããšæ»ã«ããããªã£ããããéªéãéã£ãŠããå Žåã®è¡åãå¶éãããã®ã§ã以äžã®ãããªãã€ãã¹ã®è©äŸ¡å€ãèšå®ããŸããããªãã17段ç®ã«ãããã¯ãååšãããšæ»ãã§ããããã«æãããããããŸããããã¿ãŒã³éå§æã«éã£ãŠãããéªéãè©äŸ¡ã®éã«èæ ®ã«å ¥ããŠããããå€ãèšå®ããŠãããŸãããã ããæçµçïŒæ¬æŠæåºçïŒã«ã¯ããããå ¥ãããšå€§é£éãçµãéã®é害ã«ãªãã®ã§ 17 段ç®ä»¥å€ã¯æçµçã«ã¯ 0 ãšããŸããã
äžããã®æ®µæ° | ãããã¯ã®æ°1ã€åœããã®è©äŸ¡å€ |
---|---|
15 | -10 |
16 | -20 |
17 | -100 |
- çžæã殺ãã«è¡ãè©äŸ¡
é£éãã¹ãã«çºåã®çµæãçžæã«èŽæ»éã®ãéªéãéãããšãã§ããå Žåããªãã¹ãæ©ãã«éãããã»ããè¯ãã¯ãã§ããããã§ãçžæã«èŽæ»éã®ãéªéãéãããšãã§ãããã©ãããå€æããã§ããå Žåã«ããªã倧ããã®è©äŸ¡å€ãèšå®ããŸããã詳现ã¯æ¬¡ãèŠãŠãã ããã
åŸããã€çžæã«ãéªéãéãããã°èŽæ»éã«ãªãããèšç®ããŸãããçžæãã£ãŒã«ãã«èœãšãããéªéãããã¯ã¯æ±ºããŠæ¶ããªãã®ã§ãåçŽã«èãããš160åèœãšãã°èŽæ»éãšãªããŸãããããå°ã工倫ããŸãããå ·äœçã«ã¯ãã¿ãŒã³éå§æç¹ã§ã®çžæãã£ãŒã«ãã®ç¶æ³ã«å¯ŸããŠä»¥äžã®èšç®ãè¡ããŸããã
- äžäžå·Šå³ïŒæããå«ãïŒãããéªéãããã¯ãŸãã¯ãã²ãŒã ç€ã®ç«¯ã§å²ãŸããŠãããããã¯ã®å¡ãæ¢ãïŒãã ããäžæ¹åã®ç«¯ã¯ç¡èŠããïŒã
- ãã®ãããªãããã¯ã®å¡ããã£ãå Žåã«ããã®äžã«5ã®ãããã¯ãäžã€ãååšããªãå Žåã¯ããã®ãããã¯ã®å¡ã¯ãããªãæ¹æ³ã§ãåé€ããããšã¯ã§ããªãã®ã§ããã®ãããã¯ã®å¡ããéªéãããã¯ãšã¿ãªãã
- ååã®ãéªéãããã¯ã®æ°ãèšç®ãããã®æå€§å€ b ãæ±ããã
- 160 - b * 10 ãèŽæ»éã®ãéªéãããã¯ã®æ°ãšããã
æ¢çŽ¢ã®ææ·±éšã«ãããŠãçžæã«å€§éã®ãéªéãéãããŠããå Žåãçžæã¯æ·±ã4ãŸã§ã®è¡åã§ãã¡ããéã£ãã倧éã®éªéãè¿ããŠããªããšããããšã«ãªããŸããããã§ããã®ãããªå Žåã¯ãçžæã¯å€§é£éãè¡ã£ãŠéããããéªéãè¿ãããšãã§ããªããšããããšã«ããŸãã
ãã®ä»®å®ã¯ãäºéžã®åºç€ã§ã¯ç¢ºãã«ã»ãšãã©ã®å Žåã«æ£ããã£ãã®ã§ãããäºéžã®åŸåã§ã¯ããŸãåœãŠã«ãªããªããªã£ããšæããŸãïŒãããéå¹æã«ãªããããªãïŒããã ããåºç€ã§èŽæ»éãšå€æãããããã«ã¯æäœã§ããéªé160以äžéã17é£é以äžãå¿ èŠãªç¹ããšããçžæããããªã倧é£éã§è¿ããå Žåãæ·±ã4ãŸã§ã®è¡åã§è¿ããããšãå€ãç¹ããããã®èŽæ»éã®å€æãã²ãŒã ã®çµç€ã§æå¹ã«åãããšãå€ããã«èŠããïŒããããããæ°ã®ããããã»ã»ã»ïŒãã®ã§ã決åã§æåºããAIããã®ãŸãŸæ®ããŠãããŸãããããæãããŠåãšåºãããå¶ãšåºããã»ã»ã»
ãŸããèŽæ»éã®ãéªéãéãããŠãããã«ã€ããŠã¯ä»¥äžã®æ¡ä»¶ã§å€æããŸãã
- æ¢çŽ¢ã®ææ·±éšã«ãããŠçžæåŽã«ããŸã£ãŠããèœäžäºå®ã®ãéªéã®æ°ããèŽæ»éã®ãéªéã®ãããã¯ã®æ°ä»¥äžã®å Žå
- æ¢çŽ¢ã®ææ·±éšã«ãããæµã®ã¹ãã«ãã€ã³ããããæµãæçã§äœã¿ãŒã³ã§ã¹ãã«ãçºåå¯èœããèšç®ãã(= (80 -ãã¹ãã«ãã€ã³ã) / 8)
- ã¹ãã«çºåãŸã§ã«æµãæ»äº¡ããå Žåã¯ãèŽæ»éã®ãéªéãéãããŠãããšå€æãã
äžèšã®åºæºã§èŽæ»éã ãšå€æã§ããå Žåã¯è©äŸ¡å€ã«ä»¥äžã®å€ãå ç®ãããçžæã«èŽæ»éã®ãéªéãéãããšãã§ããå Žåããªãã¹ãæ©ãã«ãããããã«ããããã«ã倧éã®ãéªéãéã蟌ãã ã¿ãŒã³ãåŒããŠããŸãã
1e10 - 1e7 * ãã¡ããçžæã«å€§éã®ãéªéãéã蟌ãã ã¿ãŒã³ã
èŽæ»ã®æ¡ä»¶ã¯ããªãå³ããã®ã§ãçžæãçæ»ã«ãªã£ãŠããå Žåã«è©äŸ¡å€ãå ç®ããããšã«ããŸãããçæ»ã®å®çŸ©ã§ãããèŽæ»éã®ãéªéã®æ° - 30 以äžçžæã«ãéªéãéã£ãŠããå ŽåãšããŸããã
ãã¡ãã®å Žåã¯ãçžæãçæ»ã«ãããéªéãéãããŠãããã«ã€ããŠã¯ä»¥äžã®æ¡ä»¶ã§å€æããŸãïŒèšç®ã¯å€å°ç°¡ç¥åããŠããŸãïŒã
- æ¢çŽ¢ã®ææ·±éšã«ãããŠçžæåŽã«ããŸã£ãŠããèœäžäºå®ã®ãéªéã®æ°ããçæ»ã«ãªããéªéã®ãããã¯ã®æ°ä»¥äžã®å Žå
- æ¢çŽ¢ã®ææ·±éšã«ãããæµã®ã¹ãã«ãã€ã³ããããæµãæçã§äœã¿ãŒã³ã§ã¹ãã«ãçºåå¯èœããèšç®ãã(= (80 -ãã¹ãã«ãã€ã³ã) / 8)
- ã¹ãã«çºåãŸã§ã«æµãæ»äº¡ããå Žåã¯ãèŽæ»éã®ãéªéãéãããŠãããšå€æãã
- ããã§ãªããã°ãæµãã¹ãã«ãæçã§çºåããå Žåã«ããã¡ãã«éãããŠãããéªéã®æ°ãæšå®ãããã®åã ãçžæã«éããããéªéãçžæ®ºããããšããŠããçžæã«çæ»ãšãªããéªéãéãããŠããå Žåã¯çæ»ãšããã
1e9 - 1e6 * ãã¡ããçžæã«å€§éã®ãéªéãéã蟌ãã ã¿ãŒã³ã
äºéžã®äžç€ãããã§ãæ¢çŽ¢ã®äžŠååãè¡ã£ãçµæããªã³ã©ã€ã³å¯ŸæŠã§ã¯èªåã®å šæ¢çŽ¢ãæ·±ã5ã§è¡ã£ãŠã3ïœ5ç§ã§å®äºã§ããããšãããã£ãã®ã§ãäžææã¯æ·±ã5ã§èªåã®æ¢çŽ¢ãè¡ã£ãŠããŸããïŒæµã¯ææªãã®16åã«ãªãã®ã§ç¡çïŒããã ã匷ããç®ã«èŠããŠåŒ·ããªããšããæããããªãã£ãç¹ãšãäžç€ã§ã®å·¥å€«ã§ä»ã«èšç®æéãå¿ èŠã«ãªã£ãã®ã§ãæ·±ã4ã«æ»ããŸããã
ãããŸã§ããäºéžã®åºç€ã§ã®AIã§è¡ã£ãããšã§ãïŒäºéžéå§åãŸã§ã§ã»ãŒãããŸã§ã¯å®æããŠããŸããïŒã倧é£éã®æ¢çŽ¢ã¯æåã®ã¿ãŒã³ã®ããŒã æ¢çŽ¢ïŒå€§äœ16ïœ18é£éããããŸã§èŠã€ããããïŒã ãã§ããã以éã¯4æå ãŸã§ã®å šæ¢çŽ¢ã®ã¿ã§ããããããã§ã察æŠããããšããŸã«26é£éãšããã§ãŸããããŸããæå³ããŠãããªã£ãããã§ã¯ãªãã®ã§ãããçµæãšããŠã¹ãã«ãçžæãçºåããããšããŠããæã«ãã¡ãããšåŠšå®³ãããããªè¡åããšã£ãŠãããã®ãå°è±¡çã§ããã
ãŸããèªå·±å¯ŸæŠããããšåºç€ã®å€§é£éã®æã¡åãã®åŸã¯ãå€ãã®ã²ãŒã ãçµç€ã¯é£éãããã¹ãã«ãçºåããããšããåŽãšé»æ¢ããåŽã®å¯ŸæŠã¿ãããªæãã«ãªããŸãããã¹ãã«ãçºåãããšçžæã«ãéªéã2000å以äžéãããŠçµäºã¿ãããªæããå€ãã£ãã§ãããã®ãããæåã¯äºéžã§ã倧é£éããäºãã«çºåããåŸã¯ãã¹ãã«ã®çºååæŠã«ãªãè©Šåãå€ããªãã®ããªãšæã£ãŠãã®ã§ãããããã¯ãªããŸããã§ããã
äºéžã®åºç€ã§ã¯ãèªåã®AIã¯ããªã匷ãã£ããšæããŸãã1äœã«ãªãããšãå€ãã£ãã§ãããåºç€ã§ããã¿ãããããšã«ããæéã§12é£éãçµãã§ãåºæ¥æ¬¡ç¬¬çºåãããšããAIããé£éãçããã«ã²ãããã¹ãã«ã«ãã倧éã®ãéªéãéããšããAIã«ã¯ããªãåçãè¯ãã£ããšæããŸãã
äºéžãäžç€ã«ãªããšãæåã«çµãã 倧é£éã ãã§ã¯ãªããªãåãŠãªããªã£ãŠããŸãããããã§ãæåã®å€§é£éã®åŸã«ã次ã®å€§é£éãçµãå¿ èŠãã§ãŠããŸããããããã«ã4æå ãŸã§ã®å šæ¢çŽ¢ã ãã§ã¯ãå¶ç¶å€§é£éãçµãããšã¯ãããŸãããå¹çãã倧é£éãçµããããªè¡åããšãããããšã¯äžå¯èœã§ããããã§ãæåã®å€§é£éã®çºååŸã«ãããŒã æ¢çŽ¢ã§å€§é£éãçãããããªè¡åãæ¢çŽ¢ããããã«ããŸããããã ããæåã®ããã«çŽ20ç§ãããŠæ¢çŽ¢ãè¡ããšæéãããããã£ãŠã足ããªãã®ã§ã以äžã®ããã«èŠæš¡ãçž®å°ãã1ç§çšåºŠïŒæ倧2ç§çšåºŠãšã£ãããšãããïŒã§æ¢çŽ¢ãè¡ãäºã«ããŸããã
ãªããåœç¶ã§ãããæåã«å€§é£éãæ¢çŽ¢ããå Žåãšç°ãªããå·Šå³ã®2åã«ãããã¯ãèœãšããªããšãããããªå¶éã¯è¡ããããã¹ãŠã®å Žæã«ãããã¯ãéããã圢ã§æ¢çŽ¢ãè¡ã£ãŠããŸãããŸããæåãšç°ãªããæé12é£éããããããšãããããªããšã¯è¡ã£ãŠããŸããã
ãŸããä»ã®AIã§ã¯äžåºŠè¡ã£ãããŒã æ¢çŽ¢ã®çµæã®äžéšã次ã®ã¿ãŒã³ã®æ€çŽ¢ã«äœ¿ããŸããããããŠãããã®ãããããã§ããããçè ã®AIã§ã¯äžå䜿ããŸããã¯ãããæ¯ã¿ãŒã³èšç®ããªãããŠããŸãããããè¯ãã£ãã®ãã©ããã¯äžæã§ãããç¹ã«åé¡ã¯æããªãã£ãã®ã§ãã®ããã«ããŸããã
ãªããããŒã æ¢çŽ¢ã«ã¯æéããããã®ã§ãæ®ãæéã30ç§ãåã£ãæç¹ã§ããã®ããŒã æ¢çŽ¢ãå«ãããã¹ãŠã®ããŒã æ¢çŽ¢ã¯è¡ããªãããã«ããŠããŸãïŒããããªããšãã£ãšããéã«æéåãè² ãã«ãªãïŒãæ®ã30ç§ãåã£ãåŸã¯æ·±ãã®æµ ãïŒ2~3ïŒèªåãšæµã®å šæ¢çŽ¢ã®ã¿ã䜿ã£ãŠåŸãããæåæã§è¡åããŸãã
ãªã³ã©ã€ã³ç°å¢ | ãµããããç°å¢ | |
---|---|---|
æ倧ããŒã æ·±ã | 20 | 16 |
ããŒã å¹ | 1500 | 700 |
é£éæ°æ¯ã®ããŒã å¹ | 300 | 350 |
å¶éæé(ms) | 1000 | 1000 |
ä»èŠãŠã¿ããšãé£éæ°æã®ããŒã å¹ ã¯ãµããããç°å¢ã®ã»ãã倧ããã§ããããªãã§ãã®ããã«ãããã¯ã¡ãã£ãšèŠããŠããŸããã
ãŸããããã§åŸãããããŒã æ¢çŽ¢ã«ããè¡åãšãæåæã®è¡åã®ã©ã¡ããæ¡çšãããã«ã€ããŠã§ãããããŒã æ¢çŽ¢ã®è¡åãè¡ã£ãå Žåã®è©äŸ¡å€ã®æ倧å€ããæåæã®è¡åã®è©äŸ¡å€ã®å·®ã10以äžã®å Žåã«ããŒã æ¢çŽ¢ã«ããè¡åãæ¡çšããããã«ããŸããã
åºç€ã§ã¯ãçžæã¯å¿ ããã¡ãã«ãšã£ãŠææªã®è¡åããšã£ãŠãããšããä»®å®ãåã£ãŠããŸããããæ¬åœã«ããã§è¯ãã®ããšããçåããããŸããããŸããææªã®è¡åã®å®çŸ©ãããçžæããéªéããã¡ãã«éããããšãå¯èœãªå Žåãæ倧ééãããŠããããšããŠããã®ã§ãããçžæããéªéãéãããçµæããã¡ããæå©ã«ãªãïŒãã倧é£éãçµããïŒã±ãŒã¹ãããããšãããã£ãŠããŸããã
ããã§ãèªåã®å šæ¢çŽ¢ãèŠçŽããçžæããéªéãéãããããšãå¯èœãªå Žåããå®éã«éãããå Žåããšãéãããªãã£ãå Žåãã®äž¡æ¹ã®ã±ãŒã¹ã§æ¢çŽ¢ãè¡ããè©äŸ¡å€ã®äœãã»ããæ¡çšãããšãã颚ã«ããŸããããã®å®è£ ã«ãããèšç®éãææªã§ 2 ^ 4 = 16åãšãªããŸãããããã§ãæ倧3ç§çšåºŠã§èšç®ãè¡ããã®ã§è¯ããšããŸããããªããããã§ã²ãŒã æšã min-max æšã®ããã«ãªãã®ã§ãαβæç©ããã§ããã¯ããªã®ã§ãããçŸå®çãªæéã§å®è¡ã§ããŠããŸã£ãç¹ãšãä»ã«å®è£ ãããèŠçŽ ããã£ãã®ã§ãαβæç©ããåŸåãã«ããŠããŸã£ãçµæãçµå±ãã®ããšãå¿ããŠããŸãã決åæåºçãαβæç©ãã¯å®è£ ãããŠããŸããããã ãå®éã«ã¯ãå®éã«éãããå Žåããšãéãããªãã£ãå Žåãã®äž¡æ¹ã®ã±ãŒã¹ãèšç®ããå¿ èŠãããå±é¢ã¯ããã»ã©å€ããªãã®ã§Î±Î²æç©ããå®è£ ããŠãããã®ãããæéã®ççž®ã«ãªããšããäºã¯ãªããšæããŸãã
ãã®å®è£ ã§ããæ£ç¢ºã«ç¶æ³ãå€æã§ããããã«ãªã£ãã®ã§ã¯ãªãããšæãã®ã§ãããããã§åŒ·ããªã£ãŠãããã©ããã¯ã¡ãã£ãšããããããŸããããšããã®ãããã®å®è£ ãããŠãé äœãç®ã«èŠããŠäžãã£ããããªãã£ãããã§ããããããããšãã®å®è£ ãããªãã»ãã匷ãã£ããšããäºãããããã®ããã®æã®æ¹è¯ã®æããšããã§ãã
ããã€ãè©äŸ¡å€ã®èŠçŽããè¡ããŸããããã ããããããã©ããããå¹æããã£ããã©ããã¯ããŸãã¡ããããããŸãããéå¹æãªãã®ãããå¯èœæ§ã¯é«ãã§ãã
-
æµã®èœäžäºå®ã®ãéªéã®æ° - èªåã®èœäžäºå®ã®ãéªéã®æ° ãè©äŸ¡å€ã®äžã€ãšããŠèšç®ããŠããŸããããããèãããšãã®å€ã®10ã®äœã¯éèŠã§ããã1ã®äœã¯ããã»ã©éèŠã§ã¯ãªããšæã£ãã®ã§ã1ã®äœã®å€ã 1/5 ã«ããŠè©äŸ¡ããŸããã
-
20ã¿ãŒã³ä»¥å ã«ãæµã9é£é以äžïŒéã£ãŠãããéªéã®æ°ã18以äžïŒã®è¡åããšãããšã¯ã»ãŒããåŸãªãç¹ãšãå®éã«èœã¡ãŠãããéªéã®æ°ã10ãã ãšããã¡ãã®é£éã¯ã»ãŒé»å®³ãããªãããç¡èŠããŠãè¯ããšèããæµã®ãã®ãããªè¡åã«å¯ŸããŠ
+50
ã®è©äŸ¡ãå ç®ããŸããã -
èªåã®ãã£ãŒã«ãã®ãéªéã 70 以äžã®å Žåãæµã¯8é£é以äžã®è¡åãè¡ããªãã ãããšä»®å®ããŠããã®ãããªæµã®è¡åã«å¯ŸããŠã
èœãšããŠãããéªéã®æ° * 0.9
ã®è©äŸ¡å€ãå ç®ããŸããã -
ãã¡ããçžæã«éããããéªéã®åèšã 15 以äžã®å Žåã¯ãããŸãå¹æããªãã ãããšããããšã§ã
éããããéªéã®æ° * 0.9
ãæžç®ããŸããããªããçžæã®ã¹ãã«çºåãé²æ¢ããç®çã®3é£éã¯ãçžæã«éãããéªéã®æ°ã2ãªã®ã§ãããã§æžç®ããŠãã»ãšãã©è©äŸ¡å€ã«åœ±é¿ã¯äžããªãã®ã§ããã®èšç®ãã¹ãã«çºåãé²æ¢ããé£éã«æªåœ±é¿ãããããããšã¯ã»ãšãã©ãªããšæãããŸãã -
ãã¡ãã®å°é£éã®æå¶
çžæãã£ãŒã«ãã«ãéªéãå°ãªãå Žåã®4ïœ8,9é£é以äžã®é£éã¯éå¹æãªã®ã§äžå®éïŒ-10ïœ-20çšåºŠïŒã®è©äŸ¡å€ãæžç®ããŸããã3é£éã¯çžæã®ã¹ãã«çºåã®åŠšå®³ãšããŠè¡ã£ãŠããå¯èœæ§ãããã®ã§ãé€å€ããŸããã
çµç€ã«ãªããšãé£éã«å¯ŸããŠãåŸåºãã®å€§é£éã§è¿ããšããã«ãŠã³ã¿ãŒæŠè¡ãåã£ãŠããAIãå¢ããŠããŸãããçè ã®AIã¯ãæå³ããŠãã®ããã«äœã£ãŠããããã§ã¯ãªãã®ã§ãããæåã®ã»ãããã«ãŠã³ã¿ãŒæŠè¡ãçµæ§ãšã£ãŠããŸããããæ¬æ Œçã«ã«ãŠã³ã¿ãŒæŠè¡ãæå³ããAIãšæ¯ã¹ããšã«ãŠã³ã¿ãŒã®ç²ŸåºŠã¯äœããšãããããåŸãªãç¶æ³ã«ãªããŸããããã ããã«ãŠã³ã¿ãŒæŠè¡ã®AIãšã®å¯ŸæŠæ瞟ããããæªãã£ãããã§ã¯ãªãã§ãã
ãªãããµããããç°å¢ã§ã¯ããããã°ãé£ãããæ¹è¯ããçµæåããªããªãããšãæãã£ãã®ã§ãçµç€ã®æ¹è¯ã¯äºéžã®æ®µéã§ã¯è¡ããŸããã§ããããã®ããã§ããµããããç°å¢ã®AIã¯åçãæªããããªã足ãåŒã£åŒµãããŸãããããã¯ç§ã ãã§ãªããåå è ã®ã»ãšãã©ã¯ããã ã£ãã®ã§ã¯ãªãããšæãããŸãã決åæåºçã§ã¯ãµããããç°å¢ã§ã®ãããã°æ¹æ³ïŒåŸè¿°ïŒãæãã€ãããšãã§ããã®ã§åãå ¥ããŠãããŸãã
ãããã«ãã察çãåã£ãã»ããè¯ããšæãã以äžã®ãããªæ¹è¯ãè¡ããŸããã
ã¿ãŒã³éå§æã«ä»¥äžã®ãããªèšç®ãè¡ããŸãã
-
ã¿ãŒã³éå§æã®å±é¢ã«ããããèªåã®æ倧é£éæ° c1 ãš æµã®æ倧é£éæ° c2 ããŸãèšç®ããã
-
c1 ã 7以äžã®å Žåã¯ãçžæã«10以äžã®ãéªéãéããªãã®ã§çµäºã
-
c1 <= c2 ã®å Žåããã®ã¿ãŒã³ã§åæã«æ倧é£éãèµ·ãããå Žåãæå©ã«ã¯ãªããªãã®ã§çµäºã
-
c1 > c2 ã®å Žåã¯ããã®ã¿ãŒã³ã§åæã«æ倧é£éãèµ·ãããå Žåãèªåã«æå©ã«ãªãããèªåã ãããã®ã¿ãŒã³ã«æ倧é£éããå ŽåãåŸã«çžæããã倧ããªé£éãè¿ããŠããå¯èœæ§ãæ®ããããã§ããã®å Žåã¯ã以äžã®è¡šã®æ¡ä»¶ã§ã2çš®é¡ã®ããŒã æ¢çŽ¢ãæµã«å¯ŸããŠè¡ãã
ãªã³ã©ã€ã³ç°å¢ | ãµããããç°å¢ïŒæ±ºåçïŒ | |
---|---|---|
æ倧ããŒã æ·±ã | 5(10) | 5(10) |
ããŒã å¹ | 1600 | 500 |
é£éæ°æ¯ã®ããŒã å¹ | 400 | 200 |
å¶éæé(ms) | 1000 | 1000 |
泚ïŒå€§äºãªèŠçŽ ã ãšæãããã®ã§ãããããæ倧1ç§ãããŠæ¢çŽ¢ããŠããŸãã
-
ãã¡ããåæã§é£éãããªãã£ãå Žåã«æµãçæéïŒæ·±ã5ïŒã§è¡ããæ倧é£éæ° c3 ãèšç®ããã
-
ãã¡ããåæã§æ倧é£éãè¡ã£ãå Žåãæµã10æ以å ïŒæ·±ã10ïŒã§è¡ããæ倧é£éæ° c4 ãèšç®ããã
-
c1 > c3 ã®å Žåãæµã¯ãã¡ããäžåãé£éãçšæããŠããªããšå€æãçµäºïŒåæã§çºåããããé£éã䌞ã°ããã¯ãéåžžã®æ¢çŽ¢ã§å€æããŠãããïŒã
-
c1 <= c3ãc1 > c4 ã®å Žåã¯ãåæã§ãã¡ããé£éããããšã§ãçžæã®å€§é£éãé²ãã ããã§ãçžæã¯10ã¿ãŒã³ä»¥å ã« c1 é£éãäžåãé£éãè¡ããªãããšãããããããã§ãèªåã®å šæ¢çŽ¢ã«ãããŠãåæã« c1 é£éãè¡ãå šãŠã®è¡åã«å¯ŸããŠä»¥äžã®ããŒãã¹è©äŸ¡å€ãå ç®ããããªããããã§ããŒã æ¢çŽ¢ã10ãšããã®ã¯ã10ã¿ãŒã³ããã°æ¬¡ã®å€§é£éãçµããŠããŸãå¯èœæ§ãé«ãã®ã§ããã以äžã®æ·±ããŸã§æ¢çŽ¢ããŠãããŸãæå³ããªãã ãããšæã£ãããã§ãã
c1é£éã§çžæã«éãéªéã®æ° - c4é£éã§çžæããã¡ãã«éããéªéã®æ°
-
c1 <= c3, c1 = c4 ã®å Žåã¯ç¹ã«äœãããçµäºããã
-
c1 <= c3, c1 < c4 ã®å Žåã¯ãåæã§c1é£éããŠããçžæã10ã¿ãŒã³ä»¥å ã«ãããäžåãé£éãè¿ããŠããå¯èœæ§ãé«ãããšãè¡šããããã§ãèªåã®å šæ¢çŽ¢ã«ãããŠãåæã« 5é£é以äžïŒãã®å Žåã®é£éã¯ãã¹ãŠäžå©ã«ãªãã®ã§5é£éãšããããŸãã3,4é£éã¯ã¹ãã«åŠšå®³ã®æå³ãããã®ã§é€å€ããïŒãè¡ãå šãŠã®è¡åã«å¯ŸããŠä»¥äžã®ããã«ãã£ïŒè² ïŒã®è©äŸ¡å€ãå ç®ããã
c1é£éã§çžæã«éãéªéã®æ° - c4é£éã§çžæããã¡ãã«éããéªéã®æ°
ãã®ã²ãŒã ã§ã¯ãªãã¹ã倧é£éãçãããã®ã§ãæ¯ã¿ãŒã³è¡ã倧é£éãçãããŒã æ¢çŽ¢ã«ãã£ãŠåŸãããè¡åãåãããã®ã§ããããã®è¡åãåããšäžå©ã«ãªãã±ãŒã¹ããããŸãããããŸã§ã¯ãèªåã®å šæ¢çŽ¢ã®æåæã®è©äŸ¡å€ãšããŒã æ¢çŽ¢ã®è¡åãåã£ãå Žåã®æ倧ã®è©äŸ¡å€ã®å·®ã10ä»ã®å Žåã¯ããŒã æ¢çŽ¢ã®è¡åãåªå ãããšããŠããŸããããããŒã æ¢çŽ¢ã®è©äŸ¡å€ãããæ£ç¢ºã«èšç®ã§ããã°ãæåæãéžã°ãã«ããŒã æ¢çŽ¢ã®è¡åãããå®å¿ããŠåãããšãã§ããããã«ãªãã¯ãã§ããããã§ã以äžã®æ¹æ³ã§ãããŒã æ¢çŽ¢ã®è¡åãè¡ã£ãå Žåã®è©äŸ¡å€ãããæ£ç¢ºã«è©äŸ¡ã§ãããããªå·¥å€«ãå®è£ ããŸããã
ãªã³ã©ã€ã³ç°å¢ | ãµããããç°å¢ïŒæ±ºåçïŒ | |
---|---|---|
æ倧ããŒã æ·±ã | 7 | 7 |
ããŒã å¹ | 350 | 200 |
é£éæ°æ¯ã®ããŒã å¹ | 100 | 75 |
å¶éæé(ms) | 500 | 350 |
泚ïŒããã«æéãããããããšæéã足ãç¡ããªã£ãŠããŸãã®ãšå€§äœã®ç®å®ãåããã°ããã®ã§ã倪ããæéãå°ããã«èšå®ããã
-
åæã«å€§é£éãçãããŒã æ¢çŽ¢ã§åŸãããè¡åãåã£ãå Žåããåæ·±ãã«ãããŠãæµãåãããæ倧é£éãè¡ã£ãå Žåã«ããã7ã¿ãŒã³ä»¥å ã«è¡ããæ倧é£éæ°ããèšç®ããã
-
ãã®çµæããèªèº«ã®å šæ¢çŽ¢æã«å©çšãããå ·äœçã«ã¯ãããŒã æ¢çŽ¢ã®è¡åãåã£ãå Žåã§ããã¡ãã倧é£éãè¡ãåã«å ã«æµããéªéãéãããŠããå Žåã«ãäžèšã§èšç®ããé£éã§ãã¡ããè¿ãããšãåæã«æçµè©äŸ¡å€ã調æŽããã
äžèšã®èšç®ãããããšã§ãããŒã æ¢çŽ¢ã§åŸãããè¡åãåã£ãå Žåã«çžæãå ã«é£éããŠããå Žåã®å®å šåºŠãããæ£ç¢ºã«è©äŸ¡ããããšãã§ããããã«ãªããŸãã
ãã®ã²ãŒã ã¯åºæ¬çã«äžåºŠäžå©ã«ãªããšããç°¡åã«ã¯é転ã§ããªãïŒäŸãã°ããã£ãŒã«ãäžã®ãéªéã®æ°ãçžæãã20以äžå€ããªããšãŸãåãŠãªãïŒããã«ãªã£ãŠããããšãã ãã ãããã£ãŠããŸããã倧é£éã®çµã¿ããããéããªã©ã®çç±ããã§ãããããèŠãå¯èœæ§ãããã®ãã¹ãã«ã®çºåãªã®ã§ã倧é£éã®çµã¿åãã«åãŠããã«ãªãå Žåã¯ãæ©ã ã«é£éãçµãã®ããããããŠã¹ãã«çºåã«è³ããã»ããè¯ãããšã®ã»ããå€ããšæãããŸãããã ããæ©ãã«ã¹ãã«çºåãçã£ãŠã倧æµã®å Žåã¯ããŸããããªãã®ã§ããããŸãåãŠãªãé£éåæŠãæãããã¯ã¯ããã«ãŸãã ãšæãããŸãã
ããã§ãé£éã®çµã¿åãã«åã¡ç®ããªããšå€æããå Žåã¯ãããŒã æ¢çŽ¢ã®è©äŸ¡ãå€ããé£éã§ã¯ãªããããå¹ççãªã¹ãã«çºåããããããšãã§ãããããªè©äŸ¡ã«å€ããããšã§ãã¹ãã«çºåãçãããã«å€ããŠã¿ãŸããã
ãªãããã®å®è£ ãè¡ããªããšãã倧é£éãèŠèŸŒããªãå Žåã¯ãçè ã®AIã¯èªç¶ã«ã¹ãã«çºåãçãããã«ãªã£ãŠãããããã§åã€ããšãããŸã«ãã£ãã®ã§ãããå®å šã«æé ãã«ãªã£ãŠããã¹ãã«ãçããããªç¶æ³ãå€ã èŠåããããããããããå®è£ ããããšã«ããŸããã
ãã ããã©ã®ãããªæ¡ä»¶ã§é£éããããããã¹ãã«ãçãã¹ããªã®ãã¯ãéåžžã«å€æãé£ãããšæããŸããããããè©ŠããŠã¿ãéçšã§ããŸã ååé£éãçããã®ã«ãé¢ããããé£éãæšãŠãŠã¹ãã«ãçã£ãçµæè² ããè©ŠåãããªãçºçããŸãããæçµçã«ã¯ä»¥äžã®ãããªããªãå³ããæ¡ä»¶ã§ã¹ãã«ãçãããã«ãªã£ãã®ã§ãããæãããŠããã§ããã£ãã®ãã©ããã¯ããŸãã¡ããããŸããã
ãŸããã¿ãŒã³ã®éå§æã«ã以äžã®èšç®ãè¡ããŸãã
ãªããäžåºŠã¹ãã«çºåãç®æãããšã«ããå Žåã¯ãèªåãŸãã¯æµãäžå®äžã®é£éãè¡ãäºã§ãç¶æ³ãå€åãããŸã§ã¯ãäžèšã®èšç®ã¯è¡ãããã¹ãã«çºåãç®æãããšã«ããã
-
ã¿ãŒã³éå§æã«è¡ãã倧é£éãçãããŒã æ¢çŽ¢ã®éã«ãåé£éæ°ãæçã§ã©ã®æ·±ãã§è¡ããããèšç®ããã
-
ã¿ãŒã³éå§æã«ãæµã«å¯ŸããŠã倧é£éãçãããŒã æ¢çŽ¢ãèšç®ããæµãåé£éãæçã§ã©ã®æ·±ãã§è¡ããããèšç®ããããã ãããã®éã®ããŒã æ¢çŽ¢ã®æ¡ä»¶ã¯ä»¥äžã®ããã«èªåã®å€§é£éãçãããŒã æ¢çŽ¢ã«æ¯ã¹ãŠç°¡ç¥åããã
ãªã³ã©ã€ã³ç°å¢ | ãµããããç°å¢ïŒæ±ºåçïŒ | |
---|---|---|
æ倧ããŒã æ·±ã | 10 | 10 |
ããŒã å¹ | 750 | 500 |
é£éæ°æ¯ã®ããŒã å¹ | 250 | 200 |
å¶éæé(ms) | 500 | 500 |
以äžã®ããããã®æ¡ä»¶ãæºããããå Žåãé£éããããããã¹ãã«çºåãçã
-
10ã¿ãŒã³ä»¥å ã«èªåãè¡ããæ倧é£éæ°ã 7 以äžã®å Žåã
-
以äžã®ãã¹ãŠã®æ¡ä»¶ãæºããããå Žå
- èªåã®ãã£ãŒã«ãã®ãéªéã®æ°ã20以äžïŒåºç€ã¯ã¹ãã«ãçããªãïŒ
- çžæã®èœäžäºå®ã®ãéªéã®æ°ã20以äžïŒ20以äžãããšããããšã¯ãã¡ãã倧é£éããåŸã®ç¶æ³ã§ããã次ã®å€§é£éãçãã¹ãïŒ
- çžæã10ã¿ãŒã³ä»¥å ã«è¡ããæ倧é£éæ°ã12以äž
- èªåã10ã¿ãŒã³ä»¥å ã«è¡ããé£éæ°ã9以äžã§ã5ã®ãããã¯ãšãã®åšå²ã®ãããã¯ã®æ°ã10æªæºïŒ9é£é以äžãçããå Žåã§ãã¹ãã«çºåãçã£ãŠãããããæ¶ãããã«ãªãå Žåã¯é£éãçã£ãã»ãããŸãïŒ
- èªåã12é£éãè¡ãäºãå¯èœãªæçã®æ·±ã >= çžæã12é£éãè¡ãäºãå¯èœãªæçã®æ·±ã + 3
- èªåã11é£éãè¡ãäºãå¯èœãªæçã®æ·±ã >= çžæã12é£éãè¡ãäºãå¯èœãªæçã®æ·±ã + 3
- èªåã10é£éãè¡ãäºãå¯èœãªæçã®æ·±ã >= çžæã12é£éãè¡ãäºãå¯èœãªæçã®æ·±ã + 2
- èªåã9é£éãè¡ãäºãå¯èœãªæçã®æ·±ã >= çžæã12é£éãè¡ãäºãå¯èœãªæçã®æ·±ã + 1
- èªåã8é£éãè¡ãäºãå¯èœãªæçã®æ·±ã >= çžæã12é£éãè¡ãäºãå¯èœãªæçã®æ·±ã
äžã®ã»ãã®æ¡ä»¶ã¯ãçžæã12é£éã§ããå Žåã§ããããããå ã«10é£éãšãã§ã€ã¶ããå¯èœæ§ããã以äžãããŸãæ©ã ãšãããããªãããã«ããããã®æ¡ä»¶ã®ã€ããã§ããããããªãã§è¯ãã®ãã¯ããŸãã¡ããããããŸããã
ãŸããè©äŸ¡å€ã«é¢ããŠã§ãããé£éãçã£ãŠããå Žåã¯ãèªåã®ã¹ãã«çºåã«é¢ããè©äŸ¡å€ãäžããã¹ãã«ãçãã«è¡ãã«ããããã«ãããšãã調æŽãè¡ããŸããã
以äžãïŒæžãå¿ããããšã¯ééã£ãŠããéšåãå€ã ãããããããŸãããïŒçè ãäž»ã«è¡ã£ã工倫ã§ãã
AIã«äžããããšãã§ãããã©ã¡ãŒã¿ã¯ããããã°çšã®ãã®ãå«ããŠããªãå€ãã§ãã现ãã説æãããšå€§å€ãªã®ã§ããããã°çšã®ãã©ã¡ãŒã¿ã«ã€ããŠèª¬æããŸãããã ãããããã°çšã®ãã©ã¡ãŒã¿ã䜿ãããå Žåã¯ãcodevsreborn.hpp ã®æåã®ã»ãã«ãã #define DEBUG ã®ã³ã¡ã³ããåãæãå¿ èŠããããŸãïŒåãæããšã¡ã¢ãªæ¶è²»éãããªãå¢ããã®ã§ãæåºçã¯ã³ã¡ã³ãã¢ãŠãããŠããïŒ
-
-m ãªãã·ã§ã³ãã€ããŠå®è¡ãããšã¿ãŒã³ããšã®ããªã詳现ãªãããã°æ å ±ã衚瀺ãããŸãã倧é£éãçãããŒã æ¢çŽ¢ã§åŸãããè¡åããæåæã®è¡åããããŒã æ¢çŽ¢ã§åŸãããè¡åãåã£ãå Žåã®è¡åãªã©ãèŠèŠåãããŠè¡šç€ºãããŸãã
-
-tm ãªãã·ã§ã³ãã€ããŠå®è¡ãããšãç°¡ç¥åããããããã°æ å ±ã衚瀺ãããŸãã-mãæå®ããå Žåã¯ã-tm ãåæã«æå®ããããšã«ãªããŸãã
-
-g ã²ãŒã çªå·ãã§ãAIã«äžãããã¡ã€ã«å ã«ãè€æ°ã®ã²ãŒã ã®æ å ±ãå ¥ã£ãŠããå ŽåïŒäŸãã°ãããŒã«ã«å¯ŸæŠã§ãè©Šåæ°ã2以äžã«ããå Žåã«ãæšæºå ¥åããåŸãããå ¥åããŒã¿ïŒããããæå®ããããšã§ãä»»æã®ã²ãŒã ãéžãã§å®è¡ããããšãã§ããŸãã
-
-t ã¿ãŒã³æ° ã§ãç¹å®ã®ã¿ãŒã³æ°ã®ã¿å®è¡ããããšãã§ããŸãã
-
Windows ã®ã³ãã³ãããã³ããã§ãcodevsreborn.exe ãã©ã¡ãŒã¿ < input.txt 2> output.txt ã¿ãããªæãã§ãããã°ããŠãŸããã
äºéžã®éäžãåå è ã®ããããªããã°ã§ãããµããããç°å¢ã«ã¢ããããAIãã¿ã€ã ã¢ãŠãããããããããã°è¡šç€ºãèŠããªãã®ã§å¯ŸåŠããããŠããããã°ã§ããªããŠã©ããããããªããããªã©ã®çºèšãæ°å€ãã¿ãããŸãããç§ãäºéžæéäžã¯ãäºéžã®äžç€ã§äœã£ãAIã®ãã¡ããªããšããµããããç°å¢ã§åããã®ãã¢ããããŒãã§ããåŸã¯ãåããªããªãã®ãæããŠäºéžçµäºãŸã§æãä»ããããšãã§ããŸããã§ãããäºéžçµäºåŸã«èŠçŽãããšãããããªããã°ããã£ãŠããµããããç°å¢ã®å¯ŸæŠã®åçãæªãã®ã¯ããããŸãã ã£ãããšãå®æã§ããŸããã
決åã§ããã®ç¶æ³ã¯æ¹åããããéå¶ã«ãªããšããµããããç°å¢ã§ãããã°è¡šç€ºãåºãæ¹æ³ãçšæããŠããããªãããšåãåãããŠã¯ã¿ãã®ã§ãããæèŠã¯æ¬¡å以éã®åèã«ããããä»åã¯ãã®ãŸãŸã§è¡ããšã®è¿äºãæ¥ãŸãããäºéžã®æçµæ®µéã®AIã®ããã°ã©ã ã¯ããµããããç°å¢ã«æåºããŠããAIãšããã¹ãŠããªããããããšè¿œå ãããŠãããåŠçæéãå¢ããŠããã®ã§ãããããµããããç°å¢ã«ã¢ããããŒãããŠããããããŸãšãã«åããªãããšãäºæ³ãããäºéžã®ãŸãŸè¡ããããªãããšäžæã¯æã£ãŠããã®ã§ããããµããããç°å¢ã§ãããã°ããæ¹æ³ãããŸãæãã€ããã®ã§ããªããšãææ°ã®ãµããããç°å¢ã§åãAIãæåºããããšãåºæ¥ãŸããããã£ãããªã®ã§ãã®æ¹æ³ã«ã€ããŠæžãããšæããŸãã
ãµããããç°å¢ã«ãããã°ã©ã èšèªã zip ã§æå®ããŠAIãã¢ããããŒãããå Žåãzip解åããããã®äžã®æ¡åŒµåã .shãã®ãã¡ã€ã«ãé çªã«å®è¡ãããããšã¯ãæåºã¿ãã«è¡šç€ºãããŠããã¡ãã»ãŒãžããæšæž¬ã§ããŸããããã®éã«ããŸã compile.sh ãå®è¡ãããŠã³ã³ãã€ã«ãè¡ããã次ã«run.shãå®è¡ãããŠrandomfall AI ãšã®å¯ŸæŠãå§ãŸããšæãããã®ã§ããããã®éã«ã³ã³ãã€ã«ãã察æŠæã«ãšã©ãŒãåºãªãã£ãå Žåã¯ãå®è¡ç¶æ³ã®æã«äžåã¡ãã»ãŒãžã¯åºåãããŸããã
ããããã³ã³ãã€ã«ã§ãšã©ãŒãåºãå Žåããã³ã³ãã€ã«åŸã® randomfall AI ãšã®å¯ŸæŠã«ãããŠäœããã®ãšã©ãŒãçºçããå Žåã¯ããããã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããããã«ãªã£ãŠããŸããïŒãããã«ãããããªããã°ã³ã³ãã€ã«ã§ããªãã£ãå Žåã«å¯ŸåŠãäžèœã§ãïŒãããã«ãããã°ãè¡ãäœå°ããããŸãã
å ·äœçã«ã¯ zip ã«ãããŒã«ã«å¯ŸæŠã§åŸãããæšæºå ¥åã®ããŒã¿ãå ¥ã£ã input.txt ãšããååã®ãã¡ã€ã«ãå«ãã complie.sh ã®å 容ã以äžã®ããã«ã㊠submit ããŸãã
g++ -o ysai.exe -std=c++11 -O2 -DNDEBUG -march=native -pthread codevsreborn.cpp
./ysai.exe AIã«äžãããã©ã¡ãŒã¿ < input.txt
âãã®è¡ãè¿œå ãã
ãããšãæåã®1è¡ç®ã§ã³ã³ãã€ã«ãå®è¡ããããã®åŸããã«ãã³ã³ãã€ã«ããŠäœãããAIã®å®è¡ãã¡ã€ã«ã« input.txt ã®å 容ãéããã ãµããããç°å¢ã§input.txtã®å 容ãå ã«ãAIãå®è¡ãããŸãããã®åŸã«ãrun.shãå®è¡ãããŸãããåœç¶ã§ãããã®åã«AIã®åºåãšããŠã¯ãäžæ£ãªå 容ãæšæºåºåã«åºåãããŠãããããrun.shãå®è¡ãããæç¹ã§ãšã©ãŒãšãªããå®è¡ç¶æ³ã®æã«ããããŸã§ã«ãµããããç°å¢ã§åºåããã æšæºåºåãšãæšæºãšã©ãŒåºåã®å 容ã衚瀺ãããŸãã
åŸã¯ããã®ãšã©ãŒã¡ãã»ãŒãžãèŠãªããAIã«äžãããã©ã¡ãŒã¿ã®èª¿æŽãè¡ãããµããããç°å¢ã§åãããã«ãããã®ãæåºããã°OKã§ãã
æåã¯ã©ããããããªããšæã£ãŠããŸããããæå€ã«ãªããšããªããã®ã§ãã
äºéžæéäžã«ãæ¯æé äœã®ã¹ã¯ãªãŒã³ã·ã§ããããšã£ãŠãããã®ïŒscreenshot.docxïŒãã¢ããããŒãããŸãããæ°ãããŠèŠè¿ããŠã¿ããšãæåŸã®ã»ãã§è¡ã£ãïŒæ¹è¯ã®ã€ããã®ïŒæ¹æªã®ããã§è¿·èµ°ããŠãŸããã»ã»ã»
ããšããªã³ã©ã€ã³å¯ŸæŠã¯ãreplayãã©ã«ãã«èšé²ãæ®ãã®ã§ããããpythonã§éèšãŠexcelã«ãŸãšãããã®(record.xlsx)ãã¢ããããŒãããŸããã ãªã³ã©ã€ã³å¯ŸæŠã§ã®æ¥ããšã®å¯ŸæŠçžææ¯ã®æ瞟ãèŒã£ãŠãŸããå šäœãéããšãbowwowããã ãã«è² ãè¶ããŠãŸãããäœãçžæ§ãæªãã£ãã®ãããããŸããã
ãµãããããããAIã®å¯ŸæŠèšé²ã¯ã¯ãã£ãŠããªããããªã®ã§ãéç®ãããšä»¥äžã®ããã«ãªãã§ããããããã£ã±ããµãããã察æŠã ãšåçã¯ã¬ã¯ããšèœã¡ãŠãŸããã
è©Šåæ° | å | è² | åç | |
---|---|---|---|---|
äºéžå šäœã | 5068 | 4199 | 869 | 0.829 |
ãªã³ã©ã€ã³å¯ŸæŠ | 4290 | 3731 | 559 | 0.870 |
ãµããããå¯ŸæŠ | 778 | 468 | 310 | 0.602 |
æåŸã«ãcodevsã«ä»ååå ããããšæã£ããã£ããã«ã€ããŠãã£ãããªã®ã§æžããŠã¿ãããšæããŸãã
codevsã®ååšãç¥ã£ãã®ã¯ãããããããã®ããã°ã§ã確ã codevs 4.0 ã®æã ã£ããšæããŸããAIã«èå³ã¯ãã£ãããé¢çœããã ãšæã£ãŠåå ããŠã¿ãã®ã§ããããã®æã¯äºéžéå§åã°ãéããŠãããæéçã«ã©ãã«ããªããŸããã§ããã
次㮠codevs 5.0 ã®æãäºæ ã¯å šãåãã§ããã¯ããããããããã®ããã°ã§ååšãç¥ããåå ããã®ã§ããããã®æãäºéžéå§åã°é ã§ãé 匵ã£ãã®ã§ãããsilverã§åå°œããŸããã
ããªãæããã£ãã®ã§ã倧äŒåŸã«èªåã®AIãæ¹è¯ããŠããããã«å ¬éãããŠããåªåããtakaptããã®AIã«8å²çšåºŠåãŠããšãããŸã§ãã£ãŠæ¬¡ã®å€§äŒã«åããŠããã®ã§ããããã®åŸcodevsã®å€§äŒãéãããªããªã£ãŠåã°ãããããŠããŸãããããããæè¿ã«ãªã£ãŠ Code vs reborn ãéããããšããããšãããŸããããããããããã®ããã°ã§ç¥ããä»åºŠãããšããããšã§äºéžãé 匵ã£ãŠãªããšãçªç Žããããšãåºæ¥ãŸããã
欲ãèšãã°ããã®å€§äŒãç¥ããã£ãããšãªã£ããcode vs 5.0 ã§æºåªåããããããããããšå¯ŸæŠããŠã¿ããã£ãã®ã§ãããããããããããåªåããã³ã³ãã¥ãŒã¿å°æ£äžçéžææš©ãšæ¥çšããã¶ã£ãŠããããã§ããã®å€¢ã¯æ®å¿µãªããããªããŸããã§ãããããšãcode vs ãšã¯é¢ä¿ãªãã§ãããå°æ£éžææš©ã®æåŸã®åã¡æ¹ããããããããããããŠæ¬åœã«æå¿ããŸããã
ä»åã®äºéžã§ãããåŸåããããæãã€ããããšãå®è£ ããçµæãéã«é äœãèœã¡ããããŠã²ãã²ãããŸããããæçµçã«ã¯ãªããšããªã£ãŠããã£ãã§ãã決åã§ãè¯ãæ瞟ãæ®ãããšãããªãšé¡ãã€ã€ããã§äžæŠçããããããšæããŸãã
æžããŠãŠéåžžã«é·ããªã£ãŠããŸããŸãããããããŸã§èªãã§ããã ããæ¹ã«ã¯ããããã«ããã£ããããããŸããããä»ãåãããã ãããããšãããããŸããã