¨Æ¹ê¡B³W«h¡B¥Ø¼Ð¤Î¬d¸ß

«e­¶ ¥Ø¿ý ¤U­¶

¨Æ¹ê ³W«h ¥Ø¼Ð¤Î¬d¸ß ±`¨£¤º¸m¿×µü

¤@­Ó Prolog µ{§Ç¥]§t¼Æ­Óµu¥y¡A¨C­Óµu¥y¤@¬O¨Æ¹ê¡A©Î¬O³W«h¡C·í¤@­Ó Prolog µ{§Ç¦b¤@­Ó Prolog ¸ÑÄÀµ{§Ç³Q¸ü¤J¡]©Î³Q¬d¾\¡^®É¡A¨Ï¥ÎªÌ¥i¥H´£¥æ¥Ø¼Ð©Î¬d¸ß¡AProlog ¸ÑÄÀµ{§Ç´N·|®Ú¾Ú¨Æ¹ê©M³W«hµ¹¥Xµ²ªG¡]µª®×¡^¡C

¨Æ¹ê Top

¤@­Ó¨Æ¹ê¥²¶·¥H¤@­Ó¿×µü¡]¬O­ì¤lªº¤@ºØ¡^¶}©l¡A¥H­^¤å¥y¸¹µ²§ô¡C¿×µü¤§«á¥i¥H¦³¤@¹ï¬A¸¹¡AùØ­±¦³¤@­Ó©Î¥H¤WªºÅܤ¸¡AÅܤ¸¥i¥H¬O­ì¤l¡]¦b³o±¡ªp¤U¡A³o¨Ç­ì¤l³Q·í¦¨±`¼Æ¡^¡B¼Æ¦r¡BÅܶq©Î¦Cªí¡AÅܤ¸¥H³r¸¹¤À¹j¡C

¦pªG§Ú­Ì§â¨Æ¹ê¤¤ªºÅܤ¸µø¬°ª«¥ó¡A¨º»ò¨Æ¹ê¤¤ªº¿×µü´N¬O§Î®e³o¨Çª«¥óªºÄݩʡC

¦b¤@­Ó Prolog µ{§Ç¤¤¡A­YªG¦³¤@¨Æ¹ê¦s¦b¡A§Y¥Nªí¤@­Ó»y¥y¬O¯uªº¡F­YªG¨Æ¹ê¨S¦³¦s¦b¡A³o¥Nªí¤@­Ó»y¥y¤£¬O¯uªº¡C¬Ý¬Ý¥H¤U¨Ò¤l¡J

µ{§Ç¤G¡J¤@­Ó¥u¦³¨Æ¹êªº Prolog µ{§Ç
sunny.
father(john, peter).
father(john, mary).
mother(susan, peter).
¥Ø¼Ð¡þ¬d¸ß¤Î¨äµ²ªG¡]¬õ¦â©Ò¥Ü¡^
?- sunny.    /* ¦^À³¬O¡uyes¡v¬O¦]¬°¨Æ¹ê¡usunny.¡v¦s¦b */

yes

?- rainy.    /* ¦³¿ù»~ªºµ²ªG¬O¦]¬°¨S¦³¤@­Ó¥s¡urainy¡vªº¿×µü¡C */

¿ù»~µ²ªG¡C

?- father(john, mary).

yes

?- mother(susan, mary). /* ³o¤£¯à³Q±ÀÂ_¥X¨Ó¡C */

no

?- father(john, susan). /* ³o¤£¯à³Q±ÀÂ_¥X¨Ó¡C */

no

³W«h Top

¤@­Ó³W«h¥i¥Hµø¬°¨Æ¹êªº¦ù©µ³¡¥÷¡A¥u¤£¹L¬O¥[¤F±ø¥ó¡C­n³o­Ó³W«h¦¨¬°¯uªº¡A³W«h¤¤ªº±ø¥ó¥²¶·²Å¦X¡C³W«h¤À¬°¨â³¡¥÷¡J²Ä¤@³¡¥÷©M¨Æ¹ê®t¤£¦h¡]¤@­Ó¦³Åܤ¸ªº¿×µü¡^¡F²Ä¤G³¡¥÷¥]§t¨ä¥Lµu¥y¡]¨Æ¹ê©Î³W«h¡A¥H³r¸¹¤À¹j¡^¡A­n³W«h¦¨¬°¯uªº¡A³o¨Çµu¥y¥²¶·¬O¯uªº¡C³o¨â³¡¥÷¥Ñ¡u:-¡v¤À¹j¡A§A¥i¥H§â¥¦·í§@¬O¤¤¤å¤¤ªº¡u¦pªG¡v¡C

