±±·½¹¤Òµ´óѧ¼ÌÐø½ÌÓýѧԺ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©
3. °ïÖúÄ£¿é£»ÓÎÏ·¹æÔò¡¢Óйر¾Èí¼þµÄ½éÉÜ¡£ ±¾ÏµÍ³µÄÖ÷Òª¹¦ÄÜÄ£¿é£¬ÈçÏÂͼ2.9Ëùʾ
Îå×ÓÆåÓÎÏ·ÓÎÏ·Ñ¡ÏîÐÂÓÎÏ·ÈË»ú¶ÔÕ½ÈËÈ˶ÔÕ½ÍË»ÚÈϳöÆåÊä
ͼ2.9ϵͳÖ÷Òª¹¦ÄÜÄ£¿éͼ
8
±±·½¹¤Òµ´óѧ¼ÌÐø½ÌÓýѧԺ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©
3 ×ÜÌåÉè¼Æ
3.1 ϵͳ»·¾³ÒªÇó
·þÎñÆ÷£ºÒªÇó´¦ÀíÆ÷ΪPentium III ¼æÈÝ´¦ÀíÆ÷»ò¸ü¸ßËٶȵĴ¦ÀíÆ÷£¬´¦ÀíÆ÷ËÙ¶È×îµÍÒªÇó£º600 MHz£¬ÍƼöʹÓãº1 GHz »ò¸ü¸ß£¬80GB»òÒÔÉÏ¿ÉʹÓÃÓ²Å̿ռäÄÚ´æ×îµÍÒªÇó£º512 MB£¬ÍƼöʹÓãº1 GB »ò¸ü´ó£¬×î´ó£º²Ù×÷ϵͳ×î´óÄÚ´æ¡£
¿Í»§»ú£ºÒªÇó´¦ÀíÆ÷ΪPentium III ¼æÈÝ´¦ÀíÆ÷»ò¸ü¸ßËٶȵĴ¦ÀíÆ÷£¬´¦ÀíÆ÷ËÙ¶È×îµÍÒªÇó£º600 MHz£¬ÍƼöʹÓãº1 GHz »ò¸ü¸ß£¬ÄÚ´æ×îµÍÒªÇó£º512 MB£¬ÍƼöʹÓãº1 GB »ò¸ü´ó£¬×î´ó£º²Ù×÷ϵͳ×î´óÄÚ´æ¡£
3.2 ×ÜÌåÉè¼Æ¹ý³Ì
×ÜÌåÉè¼Æ¹ý³Ìͨ³£ÓÉËĸöÖ÷Òª½×¶Î×é³É£ºÏµÍ³Ìåϵ½á¹¹Éè¼Æ£¬È·¶¨ÏµÍ³µÄ¾ßÌåÌåϵ½á¹¹ÊµÏÖ·½°¸£»ÏµÍ³Ä£¿éÉè¼Æ£¬È·¶¨ÏµÍ³Ä£¿é²ã´Î£»½á¹¹Ëã·¨Éè¼Æ£¬È·¶¨Èí¼þ½á¹¹ºÍµäÐÍËã·¨£»½»»¥Éè¼Æ£¬È·¶¨ÏµÍ³µÄ½»»¥½çÃæ¡£
¸ßЧÂʵijÌÐò»ùÓÚÁ¼ºÃµÄÊý¾Ý½á¹¹ÓëËã·¨£¬Ò»°ãÀ´Ëµ£¬Êý¾Ý½á¹¹ÓëËã·¨¾ÍÊÇÒ»ÀàÊý¾ÝµÄ±íʾ¼°ÆäÏà¹ØµÄ²Ù×÷¡£´ÓÊý¾Ý±íʾµÄ¹ÛµãÀ´¿´£¬´æ´¢ÔÚÊý×éÖеÄÒ»¸öÓÐÐòÕûÊý±íÒ²ÊÇÒ»ÖÖÊý¾Ý½á¹¹¡£Ëã·¨ÊÇÖ¸¶ÔÊý¾Ý½á¹¹Ê©¼ÓµÄһЩ²Ù×÷¡£Ò»¸öËã·¨Èç¹ûÄÜÔÚËùÒªÇóµÄ×ÊÔ´ÏÞÖÆ·¶Î§ÄÚ½«ÎÊÌâ½â¾öºÃ£¬Ôò³ÆÕâ¸öËã·¨ÊÇÓÐЧÂʵġ£Ò»¸öËã·¨Èç¹û±ÈÆäËûÒÑÖªËã·¨ËùÐèÒªµÄ×ÊÔ´¶¼ÉÙ£¬Õâ¸öËã·¨Ò²³ÆÎªÊÇÓÐЧÂʵġ£Ëã·¨µÄ´ú¼ÛÊÇÖ¸ÏûºÄµÄ×ÊÔ´Á¿¡£Ò»°ãÀ´Ëµ£¬´ú¼ÛÊÇÓÉÒ»¸ö¹Ø¼ü×ÊÔ´£¬ÀýÈçʱ¼ä»ò¿Õ¼äÀ´ÆÀ¹ÀµÄ¡£
3.3 ϵͳµÄËã·¨Éè¼Æ
Îå×ÓÆåÓÎÏ·µÄ¿ª·¢ÔÚËÑË÷Ëã·¨·½Ã棬¿ÉÒÔÓжàÖÖÑ¡Ôñ¡£Í¨¹ý´Ó²»Í¬µÄ½Ç¶È·ÖÎö¸÷ÖÖËÑË÷·½·¨µÄЧÂÊ£¬À´¿¼ÂDZ¾ÏµÍ³µÄËã·¨Ó¦Óá£
ÏÂÃæÏêϸµØ½éÉÜһЩËã·¨£º 3.3.1
²©ÞÄÊ÷
ÉèÏëÏÂÎå×ÓÆåµÄÇéÐΣ¬Á½È˶ÔÞÄ£¬ÎÒÃǽ«ÆäÖÐһλ½Ð×ö¼×£¬Áíһλ½Ð×öÒÒ¡£¼Ù¶¨ÏÖÔڸü×ÏÂÆå£¬¼×¿ÉÒÔÓÐ225ÖÖ×ß·¨£¨²»Âۺûµ£©£»¶ø¶Ô¼×µÄÈÎÒ»×ß·¨£¬ÒÒÒ²¿ÉÒÔÓÐÓëÖ®Ïà¶ÔµÄÈô¸ÉÖÖÏ·¨¡£È»ºóÓÖÂÖµ½¼××߯壬¶ÔÒÒµÄÏ·¨¼×ÓÖÓÐÈô¸ÉÖÖ·½·¨Ó¦¶Ô¡£Èç´ËÍù¸´¡£ÏÔÈ»£¬ÎÒÃÇ¿ÉÒÔÒÀ´Ë¹¹½¨Ò»¿Ã²©ÞÄÊ÷£¬½«ËùÓеÄ×ß·¨ÂÞÁгöÀ´¡£ÔÚÕâ¿ÃÊ÷µÄ
9
±±·½¹¤Òµ´óѧ¼ÌÐø½ÌÓýѧԺ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©
¸ù²¿ÊÇÆå¾ÖµÄ³õʼ¾ÖÃæ¡£¸ùµÄÈô¸É×Ó½ÚµãÔòÊÇÓɼ׵ÄÿһÖÖ¿ÉÄÜ×ß·¨ËùÉú³ÉµÄ¾ÖÃæ£¬¶øÕâЩ½ÚµãµÄ×Ó½ÚµãÔòÊÇÓÉÓëÖ®Ïà¶ÔµÄÒÒµÄÿһÖÖ¿ÉÄÜ×ß·¨ËùÉú³ÉµÄ¾ÖÃæ¡£ÔÚÕâ¿ÃÊ÷µÄÄ©ÉÒ£¬ÊǽáÊøµÄÆå¾Ö£¬¼×ʤ»òÕßÒÒʤ»òÕßÊÇË«·½¶¼ÎÞ·¨È¡Ê¤µÄƽ¾Ö¡£Èç¹ûÎÒÃÇÁî¼×ʤµÄ¾ÖÃæÖµÎªWIN£¬ÒÒʤµÄ¾ÖÃæÖµÎªLOST£¬¶øºÍ¾ÖµÄֵΪDRAW¡£µ±ÂÖµ½¼××ßʱ£¬¼×¶¨»áÑ¡Ôñ×Ó½ÚµãֵΪWIN»òDRAW£¨Èç¹ûûÓÐֵΪWINµÄ×Ó½ÚµãµÄ»°£©µÄÏ·¨£»¶øÂÖµ½ÒÒʱ£¬ÒÒÔò»áÑ¡Ôñ×Ó½ÚµãֵΪLOST»òDRAW£¨Èç¹ûûÓÐֵΪLOSTµÄ×Ó½ÚµãµÄ»°£©µÄÏ·¨¡£¶ÔÓÚÖмä½ÚµãµÄÖµ¿ÉÒÔÓÐÈçϼÆËã·½·¨£ºÈç¹û¸Ã½ÚµãËù¶ÔÓ¦µÄ¾ÖÃæÂÖµ½¼×ÏÂÆå£¬Ôò¸Ã½ÚµãµÄÖµÊÇÆäËùÓÐ×Ó½ÚµãÖÐÖµ×î¼Ñ£¨¶Ô¼×¶øÑÔ£©µÄÒ»¸öµÄÖµ£»Èç¹û¸Ã½ÚµãËù¶ÔÓ¦µÄ¾ÖÃæÂÖµ½ÒÒ×߯壬Ôò¸Ã½ÚµãµÄÖµÊÇÆäËùÓÐ×Ó½ÚµãÖÐÖµ×î²î£¨¶Ô¼×¶øÑÔ£©µÄÒ»¸öµÄÖµ¡£ÕâÑù¿´À´´ÓÕâ¿ÃÊ÷µÄÒ¶×Ó½Úµãµ¹ÍÆÏò¸ù²¿£¬¾Í¿ÉÒԵóöËùÓнڵãµÄÖµ¡£Ë«·½¾Í¿ÉÒÔ´ÓÆäËùÃæÁÙµÄÆå¾ÖÖÐÑ¡ÔñÒ»²½ºÃÆå¡£È»ºóÒ»²½²½×ßÏòʤÀû¡£²©ÞÄÊ÷ÊÇ´Ó¸ù²¿Ïòϵݹé²úÉúµÄÒ»¿Ã°üº¬ËùÓпÉÄܵĶÔÞĹý³ÌµÄËÑË÷Ê÷£¬ÕâÀï³ÆÎªÍêÈ«ËÑË÷Ê÷¡£Neill GrahamÐÎÈݴ˹ý³ÌÀàËÆÓÚÔÚÒ»¸ö״̬ͼÖÐѰÇó´Ó³õʼ״̬ͨÏòÖÕÁË״̬µÄ¹ý³Ì¡£Ö»ÊÇ״̬ͼËÑË÷½öÓÐÒ»¸öÖ÷Ìå²Î¼Ó£¬½öÊǵ¥·½Ãæ×ö³öµÄ·¾¶Ñ¡Ôñ¡£¶ø²©ÞÄÊ÷µÄËÑË÷ÔòÓжÔÁ¢µÄË«·½²Î¼Ó£¬Ò»·½Ö»ÄÜ×ö³öÒ»°ëÑ¡Ôñ£¬¶øÕâÒ»°ëÑ¡ÔñµÄÄ¿µÄÊÇʹ¶Ô·½Ô¶ÀëÆä½ßÁ¦¿¿½üµÄÄ¿±ê¡£Ò²¾ÍÊÇ˵״̬ͼËÑË÷ÊÇ´¿´âµÄ»òÊ÷£¨OR tree£©£¬¶ø²©ÞÄÊ÷ËÑË÷ÊÇÓë»òÊ÷£¨AND/OR tree£©¡£
µ«ÊÇÔÚÎå×ÓÆåÓÎÏ·ÖУ¬ÎÒÃÇûÓн¨Á¢ÍêÈ«ËÑË÷Ê÷µÄ¿ÉÄÜ¡£Ò»·½ÃæÊÇÒòΪºÜ¶àÇéÐθù±¾¾Íµ½´ï²»ÁËÒ¶×ӽڵ㡣ÁíÒ»·½Ã棬Õâ¿ÃÊ÷ÉϵĽڵãÊýÁ¿Ò²ÒѶൽÁËÎÞ·¨´¦ÀíµÄ³Ì¶È¡£ËùÒÔÎÒÃÇÐèÒªÆäËüµÄËã·¨À´¼õÉÙËÑË÷µÄÊýÁ¿¡£ 3.3.2
¼«´ó¼«Ð¡ÖµËã·¨£¨Minimax Algorithm£©
ÔÚÉÏÃæµÄ²©ÞÄÊ÷ÖУ¬Èç¹ûÎÒÃÇÁî¼×ʤµÄ¾ÖÃæÖµÎª1£¬ÒÒʤµÄ¾ÖÃæÖµÎª-1£¬¶øºÍ¾ÖµÄֵΪ0¡£µ±ÂÖµ½¼×ÏÂÆåʱ£¬¼×¶¨»áÑ¡Ôñ×Ó½ÚµãÖµ×î´óµÄÏ·¨£»¶øÂÖµ½ÒÒʱ£¬ÒÒÔò»áÑ¡Ôñ×Ó½ÚµãÖµ×îСµÄÏ·¨¡£ËùÒÔ£¬¶ÔÓÚÖмä½ÚµãµÄÖµ¿ÉÒÔÓÐÈçϼÆËã·½·¨£ºÈç¹û¸Ã½ÚµãËù¶ÔÓ¦µÄ¾ÖÃæÂÖµ½¼×ÏÂÆå£¬Ôò¸Ã½ÚµãµÄÖµÊÇÆäËùÓÐ×Ó½ÚµãÖÐÖµ×î´óµÄÒ»¸öµÄÖµ¡£¶øÈç¹û¸Ã½ÚµãËù¶ÔÓ¦µÄ¾ÖÃæÂÖµ½ÒÒÏÂÆå£¬Ôò¸Ã½ÚµãµÄÖµÊÇÆäËùÓÐ×Ó½ÚµãÖÐÖµ×îСµÄÒ»¸öµÄÖµ¡£
¶Ô²©ÞÄÊ÷µÄÕâ¸ö±ä»¯½ö½öÊÇÐÎʽÉϵ쬱¾ÖÊÉÏË¿ºÁδ±ä£¬µ«ÊÇÕâ¸öÐÎʽ¸üÈÝÒ×ÍÆ¹ãÒÔÔËÓõ½Ò»°ãʵ¼ÊµÄÇéÐΡ£
10
±±·½¹¤Òµ´óѧ¼ÌÐø½ÌÓýѧԺ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©
¼ÈÈ»½¨Á¢Õû¿ÃµÄËÑË÷Ê÷²»¿ÉÄÜ£¬ÄÇô£¬Îªµ±Ç°ËùÃæÁٵľÖÃæÕÒ³öÒ»²½ºÃÆåÈçºÎ£¿Ò²¾ÍÊÇͨ¹ýÉÙÁ¿µÄËÑË÷£¬Îªµ±Ç°¾ÖÃæÑ¡ÔñÒ»²½½ÏºÃµÄ×ß·¨¡£
ÔÚͨ³£µÄÆå¾Öµ±ÖУ¬Ò»¸ö¾ÖÃæµÄÆÀ¹ÀÍùÍù²¢²»ÏñÊä¡¢Ó®¡¢Æ½3ÖÖ״̬Õâô¼òµ¥£¬ÔÚ·Ö²»³öÊäÓ®µÄ¾ÖÃæÖÐÆå¾ÖÒ²ÓÐÓÅÁÓÖ®·Ö¡£Ò²¾ÍÊÇ˵£¬ÒªÓøüϸÖµķ½·¨À´¿Ì»¾ÖÃæµÄÓÅÁÓ£¬¶ø²»Êǽö½öʹÓÃ1¡¢-1¡¢0Èý¸öÊý×Ö¿Ì»3ÖÖÖÕÁ˾ÖÃæ¡£¼Ù¶¨ÎÒÃÇÓÐÒ»¸öº¯Êý¿ÉÒÔΪÿһ¾ÖÃæµÄÓÅÁÓÆÀ·Ö¡£ÀýÈç¼×ʤΪ+¡Þ£»ÒÒʤΪ-¡Þ£»ºÍ¾ÖΪ0£»ÕâÑùÎÒÃÇ¿ÉÒÔ½¨Á¢Ò»¿Ã¹Ì¶¨Éî¶ÈµÄËÑË÷Ê÷£¬ÆäÒ¶×ӽڵ㲻±ØÊÇÖÕÁË״̬£¬¶øÖ»Êǹ̶¨Éî¶ÈµÄ×îÉîÒ»²ãµÄ½Úµã£¬ÆäÖµÓÉÉÏÊöº¯ÊýÆÀ³ö£»¶ÔÓÚÖмä½Úµã£¬ÈçÍ¬Ç°ÃæÌáµ½µÄÄÇÑù£¬¼×·½È¡×Ó½ÚµãµÄ×î´óÖµ£¬ÒÒ·½È¡×Ó½ÚµãµÄ×îСֵ¡£Õâ¸öÆÀ·ÖµÄº¯Êý³Æ×÷¾²Ì¬¹ÀÖµº¯Êý£¨Static Evaluation Function£©¡£ÓÃÒÔÈ¡´ú³¬³ö¹Ì¶¨Éî¶ÈµÄËÑË÷¡£ÏÔÈ»£¬ÎÒÃÇÎÞ·¨ÓµÓоø¶Ô¾«È·µÄ¾²Ì¬¹ÀÖµº¯Êý¡£·ñÔò£¬Ö»ÒªÕâ¸ö¾²Ì¬¹ÀÖµº¯Êý¾Í¿ÉÒÔ½â¾öËùÓÐµÄÆå¾ÖÁË¡£¹ÀÖµº¯Êý¸ø³öµÄÖ»ÊÇÒ»¸ö½Ï´ÖÂÔµÄÆÀ·Ö£¬ÔÚ´Ë»ù´¡ÉϽøÐеÄÉÙÁ¿ËÑË÷µÄ¿É¿¿ÐÔ£¬ÀíÂÛÉÏÊDz»ÈçǰÊöµÄWIN£¬LOST£¬DRAWÈýÖÖ״̬µÄ²©ÞÄÊ÷µÄ£¬µ«Õâ¸ö·½·¨È´ÊÇ¿ÉʵÏֵġ£ÀûÓþßÌåµÄ֪ʶ¹¹³ÉÆÀ¹Àº¯ÊýµÄËÑË÷½Ð×öÆô·¢Ê½ËÑË÷£¨Heuristic Search£©¡£¹ÀÖµº¯ÊýÔÚÓÐЩÎÄÏ×ÖÐÒ²³ÆÎªÆô·¢º¯Êý£¨Heuristic Function£©¡£
ÔÚ²©ÞÄÊ÷ËÑË÷µÄÎÄÏ×µ±ÖУ¬¼«´ó¼«Ð¡·½·¨ÍùÍùÖ¸µÄÊÇ»ùÓÚ¾²Ì¬¹ÀÖµº¯ÊýµÄÓÐÏÞÉî¶ÈµÄ¼«´ó¼«Ð¡ËÑË÷¡£MinMaxËã·¨ÊǶÔÞĵĻù´¡Ë¼Ïë¡£ 3.3.3
¸º¼«´óÖµËã·¨£¨Negamax Algorithm£©
ÆÕͨµÄ¼«´ó¼«Ð¡ÖµËã·¨¿´ÆðÀ´ÓÐÒ»µã±¿£¬¼ÈȻһ·½ÊÔͼȡ¼«´óÖµ¶øÁíÒ»·½ÊÔͼȡ¼«Ð¡Öµ¡ª¡ªÒ²¾ÍÊÇ˵¡ª¡ªÎÒÃÇ×ÜÒª¼ì²éÄÄÒ»·½ÒªÈ¡¼«´óÖµ¶øÄÄÒ»·½ÓÖҪȡ¼«Ð¡Öµ£¬ÒÔÖ´Ðв»Í¬µÄ¶¯×÷¡£KnuthºÍMooreÔÚ1975ÄêÌá³öÁ˸º¼«´óÖµ£¨Negamax£©·½·¨£¬Ïû³ýÁËÁ½·½µÄ²î±ð£¬¶øÇÒ¼ò½àÓÅÑÅ¡£Ê¹Óøº¼«´óÖµ·½·¨£¬²©ÞÄË«·½¶¼È¡¼«´óÖµ¡£ 3.3.4
Alpha-BetaËÑË÷
ÔÚ¼«´ó¼«Ð¡ËÑË÷µÄ¹ý³ÌÖУ¬´æÔÚ×ÅÒ»¶¨³Ì¶ÈµÄÊý¾ÝÈßÓà¡£¾ÙÒ»¸ö×î¼òµ¥µÄÀý×Ó£ºÔÚÏóÆå²©ÞĵĹý³ÌÖУ¬Èç¹ûijһ¸ö½ÚµãÂÖµ½¼××߯壬¶ø¼×ÏòÏÂËÑË÷½Úµãʱ·¢ÏÖµÚÒ»¸ö×Ó½Úµã¾Í¿ÉÒÔ½«ËÀÒÒ£¨½ÚµãֵΪ×î´óÖµ£©£¬ÔòʣϵĽڵã¾ÍÎÞÐèÔÙËÑË÷ÁË£¬¼×µÄÖµ¾ÍÊǵÚÒ»¸ö×Ó½ÚµãµÄÖµ¡£Õâ¸ö¹ý³Ì£¬¾Í¿ÉÒÔ½«´óÁ¿ÈßÓàµÄ£¨²»Ó°Ïì½á¹ûµÄ£©½ÚµãÅׯú¡£
½«ÉÏÊöÕâ¸öÇéÐÎÍÆ¹ãһϣ¬ÉèÏëÓÐÈçͼ3.1×ó°ë²¿ËùʾµÄÒ»¿Ã¼«´ó¼«Ð¡Ê÷µÄƬ¶Ï£¬½ÚµãÏÂÃæÊý×ÖΪ¸Ã½ÚµãµÄÖµ£¬½ÚµãBµÄֵΪ18£¬½ÚµãDµÄֵΪ16£¬ÓÉ´ËÎÒÃÇ¿ÉÒÔÅÐ
11