¦b±ÀÂ_ªº¹Lµ{¤¤¡]¦^µª¬d¸ß©ÎÀ˯Á¥H¹F¦¨¥Ø¼Ð¡^¡AProlog ¸ÑÄÀµ{§Ç°µ¨Ç¤°»ò¡H
¤@Ó Prolog µ{§Ç·|³Q¬d¾\¡Aµ{§Ç¤¤ªº¨Æ¹ê©M³W«h³Q¸ü¤Jª¾ÃѼƾڮw¡C
·í¦³¤F¬d¸ß©Î¥Ø¼Ð«á¡AProlog ¸ÑÄÀµ{§Ç±q¤W¦Ü¤U·j´Mª¾ÃѼƾڮw¡A¬Ý¬Ý¦³¨S¦³¨Æ¹ê©Î³W«h¥i¥H©M¬d¸ß©Î¥Ø¼Ð¬Û°t¦X¡C
¦pªG¦³°t¦Xªº±¡ªp¡AProlog ¸ÑÄÀµ{§Ç¦¨¥\¦a¬°¬d¸ß§ä¥Xµª®×¡A©Î±oª¾¥Ø¼Ð¬O¯uªº¡F¥ô¦óÅܶqªºÈ¤]¦b³o®ÉÔ³Q¨D¥X¤F¡C
¦pªG¨Ï¥ÎªÌn¨D§ó¦h¸Ñ¡]¨Ò¦p¦b³¡¥÷ Prolog ¸ÑÄÀµ{§Ç¿é¤J¤F¤À¸¹¡^¡AProlog ¸ÑÄÀµ{§Ç·|Ä~Äò·j´M¡C¥¦·|°OµÛþ¨Ç¨Æ¹ê©M³W«h³Q·j´M¹L¡C·í¥¦¦A§ä¤£¨ì§ó¦h¸Ñªº®ÉÔ¡A¥¦·|¿é¥X¡uno¡v¡A¨Ã¥B·j´Mµ²§ô¡C
Prolog ¸ÑÄÀµ{§Ç±q¥Ø¼Ð¡þ¬d¸ß¶}©l¡A¸òµÛ¤@ª½¦V«á¦^¯Á¡A¦bª¾ÃѼƾڮw¤¤§ä¥X¥i¥H±ÀÂ_¨ì¥Ø¼Ð¨Æ¹ê©M³W«h¡C§A¥i¥H¦b¤U±ªº¨Ò¤l¤¤¬Ý¨£±ÀÂ_ªº¹Lµ{¡C
¤@P¤Æ§Y¬O³z¹L¬ù§ôÅܶqªº¤èªk¡A¦b¤w¦³ªº³W«h¤¤¤Þ¦ù¥X¥X·sªº³W«h¡C
¬°¤Fn°t¦X¨ì¥Ø¼Ð©Î¬d¸ß¡A¥ô¦ó¹J¨£ªºÅܶq³£·|¥H«ê·íªº±`¼Æ¥N¤J¥h¡]ºÙ¬°¬ù§ô¡^¡C
¦³¨Ç®ÉÔ¡A¦h©ó¤@Өƹê¡þ³W«h¥i¥HÀ³¥Î©ó¤@ӥؼСþ¬d¸ß¡A³o®ÉÔ¦bª¾ÃѼƾڮw¤¤³Ì¥ý¥X²{ªº¨Æ¹ê¡þ³W«h·|³QÀ³¥Î¡A¦Ó¨ä¥Lªº¨Æ¹ê¡þ³W«h¿ð¨Ç¤]·|³QÀ³¥Î¡A¨Ï§ÚÌ¥i¥H§ä¨ì©Ò¦³¥i¯àªº¸Ñ¡C³o¹Lµ{ºÙ¬°¦^¯Á¡C
§ÚÌ·|¨Ï¥Î¥H¤Uµ{§Ç©M¤@¨Ç¬d¸ß¥h¸ÑÄÀ±ÀÂ_ªº¹Lµ{¡C
¯d·N¡J±ÀÂ_¹Lµ{¤¤ªº¨C¤@¨B¤¤¡A¥i¯à·|¦³¦h©ó¤@Ó¤l¥Ø¼Ð³Q³B²z¡C¦b³o±¡ªp¤U¡A¥u¦³²Ä¤@Ó¤l¥Ø¼Ð³Q¦Ò¼{¡A¦pªG¦³¤@Ó³W«h¥i³QÀ³¥Î¡A¥¦·|³QÀ³¥Î¤Fªº³W«h·í¤¤ªº¤l¥Ø¼Ð¨ú½l¡F¦pªG²Å¦X¤F¤@Өƹê¡A¥¦·|³Q§R¥h¡C¦pªG¨S¦³³W«h©Î¨Æ¹ê¥i³QÀ³¥Î¡A§ÚÌ»Ýn¦^¯Á¡C
¼h¦¸ | ±ÀÂ_ªºµ²ªG | À³¥Î¤Fªº¨Æ¹ê©Î³W«h | ¬ù§ôÅܶq | |
---|---|---|---|---|
ì¨Óªº¥Ø¼Ð | can_use(judy, vb).
|
P = judy SW = vb |
||
1 | access(judy, Comp), can_run(Comp, vb).
|
Comp = comp1 | ||
2 | can_run(comp1, vb). | - |
||
3 | spec(comp1, CompType, MemAvail), runs(CompType, vb, MemNeeded), MemAvail >= MemNeeded. |
CompType = pc MemAvail = 32 |
||
4 | runs(pc, vb, MemNeeded), 32 >= MemNeeded. |
MemNeeded = 16 | ||
5 | 32 >=16.
|
²Å¦X¤F¡I ¿é¥X¡Jyes |
||
¾ãÅé¿é¥X | yes |
¦¹¥Ø¼Ð¥Ü½d¦^¯Á¡C
¼h¦¸ | ±ÀÂ_ªºµ²ªG | À³¥Î¤Fªº¨Æ¹ê©Î³W«h | ¬ù§ôÅܶq | |
---|---|---|---|---|
ì¨Óªº¥Ø¼Ð | can_use(david, prolog). | P = david SW = prolog |
||
1 | access(david, Comp), can_run(Comp, prolog).
|
Comp = comp1 | ||
2 | can_run(comp1, prolog). | - |
||
3 | spec(comp1, CompType, MemAvail), runs(CompType, prolog, MemNeeded), MemAvail >= MemNeeded. |
CompType = pc MemAvail = 32 |
||
4 | runs(pc, prolog, MemNeeded), 32 >= MemNeeded.
|
¥¢±Ñ¤F¡I¦^¯Á¡C | ||
3 | spec(comp1, CompType, MemAvail), runs(CompType, prolog, MemNeeded), MemAvail >= MemNeeded.
|
¥¢±Ñ¤F¡I¦^¯Á¡C | ||
2 | can_run(comp1, prolog). | ¥¢±Ñ¤F¡I¦^¯Á¡C | ||
1 | access(david, Comp), can_run(Comp, prolog).
|
Comp = comp2 | ||
2 | can_run(comp2, prolog). | - |
||
3 | spec(comp2, CompType, MemAvail), runs(CompType, prolog, MemNeeded), MemAvail >= MemNeeded. |
CompType = mac MemAvail = 128 |
||
4 | runs(mac, prolog, MemNeeded), 128 >= MemNeeded. |
MemNeeded = 128 | ||
5 | 128 >= 128. | ²Å¦X¤F¡I ¿é¥X¡Jyes |
||
¾ãÅé¿é¥X | yes |
³o¬d¸ß¥Ü½d«ç¼Ë¦^¯Á¥h§ä´M©Ò¦³µª®×¡C
¼h¦¸ | ±ÀÂ_ªºµ²ªG | À³¥Î¤Fªº¨Æ¹ê©Î³W«h | ¬ù§ôÅܶq | |
---|---|---|---|---|
ì¨Óªº¬d¸ß | can_use(judy, X). | P = judy | ||
1 | access(judy, Comp), can_run(Comp, X). | Comp = comp1 | ||
2 | can_run(comp1, X). | - |
||
3 | spec(comp1, CompType, MemAvail), runs(CompType, X, MemNeeded), MemAvail >= MemNeeded. |
CompType = pc MemAvail = 32 |
||
4 | runs(pc, X, MemNeeded), 32 >= MemNeeded. |
¨Æ¹ê¥| | X = movie_edit MemNeeded = 96 |
|
5 | 32 >= 96. | ¥¢±Ñ¤F¡I¦^¯Á¡C |
||
4 | runs(pc, X, MemNeeded), 32 >= MemNeeded. |
¨Æ¹ê¤ | X = vb MemNeeded = 16 |
|
5 | 32 >= 16.
|
²Å¦X¤F¡I |
||
4 | runs(pc, X, MemNeeded), 32 >= MemNeeded. |
¨Æ¹ê¤» | X = cpp MemNeeded = 28 |
|
5 | 32 >= 28. | ²Å¦X¤F¡I ¿é¥X¡JX = cpp µM«á¦^¯Á¡C |
||
4 | runs(pc, X, MemNeeded), 32 >= MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C | ||
3 | spec(comp1, CompType, MemAvail), runs(CompType, X, MemNeeded), MemAvail >= MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C | ||
2 | can_run(comp1, X). | ¥¢±Ñ¤F¡I¦^¯Á¡C | ||
1 | access(judy, Comp), can_run(Comp, X). | ¥¢±Ñ¤F¡I¦^¯Á¡C | ||
ì¨Óªº¬d¸ß | can_use(judy, X). | ¥¢±Ñ¤F¡I ¥Ñ©ó¤w¦^¨Ó¨ì³Ì³»¼h¡A¦]¦¹©Ò¦³µª®×¤w¸g³Q§ä¥X¨Ó¤F¡C |
||
¾ãÅé¿é¥X | x = vb x = cpp |
§Ṳ́@©wn¦^¯Á¤~¥i¥HªÖ©w¤@Ó¬d¸ß¨S¦³µª®×¡C
¼h¦¸ | ±ÀÂ_ªºµ²ªG | À³¥Î¤Fªº¨Æ¹ê©Î³W«h | ¬ù§ôÅܶq |
---|---|---|---|
ì¨Óªº¬d¸ß | can_use(X, movie_edit). | SW = movie_edit | |
1 | access(X, Comp), can_run(Comp, movie_edit). | X = judy Comp = comp1 |
|
2 | can_run(comp1, movie_edit). | - |
|
3 | spec(comp1, CompType, MemAvail), runs(CompType, movie_edit, MemNeeded), MemAvail >= MemNeeded. |
CompType = pc MemAvail = 32 |
|
4 | runs(pc, movie_edit, MemNeeded), 32 >= MemNeeded. |
¨Æ¹ê¥| | MemNeeded = 96 |
5 | 32 >= 96. | ¥¢±Ñ¤F¡I¦^¯Á¡C | |
4 | runs(pc, movie_edit, MemNeeded), 32 >=MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C | |
3 | spec(comp1, CompType, MemAvail), runs(CompType, movie_edit, MemNeeded), MemAvail >= MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C |
|
2 | can_run(comp1, movie_edit). | ¥¢±Ñ¤F¡I¦^¯Á¡C |
|
1 | access(X, Comp), can_run(Comp, movie_edit). | X = peter Comp = comp3 |
|
2 | can_run(comp3, movie_edit). | - |
|
3 | spec(comp3, CompType, MemAvail), runs(CompType, movie_edit, MemNeeded), MemAvail >= MemNeeded. |
CompType = pc MemAvail = 64 |
|
4 | runs(pc, movie_edit, MemNeeded), 64 >= MemNeeded. |
¨Æ¹ê¥| | MemNeeded = 96 |
5 | 64 >= 96. | ¥¢±Ñ¤F¡I¦^¯Á¡C |
|
4 | runs(pc, movie_edit, MemNeeded), 64 >=MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C | |
3 | spec(comp3, CompType, MemAvail), runs(CompType, movie_edit, MemNeeded), MemAvail >= MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C | |
2 | can_run(comp3, movie_edit). | ¥¢±Ñ¤F¡I¦^¯Á¡C | |
1 | access(X, Comp), can_run(Comp, movie_edit). | X = david Comp = comp1 |
|
2 | can_run(comp1, movie_edit). | - |
|
3 | spec(comp1, CompType, MemAvail), runs(CompType, movie_edit, MemNeeded), MemAvail >= MemNeeded. |
CompType = pc MemAvail = 32 |
|
4 | runs(pc, movie_edit, MemNeeded), 32 >= MemNeeded. |
¨Æ¹ê¥| | MemNeeded = 96 |
5 | 32 >= 96. | ¥¢±Ñ¤F¡I¦^¯Á¡C |
|
4 | runs(pc, movie_edit, MemNeeded), 32 >=MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C |
|
3 | spec(comp1, CompType, MemAvail), runs(CompType, movie_edit, MemNeeded), MemAvail >= MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C |
|
2 | can_run(comp1, movie_edit). | ¥¢±Ñ¤F¡I¦^¯Á¡C |
|
1 | access(X, Comp), can_run(Comp, movie_edit). | X = david Comp = comp2 |
|
2 | can_run(comp2, movie_edit). | - |
|
3 | spec(comp2, CompType, MemAvail), runs(CompType, movie_edit, MemNeeded), MemAvail >= MemNeeded. |
CompType = mac MemAvail = 128 |
|
4 | runs(mac, movie_edit, MemNeeded), 128 >= MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C |
|
3 | spec(comp2, CompType, MemAvail), runs(CompType, movie_edit, MemNeeded), MemAvail >= MemNeeded. |
¥¢±Ñ¤F¡I¦^¯Á¡C |
|
2 | can_run(comp2, movie_edit). | ¥¢±Ñ¤F¡I¦^¯Á¡C |
|
1 | access(X, Comp), can_run(Comp, movie_edit). | ¥¢±Ñ¤F¡I¦^¯Á¡C |
|
ì¨Óªº¬d¸ß | can_use(X, movie_edit). | ¥¢±Ñ¤F¡C¤w¨ì¤F³Ì³»¼h¡A¦ý¨S§ä¨ìµª®×¡C ¿é¥X¡Jno |
|
¾ãÅé¿é¥X | no |