¬Ý¬Ý¥H¤U¨Ò¤l¡J

µ{§Ç¤T¡J¤@­Óµ{§Ç§Î®e¤F¤@­Ó®a®x¤¤¦U¦¨­ûªºÃö«Y

father(jack, susan).                             /* ¨Æ¹ê¤@ */
father(jack, ray).                               /* ¨Æ¹ê¤G */
father(david, liza).                             /* ¨Æ¹ê¤T */
father(david, john).                             /* ¨Æ¹ê¥| */
father(john, peter).                             /* ¨Æ¹ê¤­ */
father(john, mary).                              /* ¨Æ¹ê¤» */
mother(karen, susan).                            /* ¨Æ¹ê¤C */
mother(karen, ray).                              /* ¨Æ¹ê¤K */
mother(amy, liza).                               /* ¨Æ¹ê¤E */
mother(amy, john).                               /* ¨Æ¹ê¤Q */
mother(susan, peter).                            /* ¨Æ¹ê¤Q¤@ */
mother(susan, mary).                             /* ¨Æ¹ê¤Q¤G */

parent(X, Y) :- father(X, Y).                    /* ³W«h¤@ */
parent(X, Y) :- mother(X, Y).                    /* ³W«h¤G */
grandfather(X, Y) :- father(X, Z), parent(Z, Y). /* ³W«h¤T */
grandmother(X, Y) :- mother(X, Z), parent(Z, Y). /* ³W«h¥| */
grandparent(X, Y) :- parent(X, Z), parent(Z, Y). /* ³W«h¤­ */
yeye(X, Y) :- father(X, Z), father(Z, Y).        /* ³W«h¤» */
mama(X, Y) :- mother(X, Z), father(Z, Y).        /* ³W«h¤C */
gunggung(X, Y) :- father(X, Z), mother(Z, Y).    /* ³W«h¤K */
popo(X, Y) :- mother(X, Z), mother(Z, Y).        /* ³W«h¤E */

®³³W«h¤T§@¬°¨Ò¤l¡A¥¦ªº·N«ä¬O¦pªG¡ufather(X, Z)¡v©M¡uparent(Z, X)¡v³£¬O¯uªº¡A¨º»ò¡ugranfather(X, Y)¡v¬O¯uªº¡C¦b±ø¥ó¤¤ªº³r¸¹¥i¥H·í§@¬OÅÞ¿è¤Wªº¡uAND¡v¹Bºâ²Å¡C

§A¥i¥H¨£¨ì³W«h¤@¤Î³W«h¤G³£¬O¥H¡uparent(X, Y)¡v¶}©l¡C¤°»ò®É­Ô¡uparent(X, Y)¡v¤~·|Åܦ¨¯uªº¡Hµª®×´N¬O³o¨â­Ó³W«h·í¤¤¥ô¦ó¤@­Ó¬O¯uªº¡C³o§Y¬O»¡¡A·í¡ufather(X, Y)¡v¬O¯uªº©Î¡umother(X, Y)¡v¬O¯uªº®É¡A¡uparent(X, Y)¡v´N¬O¯uªº¡C

¥Ñ³W«h¤T¦Ü³W«h¤­©Ò¨£¡A¥u¥X²{¦b³W«h¡A¨S¦³¦b¨Æ¹ê¥X²{ªº¿×µü¡]¦b³o±¡ªp¤U¡A¬O parent¡^¤]¥i¥H¦¨¬°¨ä¥L³W«hªº±ø¥ó¡C

¥Ø¼Ð¤Î¬d¸ß Top

·í Prolog ¸ÑÄÀµ{§Ç°õ¦æ®É¡A§A¥i¯à¦bµe­±¨£¨ì´£µü¡u?-¡v¡A³o´£¿ô¨Ï¥ÎªÌ¿é¤J¤@­Ó¥Ø¼Ð©ÎªÌ¬d¸ß¡C

¥Ø¼Ð

¥Ø¼Ð¬O¤@­Ó¥H¿×µü¶}©l¡]¥i¯àªþ¦³¤@¨ÇÅܤ¸¡^ªº»y¥y¡C¦b¤@­Ó¦³®Äªº¥Ø¼Ð¤¤¡A¿×µü¥²¶·´¿¦b³Q¬d¾\ªºµ{§Ç·í¤¤¦Ü¤Ö¤@­Ó¨Æ¹ê©Î³W«h¥X²{¹L¡A¦ÓÅܤ¸ªº¼Æ¥Ø¥²¶·©M¦b³Q¬d¾\ªºµ{§Ç·í¤¤©Ò¨£ªº¤@¼Ë¡C¦¹¥~¡A©Ò¦³Åܤ¸³£¬O±`¼Æ¡C

´£¥æ¥Ø¼Ðªº¥Øªº¬O¥h¨D¥X¥Ø¼Ð¥Nªíªº»y¥y¬O§_¯uªº¡A¨ä§PÂ_¤èªk¸ò¾Úª¾ÃѼƾڮw¡]§Y³Q¬d¾\ªºµ{§Ç¤¤ªº¨Æ¹ê©M³W«h¡^¡C³o©MÃÒ©ú°²³]¬Û¦ü¢w¢w¥Ø¼Ð´N¬O°²³]¡A¨Æ¹ê´N¬O¤½²z¡A¦Ó³W«h´N¬O©w²z¡C

¬d¸ß

¬d¸ß¬O¤@­Ó¥H¿×µü¶}©l¡Aªþ¦³¤@¨ÇÅܤ¸ªº»y¥y¡A¦Ó·í¤¤¦³¨ÇÅܤ¸¬OÅܶq¡C©M¥Ø¼Ð¤@¼Ë¡A¦³®Äªº¬d¸ßªº¿×µü¥²¶·´¿¦b³Q¬d¾\ªºµ{§Ç¤¤¦Ü¤Ö¤@­Ó¨Æ¹ê©Î³W«h¥X²{¹L¡A¦ÓÅܤ¸ªº¼Æ¥Ø¥²¶·©M¦b³Q¬d¾\ªºµ{§Ç·í¤¤©Ò¨£ªº¤@¼Ë¡C

´£¥æ¬d¸ßªº¥Øªº¬O¥h¨D¥X¾A·íªº­È¥h¥N¤J¬d¸ß¤¤ªºÅܶq¡A¨Óº¡¨¬¸Ó¬d¸ß¡C³o©Mµo°Ý°ÝÃD¬Û¦ü¡A°ÝÃD¬O°Ý¡u¤°»ò­È¥i¥H¨Ï§Úªº»y¥yÅܦ¨¯uªº¡v¡C

¥H¤U¨Ò¤l®i¥Ü¥Ø¼Ð©M¬d¸ß¦p¦ó³Qµû¦ô¡A¨Ï¥Îªº¬Oµ{§Ç¤T¡Cµ²ªG¥H¬õ¦âªí¥Ü¡C

?- parent(susan, mary).

yes

³o­Ó¥Ø¼Ð­nÃÒ©ú¡uSusan ¬O Mary ªº¤@­Ó®aªø¡v¡C±q¨Æ¹ê¤Q¤G©M³W«h¤G±oª¾¡A³o¥Ø¼Ð¬O¯uªº¡C
?- parent(ray, peter).

no

³o­Ó¥Ø¼Ð­nÃÒ©ú¡uRay ¬O Peter ªº¤@­Ó®aªø¡v¡C¦]¬°¨S¦³¨Æ¹ê©M³W«h¤ä´©¡A©Ò¥H¦¹¥Ø¼Ð³Q¤ÏÃÒ¡C
?- yeye(X, susan).

no

³o­Ó¬d¸ß°Ý½Ö¬O Susan ªº¡uyeye¡v¡C§Ú­Ì¤£¯à±qµ{§Ç¤¤§ä¨ì¸Ñ¡A¦]¦¹ Prolog ¸ÑÄÀµ{§Ç¦^¶Ç no¡C
?- mama(amy, X).

X = peter ;

X = mary ;

no

³o­Ó¬d¸ß°Ý½ÖºÙ©I Amy ¬°¡umama¡v¡C±qµ{§Ç±oª¾ Peter ©M Mary ³£¬O¸Ñ¡C¦]¦¹ Prolog ¸ÑÄÀµ{§Ç·|Åã¥Ü³o¨â­Óµª®×¡C

¦]¬° Prolog ¸ÑÄÀµ{§Ç¤@¦¸¥u¯àÅã¥Ü¤@­Ó¸Ñ¡A§Ú­Ì¿é¤J¤@­Ó¤À¸¹¡]¤£¦Pªº³n¥ó¥i¯à­n¿é¤J¤£¦Pªº²Å¸¹¡^¥h­n¨D¤U¤@­Ó¸Ñ¡C¦pªG¦A¨S¦³¸Ñ¡AProlog ¸ÑÄÀµ{§Ç·|¦^¶Ç no¡C

?- gunggung(X, Y).

X = jack
Y = peter
;

X = jack
Y = mary
;

no

³o­Ó¬d¸ß°Ý¡J¡uX ¬O Y ªº¡ygunggung¡z¡CX ©M Y ¬O½Ö¡H¡v±qµ{§Ç±oª¾¡AX ¬O Jack¡A¦Ó Y ¥i¥H¬O Peter ©Î Mary¡C©Ò¥H Prolog ¸ÑÄÀµ{§Ç·|¦^¶Ç¨â²Õµ²ªG¡C

¬Ý¬Ý¤U­¶¥iª¾ Prolog ¸ÑÄÀµ{§Ç¦p¦ó³B²z¥Ø¼Ð©M¬d¸ß¡C

±`¨£¤º¸m¿×µü Top

°£¤F¦Û¦æ©w¸qªº¿×µü¥~¡AProlog ¥ç¦³´£¨Ñ¤º¸m¿×µü¡C¥H¤U¬O¤@¨Ç±`¨£ªº¤º¸m¿×µü¡J

¯d·N¥H¤Wªº¤º¸m¿×µü¦³¨â­ÓÅܤ¸¡A¤@­Ó¦b¥ª­±¡A¥t¤@­Ó¦b¥k­±¡]©M¨ä¥Lªºµ{§Ç»y¨¥¬Û¦ü¡^¡C¤£¹L¡A¦Û¦æ©w¸qªº¿×µü©M³¡¥÷¤º¸m¿×µü¤@©w­n¦bÅܤ¸¤§«e¥X²{¡C

¥ç½Ð¯d·N is ©M = ªº¤À§O¡C¸Õ¬Ý¬Ý¥H¤Uªº¥Ø¼Ð¡J

?- 4 = 4.

yes

«Ü©úÅã¡C
?- 4 is 4.

yes

«Ü©úÅã¡C
?- 4 = 1 + 3.

no

µª®×¬O no¡A¦]¬°¥ª­±¡]4¡^©M¥k­±¡]1 + 3¡^¤£¬O§¹¥þ¤@¼Ë¡C
?- 4 is 1 + 3.

yes

¥ª­±ªº­È©M¥k­±ªº­È¬Ûµ¥¡C

«e­¶ ¥Ø¿ý ¤U­¶