Á¦ÇÑ ³í¸® ÇÁ·Î±×·¡¹Ö ¾ð¾î
) º» ¿¬ ±¸´Â Çѱ¹ÀüÀÚÅë½Å¿¬±¸¼Ò À§Å¹°úÁ¦ÀÎ "³í¸® ¾ð¾î ÄÄÆÄÀÏ·¯¿¡ °üÇÑ ¿¬±¸"ÀÇ ºÎºÐ Áö¿øÀ» ¹ÞÀº °ÍÀÔ´Ï´Ù.

Çѱ¹ÀüÀÚÅë½Å¿¬±¸¼Ò ½Åµ¿ÇÏ
¼÷¸í¿©ÀÚ´ëÇб³ âº´¸ð
1. ¼­·Ð

Á¦ÇÑ ³í¸®(constraint logic) ÇÁ·Î±×·¡¹ÖÀº µÎ °¡ÁöÀÇ ¼±¾ðÀû ÆÐ·¯´ÙÀÓÀÎ ³í¸® ÇÁ·Î±×·¡¹Ö°ú Á¦ÇÑ Ç®ÀÌ(constraint solving)ÀÇ °áÇÕÀ̶ó°í ÇÒ ¼ö Àִµ¥ ±âÁ¸ ³í¸® ¾ð¾îÀÇ ´ÙÀ½°ú °°Àº ¹®Á¦Á¡À» ÀνÄÇϸ鼭 ½ÃÀ۵Ǿú´Ù. ù°, ³í¸® ÇÁ·Î±×·¥¿¡¼­ ´Ù·ç¾îÁö´Â °´Ã¼´Â ÇØ¼®µÇÁö ¾Ê´Â ±¸Á¶¸¦ Ç¥ÇöÇÑ´Ù´Â Á¡ÀÌ´Ù. µû¶ó¼­ ¸ðµç Àǹ̸¦ °¡Áö´Â °´Ã¼ÀÇ Àǹ̴ ¹Ýµå½Ã ¸í½ÃÀûÀ¸·Î Ç¥ÇöµÇ¾î¾ß ÇÑ ´Ù. ÀÌ·¯ÇÑ Á¦¾àÀº ³í¸® ÇÁ·Î±×·¡¹ÖÀÇ Ãß·ÐÀÌ ¿ø½ÃÀûÀÎ ¼öÁØÀÇ Ãß·ÐÀ¸·Î ¸Ó¹°°Ô ÇÏ¿´´Ù. ¹Ý¸é¿¡ Á¦ÇÑ ¾ð¾î¿¡¼­´Â ÀÇ¹Ì ÀÖ´Â °´Ã¼ »çÀÌÀÇ °ü°è°¡ ¾Ï½ÃÀûÀ¸·Î ±â¼úµÉ ¼ö ÀÖ´Ù. µÑ°, ³í¸® ÇÁ·Î±×·¥ÀÇ ½ÇÇà °úÁ¤ÀÌ ±íÀÌ ¿ì¼±(depth-first) Ž»öÀ¸·Î ÀÎÇÏ¿© °á±¹ Àº "»ý¼º ÈÄ °Ë»ç(generate and test)" ¾Ë°í¸®ÁòÀÌ µÇ¾ú´Ù´Â Á¡ÀÌ´Ù. Àß ¾Ë·ÁÁø ¹Ù¿Í °°ÀÌ ÀÌ ¹æ¹ýÀº Å« Ž»ö ¹®Á¦¿¡ ´ëÇØ¼­ ¼º´ÉÀÇ ¹®Á¦Á¡À» °¡Áö°í ÀÖ´Ù. 70³â´ë ÈĹݺÎÅÍ 80³â´ë ÃÊ¿¡ °ÉÃļ­ Àΰø Áö´É ºÐ¾ß¿¡¼­ Ž»öÀ» º¸´Ù Áö´ÉÀûÀ¸·Î Çϱâ À§ ÇØ¼­ Á¦ÇÑ Á¶ÀÛ°ú ÀüÆÄ¿¡ °üÇÑ ¿¬±¸°¡ Ȱ¹ßÇÏ°Ô ÁøÇàµÇ¾ú´Ù[16,18,19]. ÀÌ·¯ÇÑ ¿¬±¸¸¦ ¹ÙŸÀ¸·Î Gallair´Â ³í¸® ÇÁ·Î±×·¡¹ÖÀÇ Å½ »öÀ» Çâ»ó½Ã۱â À§ÇÏ¿© Á¦ÇÑÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» Á¦½ÃÇÏ¿´À¸¸ç[8], ±âÁ¸ÀÇ "»ý¼º ÈÄ °Ë»ç(generate and test)" ¾Ë°í¸® ÁòÀÇ ¼öÇà·ÂÀ» Çâ»ó½Ã۱â À§ÇÏ¿© Á¦ÇÑÀ» µµÀÔÇÏ¿© "Á¦ÇÑ ÈÄ »ý¼º (constraint and generate)" ¾Ë°í¸®ÁòÀ» Á¦½ÃÇÏ¿´´Ù . ±× ÈÄ·Î ´Ù¾çÇÑ Ãß·Ð ¹æ¹ýÀÌ Á¦½ÃµÇ¾úÀ¸¸ç, ¿©±â¼­ ÇÙ½ÉÀûÀÎ °ÍÀº Ž»ö °úÁ¤°ú Á¦ÇÑ Ç®ÀÌ °úÁ¤ÀÇ ¹ÐÁ¢ÇÑ °áÇÕÀ̶ó°í ÇÒ ¼ö ÀÖ ´Ù. ÀÌ·Î ÀÎÇØ¼­ Á¦ÇÑ ³í¸® ÇÁ·Î±×·¥Àº ±âÁ¸ÀÇ ³í¸® ÇÁ·Î±×·¥º¸´Ù ´õ dzºÎÇÑ Ç¥Çö·ÂÀ» °¡Áö°Ô µÇ¾ú°í ¶ÇÇÑ º¸´Ù È¿À²ÀûÀ¸·Î ¼öÇà µÉ ¼ö ÀÖ°Ô µÇ¾ú´Ù.

ÀÌ ±ÛÀº Á¦ÇÑ ³í¸® ¾ð¾î¿¡ ´ëÇÑ ±âÃÊ ÀÌ·Ð, ¾ð¾îÀÇ Á¾·ù ¹× ÀÀ¿ë¿¡ ´ëÇØ¼­ ¼Ò°³ÇÑ´Ù. 2Àý¿¡¼­´Â Á¦ÇÑ ³í¸® ¾ð¾îÀÇ ¾ÈÀü¼º(sou ndness) ¹× ¿ÏÀü¼º(completeness)¿¡ ´ëÇÏ¿© ¼³¸íÇϰí, Á¦ÇÑ ³í¸® ¾ð¾îÀÇ ¼öÇà °úÁ¤ ¹× Áß¿äÇÑ µµ¸ÞÀο¡ ´ëÇÑ Á¦ÇÑ Ç®ÀÌ ¹æ¹ýÀ» °£·«ÇÏ°Ô ¼Ò°³ÇÑ´Ù. 3Àý¿¡¼­´Â Á¦ÇÑ ÇÁ·Î±×·¡¹ÖÀÇ °£´ÜÇÑ ¿ª»ç¿Í ´ëÇ¥ÀûÀÎ Á¦ÇÑ ³í¸® ¾ð¾îÀÎ CHIP, CLP(R), Prolog III¿¡ ´ëÇÏ¿© ¼Ò°³ÇÑ´Ù. Á¦ÇÑ ³í¸® ¾ð¾î CHIP[6]Àº À¯ÇÑ Æ®¸®, À¯ÇÑ Á¤¼ö, ºÒ¸®¾ð ¹× À¯¸®¼ö µµ¸ÞÀÎ, CLP(R)[11]Àº À¯ÇÑ Æ®¸® ¹× ½Ç¼ö µµ¸ÞÀÎ, Prolog III[5]´Â ¹«ÇÑ Æ®¸®, À¯¸®¼ö, ºÒ¸®¾ð ¹× ¸®½ºÆ® µµ¸ÞÀο¡¼­ÀÇ Á¦ÇÑ Ç¥ÇöÀ» Á¦°øÇÑ´Ù. 4Àý¿¡¼­´Â Á¦ÇÑ ³í ¸® ¾ð¾î ÀÀ¿ëÀÇ ¼Ò°³·Î ¿É¼Ç °Å·¡ ½Ã½ºÅÛ ¹× ¸ðµ¨ ±â¹Ý Àü¹®°¡ ½Ã½ºÅÛÀ» ¼Ò°³ÇÑ´Ù. 5Àý¿¡¼­´Â ÀÌ ±Û¿¡ ´ëÇÑ °á·ÐÀ» ¸Î´Â´Ù.

2. ±âº» ÀÌ·Ð



º» Àý¿¡¼­´Â Á¦ÇÑ ³í¸® ¾ð¾î¸¦ Á¤ÀÇÇÏ°í ±¸ÇöÇÏ´Â µ¥ ÇÊ¿äÇÑ ±âº» À̷п¡ ´ëÇÏ¿© ¼Ò°³ÇÑ´Ù. ¸ÕÀú Á¦ÇÑ ³í¸® ¾ð¾î¿¡ ´ëÇÑ ¾ÈÀü ÇÏ°í ¿ÏÀüÇÑ Áõ¸í ÀýÂ÷(proof procedure)ÀÇ Á¸Àç¿¡ ´ëÇÏ¿© ¼Ò°³Çϰí, Á¦ÇÑ ³í¸® ¾ð¾î°¡ ¼öÇàµÇ´Â °úÁ¤À» Ãß»ó ±â°èÀÇ »óÅ º¯È­( state transition)¸¦ ÅëÇÏ¿© ¼³¸íÇÑ´Ù. ±×¸®°í Á¦ÇÑ ³í¸® ¾ð¾î¿¡¼­ ³Î¸® »ç¿ëµÇ´Â ½Ç¼ö µµ¸ÞÀÎ ¹× ºÒ¸®¾ð µµ¸ÞÀο¡¼­ÀÇ Á¦ÇÑ Ç® À̸¦ ¼Ò°³ÇÑ´Ù.

2.1 ¾ÈÀü¼º°ú ¿ÏÀü¼º

³í¸® ÇÁ·Î±×·¥Àº "p0 :- p1, ..., pn" ¸ð¾çÀ» °¡Áö´Â È¥ Ŭ·ÎÁî(clause)ÀÇ ÁýÇÕ À¸·Î Á¤ÀǵȴÙ. ¿©±â¼­ pi´Â ¾ÆÅè(atom)À̸ç, È¥ Ŭ·ÎÁîÀÇ ³í¸®Àû Àǹ̴ "p1 ... p nÀÌ ÂüÀ̸é p0´Â ÂüÀÌ´Ù." ÀÌ´Ù. ±×¸®°í ¸ñÇ¥(goal) Ŭ·ÎÁî´Â "g0, ..., gm" ¸ð¾çÀ» °¡Áö¸ç, ¿©±â¼­µµ gi´Â ¾ÆÅèÀÌ´Ù. ³í¸® ¾ð¾îÀÇ Áß¿äÇÑ ÀÌ·ÐÀû °á°ú´Â ³í¸®Àû ÇØ¼®(interpretation)¿¡ ¹ÙÅÁÀ» µÐ °á·ÐÀ» ã´Â ±â°èÀû Áõ¸í ÀýÂ÷°¡ Á¸ÀçÇÑ´Ù´Â °ÍÀÌ´Ù. À̸¦ Á» ´õ Á¤È®ÇÏ°Ô Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°À¸¸ç, ÀÌ »ç½ÇÀº Áõ¸í ÀýÂ÷ÀÇ ¾ÈÀü¼º°ú ¿ÏÀü¼ºÀ» ÀǹÌÇÑ´Ù[15].

"¸ñÇ¥ Ŭ·ÎÁî G°¡ ³í¸® ÇÁ·Î±×·¥ PÀÇ ³í¸®Àû °á·Ð(logical consequence)À̸é SLD Áõ¸í ÀýÂ÷´Â ³í¸® ÇÁ·Î±×·¥ P¿Í ¸ñÇ¥ Ŭ ·ÎÁî G¿¡ ´ëÇÏ¿© yes ´ë´äÀ» ÇÏ°í ±× ¿ªµµ ¼º¸³ÇÑ´Ù."

Á¦ÇÑ ³í¸® ¾ð¾î´Â ³í¸® ¾ð¾îÀÇ Å¬·ÎÁ ±¸¼ºÇÏ´Â ¾ÆÅè¿¡ Á¦ÇÑÀÇ Ç¥ÇöÀÌ °¡´ÉÇÑ ¾ð¾îÀÌ´Ù. Á¦ÇÑÀº µÎ °¡Áö ±¸¼º ¿ä¼ÒÀÎ µµ¸Þ ÀÎ D¿Í ¿ø¸®(theory) ¥ó¿¡ ÀÇÇÏ¿© Á¤ÀǵȴÙ. ¿©±â¼­ µµ¸ÞÀÎ D´Â Á¦ÇÑÀ» ±¸¼ºÇÏ´Â ±âº» ¿ä¼Ò¿¡ ´ëÇÑ ±â¼úÀ̰í, ¿ø¸® ¥ó´Â Á¦ÇÑÀ» Ç¥ÇöÇÏ´Â µÎ ÅÒ(term)ÀÇ µ¿Àϼº(equality) ȤÀº ºñµ¿Àϼº(disequality) °ü°è¿¡ ´ëÇÑ °ø¸®(axiom)ÀÇ ÁýÇÕÀÌ´Ù. ¿¹¸¦ µé¾î ½Ç¼ö µµ ¸ÞÀο¡¼­ ¿¬»êÀÚ '+'¿¡ ´ëÇÑ °ü°è(relation) '='À» Á¤ÀÇÇÏ´Â ¿ø¸®¸¦ »ý°¢ÇÒ ¼ö ÀÖ´Ù.
Á¦ÇÑ ³í¸® ¾ð¾î¿¡¼­ ¿ì¸®°¡ ƯÈ÷ °ü½ÉÀ» °¡Áö´Â Á¦ÇÑÀº ÇØ´ä ±¸¼º¼º(solution-compactness) Á¶°Ç°ú ¸¸Á· ¿ÏÀü¼º(satisfaction -completeness) Á¶°ÇÀ» ¸¸Á·ÇÏ´Â µµ¸ÞÀÎ ¹× ¿ø¸®ÀÌ´Ù. Á¦ÇÑ ³í¸® ¾ð¾î°¡ ÀÌ µÎ Á¶°ÇÀ» ¸¸Á·Çϸé, ³í¸® ¾ð¾î¿¡¼­¿Í °°ÀÌ, ¾ÈÀüÇÏ °í ¿ÏÀüÇÑ Áõ¸í ÀýÂ÷°¡ Á¸ÀçÇϱ⠶§¹®ÀÌ´Ù[10]. ¾î¶² µµ¸ÞÀÎÀÌ ÇØ´ä ±¸¼º °¡´ÉÇÏ´Ù´Â ¸»Àº ±× µµ¸ÞÀÎÀÇ ¸ðµç ¿ä¼Ò°¡ À¯ÇÑ È¤Àº ¹«ÇÑ ÁýÇÕÀÇ Á¦ÇÑÀ¸·Î Ç¥Çö °¡´ÉÇÏ´Ù´Â ÀǹÌÀ̰í, ¾î¶² ¿ø¸®°¡ ¸¸Á· ¿ÏÀüÇÏ´Ù´Â Àǹ̴ ¸ðµç Á¦ÇÑÀÇ ÁøÀ§°¡ Áõ¸í °¡´ÉÇÏ´Ù´Â ÀÇ ¹ÌÀÌ´Ù.
¿¹¸¦ µé¾î ½Ç¼öÀÇ ÁýÇÕ¿¡¼­ ¿¬»êÀÚ '+'¿¡ ´ëÇÑ °ü°è '='À» Á¤ÀÇÇÏ´Â ¿ø¸®´Â ÇØ´ä ±¸¼º¼º Á¶°ÇÀ» ¸¸Á·ÇÏÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é ½Ç¼öÀÇ ±¸¼º ¿ä¼ÒÀÎ ¥ð¸¦ Á¦ÇÑÀÇ ÁýÇÕÀ¸·Î Ç¥ÇöÇϱ⠺Ұ¡´ÉÇϱ⠶§¹®ÀÌ´Ù. ±×·¯³ª ½Ç¼öÀÇ ÁýÇÕ¿¡¼­ ¿¬»êÀÚ '+' ¹× '*'¿¡ ´ëÇÑ °ü °è '=', '¡Â', '<', '¡Ã', '>'¸¦ Á¤ÀÇÇÏ´Â ¿ø¸®´Â ÇØ´ä ±¸¼º °¡´ÉÇÏ´Ù. ¿Ö³ÄÇÏ¸é ¸ðµç ½Ç¼ö¸¦ Á¦ÇÑÀÇ ÁýÇÕÀ¸·Î Ç¥Çö °¡´É Çϱ⠶§¹®ÀÌ´Ù. ¥ðÀÇ °æ¿ì ¾Æ·¡¿Í °°ÀÌ ¹«ÇÑÀÇ Á¦ÇÑ ÁýÇÕÀ¸·Î Ç¥Çö °¡´ÉÇÏ´Ù.
3 < ¥ð < 4
3.1 < ¥ð < 3.2
3.14 < ¥ð < 3.15
...
¶ÇÇÑ Á¤¼öÀÇ ÁýÇÕ¿¡¼­ ¿¬»êÀÚ '+' ¹× '*'¿¡ ´ëÇÑ °ü°è '='¸¦ Á¤ÀÇÇÑ ¿ø¸®´Â ¸¸Á· ¿ÏÀüÇÏÁö ¸øÇÏ´Ù. ¿¹¸¦ µé¾î Á¦ÇÑ "X n + Yn = Zn"¸¦ ¸¸Á·ÇÏ´Â Á¤¼ö X, Y, Z°¡ Á¸ÀçÇÏ´Â Áö ¾Ë·ÁÁ® ÀÖÁö ¾Ê±â ¶§¹®ÀÌ´Ù. ±×·¯ ³ª ½Ç¼ö ÁýÇÕ¿¡¼­ ¿¬»êÀÚ '+' ¹× '*'¿¡ ´ëÇÑ °ü°è '=', '¡Á', '<', '¡Â', '>', '¡Ã'¸¦ Á¤ÀÇÇÏ´Â ¿ø¸®´Â ¸¸Á· ¿ÏÀüÇÏ´Ù. Ta rski´Â ½Ç¼ö ÁýÇÕ¿¡¼­ ´ÙÇ×(polynomial) µî½Ä ¹× ´ÙÇ× ºÎµî½ÄÀÇ ¸¸Á·¼ºÀ» °áÁ¤ÇÏ´Â ¾Ë°í¸®ÁòÀÌ Á¸ÀçÇÑ´Ù´Â °ÍÀ» Áõ¸íÇÏ¿´´Ù.
Á¦ÇÑ ³í¸® ¾ð¾î´Â ¿ÏÀüÇÏÁö ¾ÊÀ» ¼öµµ ÀÖÁö¸¸ »ç¿ëµÇ´Â µµ¸ÞÀο¡ µû¶ó ¿©·¯ °¡Áö·Î ±¸ºÐµÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î CLP(À¯¸®¼ö), CLP(ºÒ¸®¾ð, ½Ç¼ö), ¹× CLP(½Ç¼ö) µîÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. Á¦ÇÑÀÌ ¾ø´Â Prolog ¾ð¾î[3]µµ CLP(Æ®¸®)¶ó´Â ÀÏÁ¾ÀÇ Á¦ÇÑ ³í¸® ¾ð¾î¶ó°í ¸»ÇÒ ¼ö ÀÖ´Ù. ¿©±â¼­ Æ®¸®´Â ÅÒÀ» ÀǹÌÇÑ´Ù.

2.2 ÇÁ·Î±×·¥ÀÇ ¼öÇà

Á¦ÇÑ ³í¸® ÇÁ·Î±×·¥Àº ³í¸® ÇÁ·Î±×·¥°ú ºñ½ÁÇÏ°Ô "p0 :- p1, ..., pn, C" ¸ð¾ç ÀÇ Å¬·ÎÁîÀÇ ÁýÇÕÀ¸·Î Á¤ÀǵȴÙ. ¿©±â¼­ C´Â ÁÖ¾îÁø µµ¸ÞÀο¡¼­ Ç¥ÇöµÈ Á¦ÇÑÀÇ ÁýÇÕÀÌ´Ù. Á¦ÇÑ ³í¸® ÇÁ·Î±×·¥ÀÇ ¼öÇàÀº Ãß»ó ±â °èÀÇ »óÅ º¯È­·Î Ç¥Çö °¡´ÉÇÏ´Ù[4]. ÇÁ·Î±×·¥ ¼öÇàÀÇ »óÅ´ ¥ò = (V, G, C)·Î Ç¥ÇöµÇ´Â µ¥, ¿©±â¼­ V´Â ÁúÀÇ¿¡ Á¸ÀçÇÏ´Â º¯¼ö ÀÇ ÁýÇÕÀ̰í, G´Â ¸ñÇ¥(goal) Ŭ·ÎÁî, C´Â Á¦ÇÑÀÇ ÁýÇÕÀÌ´Ù. ÀÌ Ãß»ó ±â°èÀÇ ÃÖÃÊÀÇ »óÅ´ ¥ò0 = (V, G0 , C0)·Î Ç¥ÇöµÇ´Âµ¥, ¿©±â¼­ G0 ¹× C0´Â °¢°¢ ¸ñÇ¥ Ŭ·ÎÁî¿¡ ÀÖ´Â ¾ÆÅè°ú Á¦ÇÑÀÇ ÁýÇÕÀÌ´Ù. Ãß»ó ±â°è´Â ÇÁ·Î±×·¥ P°¡ ÀÖÀ» ¶§, ´ÙÀ½ Á¶°ÇÀ» ¸¸Á·ÇÏ¸é »óÅ ¥òi¿¡¼­ »óÅ ¥òi+1·Î »óÅ º¯È­(state t ransition)°¡ °¡´ÉÇÏ´Ù.
(1) p0 :- p1, ..., pn, C P
(2) ¥òi = (V, g0...gm, Ci)
(3) ¥òi+1 = (V, p1...png1...gm, Ci¡úC¡ú(g0 =p0))
(4) Ci¡úC¡ú(g0=p0)°¡ ¸¸Á· °¡´ÉÇÏ´Ù.
ÀÌ »óÅ º¯È­¿¡´Â Á¶°Ç (1)ÀÇ Àû¿ë °úÁ¤¿¡¼­ ºñ°áÁ¤¼º(nondeterminism)ÀÌ Á¸ÀçÇϹǷΠ½ºÅÃÀ» »ç¿ëÇÑ ¹éÆ®·¢(backtrack)ÀÇ ±¸Çö ÀÌ ÇÊ¿äÇϸç, Á¶°Ç (4)¸¦ °è»êÇϱâ À§ÇÑ Á¦ÇÑ Ç®ÀÌ °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. Ãß»ó ±â°è´Â ¾Õ¿¡¼­ Á¤ÀÇµÈ »óÅ º¯È­¸¦ °ÅÃļ­ ÃÖÁ¾ »óÅ ¥òf = (V, , Cf)¿¡ µµ´ÞÇÏ¸é ¼öÇàÀ» ¸ØÃ߸ç, ÁÖ¾îÁø ¸ñÇ¥ Ŭ·ÎÁî¿¡ ´ëÇÑ ´äÀ¸·Î Á¦ÇÑ ÁýÇÕ Cf °¡ °£·«È­ µÇ¾î º¯¼ö ÁýÇÕ VÀÇ ¹üÀ§¿¡¼­ Ãâ·ÂµÈ´Ù.

2.3 Á¦ÇÑ Ç®ÀÌ[7]

½Ç¼ö µµ¸ÞÀο¡¼­ Á¦ÇÑ Ç®ÀÌ´Â ¿¬»êÀÚ·Î '-', '+', '*', '/'¸¦ »ç¿ëÇÏ¿© ÅÒÀ» ±¸¼ºÇϰí, ÅÒµé »çÀÌÀÇ °ü°è´Â '=', '¡Á', '< ', '¡Â', '>', '¡Ã'¸¦ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î "I+J+K¡Â10, I>0, J>0, K>0"Àº Á¦ÇÑÀÌ´Ù. ½Ç¼ö µµ¸ÞÀο¡¼­ÀÇ Á¦ÇÑÀº Å©°Ô ¼±Çü(linear)°ú ºñ¼±Çü(nonlinear)À¸·Î ³ª´©¾îÁø´Ù. ¼±Çü Á¦ÇÑÀÎ °æ¿ì ¿¬»êÀÚ '*'ÀÇ Àμö·Î ÃÖ´ë ÇϳªÀÇ º¯¼ö°¡ »ç ¿ë °¡´ÉÇϰí, ¿¬»êÀÚ '/'ÀÇ ºÐ¸ð Àμö´Â ¼ýÀÚÀ̾î¾ß ÇÑ´Ù. ¼±Çü Á¦ÇÑÀÇ Á¦ÇÑ Ç®ÀÌ´Â °¡¿ì½º Á¦°Å(Gaussian elimination) ¾Ë°í¸® Áò ȤÀº È®ÀåµÈ ½ÉÇ÷¢½º(Simplex) ¾Ë°í¸®ÁòÀ» »ç¿ëÇϸç, ºñ¼±Çü Á¦ÇÑÀÇ °æ¿ì Gröbner base ¾Ë°í¸®ÁòÀÌ »ç¿ëµÈ´Ù. ºñ¼±ÇüÀÎ °æ¿ì Ç®ÀÌÀÇ º¹Àâµµ°¡ ¸Å¿ì Å©±â ¶§¹®¿¡ Á¦ÇÑ ³í¸® ¾ð¾î CLP(R)¿¡¼­´Â ºñ¼±Çü Á¦ÇÑÀÌ Ç®ÀÌ °úÁ¤¿¡¼­ ¼±ÇüÀÌ µÉ ¶§±îÁö ½ÇÁ¦ Ç®À̸¦ Áö¿¬½ÃŰ´Â ¹æ¹ýÀ» »ç¿ëÇϱ⵵ ÇÑ´Ù. ¿¹¸¦ µé¾î CLP(R)¿¡¼­´Â ´ÙÀ½°ú °°Àº ºñ ¼±Çü ÇÁ·Î±×·¥ÀÌ ÀÖÀ» ¶§:

zmult(R1,I1,R2,I2,R3,I3) :-
R3 = R1*R2-I1*I2,
I3 = R1*I2+R2*I1.

ÁúÀÇ·Î "zmult(1, 2, 3, 4, R3, I3)"¸¦ ÁÖ¸é ¼öÇà ½Ã°£ ½Ã ºñ¼±ÇüÀÌ ¼±ÇüÀ¸·Î º¯ÇÏ¿© "R3=-5, I3=10"À̶ó ´Â ´äÀÌ ³ª¿Â´Ù.
ºÒ¸®¾ð µµ¸ÞÀο¡¼­ÀÇ Á¦ÇÑÀº ¿¬»êÀÚ ' ', ' ', ' ' µîÀ» »ç¿ëÇÏ¿© ÅÒÀ» Ç¥ÇöÇϰí, ÅÒµé »çÀÌÀÇ °ü°è´Â '=' ¸¸À» »ç¿ëÇÑ´Ù. ºÒ ¸®¾ð µµ¸ÞÀο¡¼­ÀÇ Á¦ÇÑ Ç®ÀÌ·Î ÀÌ¿ëµÇ´Â ¹æ¹ýÀº ºÒ¸®¾ð ÀÏġȭ(Boolean unification) ¾Ë°í¸®Áò, º¯ÇüµÈ Gröbner base ¾Ë°í ¸®Áò µîÀÌ »ç¿ëµÈ´Ù. ±âº»ÀûÀ¸·Î ºÒ¸®¾ð µµ¸ÞÀο¡¼­ÀÇ Ç®ÀÌ´Â NP-completeÀ̹ǷΠÀ̸¦ »ç¿ëÇÒ ¶§´Â ÁÖÀǰ¡ ÇÊ¿äÇÏ´Ù. ´ÙÀ½Àº Àü °¡»ê±â(full adder)¸¦ Ç¥ÇöÇÑ ºÒ¸®¾ð µµ¸ÞÀÎ ÇÁ·Î±×·¥ÀÇ º¸±âÀÌ´Ù. ¿©±â¼­ ¿¬»êÀÚ ' '´Â xor¸¦ ÀǹÌÇÑ´Ù.

full_adder(I1,I2,I3,O1,O2) :-
X1 = I1 I2, A1 = I1 I2,
O1 = X1 I3, A2 = I3 X1,
O2 = A1 A2.

3. Á¦ÇÑ ³í¸® ÇÁ·Î±×·¡¹Ö ¾ð¾î

Á¦ÇÑ ³í¸® ¾ð¾î°¡ µîÀåÇϱâ Àü¿¡ ÀÌ¹Ì Á¦ÇÑÀ» ÀÌ¿ëÇÑ ½Ã½ºÅÛÀÌ µîÀåÇÏ¿´´Âµ¥ ¿¹¸¦ µé¸é ´ëÈ­½Ä ±×·¡ÇÈ ½Ã½ºÅÛ THINGLAB[2], ȸ·Î ÇØ¼®À» À§ÇÑ CONSTRAINTS[19], ´ë¼ö ¹®Á¦ ÇØ°áÀ» À§ÇÑ MACSYMA[17] µîÀ» µé ¼ö ÀÖ´Ù. ±×·¯³ª À̵éÀº Á¦ÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î º¸´Ù´Â Á¦ÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¿ä¼Ò¸¦ °¡Áö´Â ½Ã½ºÅÛÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. À̿ʹ º°µµ·Î Á¦ÇÑ ¸¸Á· ¹®Á¦(constraint satisfactio n problem)¸¦ ÇØ°áÇϱâ À§ÇÑ È°¹ßÇÑ ¿¬±¸°¡ Àΰø Áö´É, OR(Operations Research) µîÀÇ ºÐ¾ß¿¡¼­ ÁøÇàµÇ¾î ¿Ô´Ù [20].

Á¦ÇÑ ³í¸® ÇÁ·Î±×·¡¹Ö[12]!¤Å¤ÅÀº ±× ÀÌÀü¿¡ ³íÀǵǾú´ø Á¦ÇÑ Ç®ÀÌ(constraint solving) ¸ÞÄ¿´ÏÁòÀ» Æ÷ÇÔÇϵµ·Ï Prolog °°Àº ³í¸® ¾ð¾î¸¦ È®ÀåÇϸ鼭 ½ÃÀ۵Ǿú´Ù. ³í¸® ¾ð¾î¿¡ º¸´Ù dzºÎÇÑ ÀÚ·á ±¸Á¶¸¦ µµÀÔÇϰí ÀÇ¹Ì °´Ã¼(¿¹¸¦ µé¸é ¼ö½Ä)°¡ Á÷Á¢ÀûÀ¸·Î Ç¥ÇöµÇ°í Á¶ÀÛµÉ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù. ±× ±âº» ¾ÆÀ̵ð¾î´Â ³í¸® ¾ð¾îÀÇ ÇÙ½ÉÀÎ ÀÏġȭ(unification)¸¦ Á¦ÇÑÀ¸·Î È®ÀåÇϰí ÀÏġȭ ¾Ë°í¸®ÁòÀº µµ¸ÞÀÎ »ó¿¡¼­ Á¦ÇÑÀÇ ÇØ¸¦ ±¸ÇÏ´Â Á¦ÇÑ Ç®À̱â(constraint solver)·Î ´ëÄ¡Çϸç Á¦ÇÑ Á¶ÀÛ°ú ÀüÆÄ µî¿¡ °üÇÑ ¿¬±¸ÀÇ ¿µÇâÀ» ¹Þ¾Æ¼­ Á¦ÇÑÀ» Àû±ØÀûÀ¸·Î »ç¿ëÇÏ¿© "Á¦ÇÑ ÈÄ »ý¼º (constraint and generate)"Çϵµ·Ï ÇÔÀ¸·Î½á Ž»ö Æ®¸®¸¦ ÁÙÀÌÀÚ´Â °ÍÀÌ´Ù. ƯÁ¤ Á¦ÇÑ ³í¸® ¾ð¾î¸¦ ¼³°èÇϱâ À§Çؼ­´Â °è»ê µµ¸ÞÀΰú Á¦ÇÑ Ç®À̱⸦ ¼±ÅÃÇØ¾ß ÇÑ´Ù. ÀÌ °úÁ¤¿¡¼­ °è»ê µµ ¸ÞÀÎÀÇ Ç¥Çö·Â, È¿À²ÀûÀÎ Á¦ÇÑ Ç®ÀÌ ¾Ë°í¸®ÁòÀÇ Á¸Àç ¿©ºÎ, °¡´ÉÇÑ ÀÀ¿ë¿¡ ´ëÇÑ °ü½Éµµ µî°ú °°Àº ±âÁØÀ» °í·ÁÇØ¾ß ÇÑ´Ù. À̵é Áß Æ¯È÷ Á¦ÇÑ ¾ð¾îÀÇ ±¸ÇöÀ» À§Çؼ­ °¡Àå Áß¿äÇÑ Á¡ÀÌ ÁÖ¾îÁø °è»ê µµ¸ÞÀο¡¼­ Á¦ÇÑ ½Ã½ºÅÛÀÌ ¸¸Á·µÇ´ÂÁö °Ë»çÇÏ´Â Á¦ÇÑ Ç®ÀÌ ¾Ë °í¸®ÁòÀÇ ¼±ÅÃÀÌ´Ù. º» Àý¿¡¼­´Â Áö±Ý±îÁö ¼Ò°³µÈ ´ëÇ¥ÀûÀÎ Á¦ÇÑ ³í¸® ¾ð¾îÀÎ CHIP, CLP(R), Prolog III¿¡ ´ëÇÏ¿© »ìÆìº» ´Ù.

3.1 CHIP

CHIP(Constraint Handling in Prolog)[6]Àº µ¶ÀÏÀÇ ECRC¿¡¼­ °³¹ßµÈ Á¦ÇÑ ³í¸® ¾ð¾î·Î °¡Àå Áß¿äÇÑ Æ¯Â¡Àº Á¤¼öÀÇ Æ¯Á¤ ±¸°£¿¡ ÇØ´çÇÏ´Â À¯ÇÑ µµ¸ÞÀÎ »ó¿¡¼­ÀÇ »ê¼ú Á¦ÇÑÀÇ µµÀÔ°ú dzºÎÇÑ ±âÈ£ Á¦ÇÑÀÇ Á¦°øÀÌ´Ù. ¶ÇÇÑ ½Éº¼ °ªÀ» Æ÷ÇÔÇÏ´Â È®ÀåµÈ ºÒ¸®¾ð µµ ¸ÞÀο¡ ´ëÇÑ Á¦ÇÑ, À¯¸®¼ö¿¡ ´ëÇÑ ¼±Çü Á¦ÇÑ µîÀ» Á¦°øÇÑ´Ù. CHIPÀº »ç¿ëÀÚ·Î ÇÏ¿©±Ý ÀÚ½ÅÀÇ Á¦ÇÑÀ» Á¤ÀÇÇÏ°í ±× ¼öÇàÀ» Á¦¾îÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. CHIP¿¡¼­ Á¦°øµÇ´Â µµ¸ÞÀÎ ¹× µµ¸ÞÀÎ »ó¿¡¼­ °¡´ÉÇÑ ¿¬»ê ¹× °ü°è¸¦ Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.
µµ¸ÞÀÎ
¿¬»ê ¹× °ü°è
À¯ÇÑ Æ®¸®
\{= \}


À¯ÇÑ Á¤¼ö
\{ +,-,*, =, !=, <, leq, >, geq \}


¹× ½Éº¼ Á¦ÇÑ
ºÒ¸®¾ð
\{ LNOT , WEDGE , VEE , "xor", nand, nor, = \}


À¯¸®¼ö
\{ +,-,*, =, !=, <, leq, >, geq \}





À¯ÇÑ µµ¸ÞÀο¡ ´ëÇÑ »ê¼ú Á¦ÇÑÀº Àϰü¼º ±â¹ýÀ» ÀÌ¿ëÇϰí, ºÒ¸®¾ð µµ¸ÞÀο¡ ´ëÇÑ Á¦ÇÑÀº ºÒ¸®¾ð ÀÏġȭ ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇϸç, ¼±Çü À¯¸®¼ö¿¡ ´ëÇÑ Á¦ÇÑÀº È®ÀåµÈ ½ÉÇ÷¢½º ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇÏ¿© ÇØ¸¦ ±¸ÇÑ´Ù.
CHIPÀ» ±â¹ÝÀ¸·Î ÇÑ »ó¿ë ½Ã½ºÅÛÀÌ °³¹ßµÇ¾ú´Âµ¥ ¿¹¸¦ µé¸é Bull »ç´Â CHARME ½Ã½ºÅÛ¿¡ À¯ÇÑ µµ¸ÞÀÎ ±â¼úÀ» µµÀÔÇÏ¿´À¸¸ç, ICL »ç´Â CHIP/SEPIA ÄÄÆÄÀÏ·¯¸¦ ±âÃÊ·Î ÇÏ¿© DECISION POWER¸¦ °³¹ßÇßÀ¸¸ç, Siemens »ç´Â SNI-PrologÀÇ »õ·Î¿î ¹öÀüÀ» °³¹ßÇÏ¿´À¸ ¸ç ÇÁ¶û½º COSYTEC »ç¿¡¼­´Â CHIP ÇØ¼®±â¸¦ »óǰȭÇÏ¿´´Ù.

3.2 CLP(R)

Á¦ÇÑ ³í¸® ¾ð¾î CLP(R)[10,11]Àº È£ÁÖÀÇ Monash ´ëÇÐ, ¹Ì±¹ÀÇ IBM Watson ¿¬±¸¼Ò, Carnegie Mellon ´ëÇÐ µî¿¡¼­ °³¹ßÇÏ ¿´´Ù. ±âÈ£ RÀº ½Ç¼ö¿Í ÇØ¼®µÇÁö ¾Ê´Â ÇÔ¼ö À̸§À¸·Î ±¸¼ºµÈ ´ë¼ö ±¸Á¶(algebraic structure)¸¦ ³ªÅ¸³½´Ù. ÀÌ ¾ð¾î´Â ½Ç ¼ö¿¡¼­ÀÇ ¼±Çü Á¦ÇÑÀ» Çã¿ëÇϰí, ºñ¼±Çü Á¦ÇÑÀº Áö¿¬ °è»êÀ» ÅëÇØ¼­ ÇØ°áÇÑ´Ù. À¯ÇÑ Æ®¸®¿¡ ´ëÇØ¼­´Â t_1 = t_2

ÇüÅÂÀÇ Á¦ÇѸ¸ÀÌ °¡´ÉÇÏ´Ù. CLP(R)¿¡¼­ Çã¿ëÇÏ´Â ±ÔÄ¢(rule)Àº A_0 :- alpha_1, alpha_2 , ..., alpha_k

ÇüÅÂÀÌ°í ¿©±â¼­ alpha_i

´Â ±âÃÊ Á¦ÇÑÀ̰ųª ¾ÆÅèÀÌ´Ù. ÀÌ ¾ð¾î¿¡¼­ Á¦°øµÇ´Â °è»ê µµ¸ÞÀΰú °¡´ÉÇÑ ¿¬»ê ¹× °ü°è´Â ´ÙÀ½°ú °°´Ù.
µµ¸ÞÀÎ
¿¬»ê ¹× °ü°è
À¯ÇÑ Æ®¸®
\{= \}


½Ç¼ö
\{ +,-,*, =, !=, <, leq, >, geq \}





CLP(R)ÀÇ Á¦ÇÑ Ç®À̱â´Â È®ÀåµÈ ½ÉÇ÷º½º ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ¸ç ºñ¼±Çü Á¦ÇÑÀÌ Çã¿ëµÇ³ª Á¦ÇÑ Ç®ÀÌ °úÁ¤¿¡¼­ ºñ¼±Çü Á¦ÇÑ Àº ¼±Çü Á¦ÇÑÀÌ µÉ ¶§±îÁö Áö¿¬µÇ¸ç ³¡±îÁö ¼±Çü Á¦ÇÑÀÌ µÇÁö ¾Ê´Â °æ¿ì¿¡ ÇØ´äÀº "maybe"À̰í ÇØ´ç ºñ¼±Çü Á¦ÇÑÀ» ÇÔ ²² Ãâ·ÂÇÑ´Ù.

3.3 Prolog III

Prolog III[5]´Â Prolog°¡ °³¹ßµÈ ÇÁ¶û½ºÀÇ Marseille ´ëÇп¡¼­ °³¹ßµÇ¾ú´Ù. ÀÌ ¾ð¾î´Â Prolog¿¡ ºÒ¸®¾ð µµ¸ÞÀο¡ ´ëÇÑ Á¦ÇÑ, À¯¸®¼ö¿¡¼­ÀÇ ¼±Çü Á¦ÇÑ, ½ºÆ®¸µ µµ¸ÞÀο¡¼­ÀÇ Á¦ÇÑ µîÀ» µµÀÔÇÏ¿© È®ÀåÇÏ¿´´Ù. È®ÀåµÈ µµ¸ÞÀΰú °¡´ÉÇÑ ¿¬»ê ¹× °ü°è´Â ´ÙÀ½ Ç¥ ¿Í °°´Ù.
µµ¸ÞÀÎ
¿¬»ê ¹× °ü°è
¹«ÇÑ Æ®¸®
\{=, != \}


À¯¸®¼ö
\{ +,-,*, =, !=, <, leq, >, geq \}


ºÒ¸®¾ð
\{ LNOT , WEDGE , VEE , SUPERSET, =, != \}


¸®½ºÆ®
\{ CDOT,¸®½ºÆ®¿Í~Æ®¸®~°£ÀÇ~º¯È¯,=,!= \}





Prolog III´Â ¼±Çü À¯¸®¼ö¿¡ ´ëÇÑ Á¦ÇÑÀº È®ÀåµÈ ½ÉÇ÷¢½º ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇϰí, ºÒ¸®¾ð Á¦ÇÑÀº Æ÷È­(saturation) ¹æ¹ýÀ» ÀÌ¿ë Çϸç, ¸®½ºÆ®¿¡ ´ëÇÑ Á¦ÇÑÀº Á¦¾àµÈ ½ºÆ®¸µ ÀÏġȭ ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇÏ¿© ÇØ¸¦ ±¸ÇÑ´Ù.

4. ÀÀ¿ë ºÐ¾ß ¼Ò°³

Á¦ÇÑ ³í¸® ÇÁ·Î±×·¡¹ÖÀº ¸Å¿ì ¼±¾ðÀûÀ̰í[1], ½Éº¼ °è»ê ´É·Â»Ó¸¸ ¾Æ´Ï¶ó ¼öÄ¡ °è»ê ´É·ÂÀÌ ¶Ù¾î³ª°í, ³í¸®Àû º¯¼ö(logical va riable)ÀÇ »ç¿ë¿¡ µû¸¥ Ç¥Çö·Â ¶§¹®¿¡ ±× ÀÀ¿ë ºÐ¾ß°¡ ¸Å¿ì ±¤¹üÀ§ÇÏ´Ù. ÁÖµÈ ÀÀ¿ë ºÐ¾ß´Â ½Éº¼ °è»ê ºÐ¾ß, ¼öÄ¡ ÇØ¼® ¹× OR ºÐ ¾ß, ¼ø¿­ Á¶ÇÕ ¿¬±¸(combinatorics) ºÐ¾ß, Àΰø Áö´É ºÐ¾ß, °øÇÐ ÀÀ¿ë ºÐ¾ß µîÀÌ´Ù. º» Àý¿¡¼­´Â ¿É¼Ç °Å·¡ ½Ã½ºÅÛ ¹× Àü¹®°¡ ½Ã ½ºÅÛ¿¡¼­ÀÇ ÀÀ¿ë º¸±â¿¡ ´ëÇÏ¿© °£´ÜÇÏ°Ô ¼³¸íÇÑ´Ù.

4.1 ¿É¼Ç °Å·¡ ½Ã½ºÅÛ[14]

¿É¼Ç(option)À̶õ ÁÖ¾îÁø ÀÚ»êÀÇ °¡Ä¡¿¡ µû¶ó ±× °¡Ä¡°¡ º¯ÇÏ´Â Áõ¼­ÀÌ´Ù. °¡Àå ÀϹÝÀûÀÎ Á¾·ùÀÇ ¿É¼ÇÀº ÁÖ½Ä Àڻ꿡 ´ëÇÑ ¿É ¼ÇÀÌ´Ù. ÄÝ(call) ¿É¼ÇÀÇ ¼ÒÀ¯ÁÖ´Â ÁÖ¾îÁø ÁÖ½ÄÀ», ÁÖ¾îÁø ³¯Â¥ ÀÌÀü¿¡, ÁÖ¾îÁø ÁÖ°¡¿¡ »ì ¼ö ÀÖ´Â ±Ç¸®¸¦ °¡Áö¸ç, Dz(put) ¿É¼Ç ÀÇ ¼ÒÀ¯ÁÖ´Â ¹Ý´ë·Î ÆÈ ¼ö ÀÖ´Â ±Ç¸®¸¦ °¡Áø´Ù. ¿É¼ÇÀº ±× ÀÚü°¡ °¡Ä¡¸¦ °¡Áö±â ¶§¹®¿¡ ¸Å¸Å°¡ °¡´ÉÇÏ´Ù. ¿É¼Ç °Å·¡¿¡´Â ´Ù¾çÇÑ Àü·«ÀÌ ¿ä±¸µÇ°í, º¹ÀâÇÑ ¼öÄ¡ °è»êÀÌ ÇÊ¿äÇϱ⠶§¹®¿¡ Á¦ÇÑ ³í¸® ¾ð¾îÀÇ Èï¹Ì·Î¿î ÀÀ¿ë ºÐ¾ßÀÌ´Ù. ¹Ì±¹ÀÇ IBM Watson ¿¬±¸¼Ò¿Í È£ÁÖÀÇ Monash ´ëÇп¡¼­´Â CLP(R)[9]À» ÀÌ¿ëÇÏ¿© À̸¦ ±¸ÇöÇÏ¿´´Ù.
¿¹¸¦ µé¾î ¿É¼Ç °Å·¡ÀÇ ÀÌÀÍÀ» °è»êÇÏ´Â Á¦ÇÑ ³í¸® ÇÁ·Î±×·¥Àº ¾Æ·¡¿Í °°´Ù. ÀÌ ÇÁ·Î±×·¥¿¡¼­ º¯¼ö T, S, C, P, I, R, K´Â °¢ °¢ ¿É¼ÇÀÇ Á¾·ù, ÇöÀç ÁÖ°¡, ÄÝ ¿É¼ÇÀÇ °¡°Ý, Dz ¿É¼ÇÀÇ °¡°Ý, ÀÌÀÚÀ², ¿É¼Ç¿¡ ÁöÁ¤µÈ ÁÖ°¡¸¦ ÀǹÌÇÑ´Ù.

payoff(T,Buy_Sell,S,C,P,I,K,Value) :-
get_sign(Buy_Sell,Sign),
data(T,S,C,P,I,K,B1,B2,H1,H2,R1,R2),
h(B1,S,T1), h(B2,S,T2),
r(B1,S,T3), r(B2,S,T4),
Value=Sign*(H1*T1+H2*T2+R1*T3+R2*T4).

get_sign(buy,-1).
get_sign(sell,1).

h(X,Y,Z) :- Y < X, Z = 0.
h(X,Y,Z) :- Y >= X, Z = 1.
r(X,Y,Z) :- Y < Z, Z = 0.
r(X,Y,Z) :- Y >= X, Z = Y-1.

data(call,S,C,P,I,K,0,K,C*(1+I),0,0,-1).
data(put,S,C,P,I,K,0,K,P*(1+I),0,1,-1).

À§ ÇÁ·Î±×·¥¿¡ ´ÙÀ½ ÁúÀÇ´Â ÄÝ ¿É¼ÇÀÇ °¡°ÝÀÌ 5, ÄÝ ¿É¼ÇÀÇ ÁöÁ¤ ÁÖ°¡°¡ 50, ÀÌÀÚÀ²ÀÌ 0.05, Çö ÁÖ°¡°¡ 60ÀÏ ¶§, ÄÝ ¿É¼ÇÀ» »ç ¿ëÇÏ¿© ¼ö½ÄÀ» ¸ÅÀÔÇÏ¸é ¾ó¸¶ÀÇ À̵æÀÌ ÀÖ´Â °¡¸¦ ¾Ë¾Æº¸´Â ÁúÀÇÀÌ´Ù. ÀÌ ÁúÀÇ¿¡ ´ëÇÑ ´ë´äÀº "Value = -4.75"ÀÌ´Ù.

?- C = 5, K = 50, I = 0.05, S = 60,
payoff(call,sell,S,C,_,I,K,Value).

Á»´õ º¹ÀâÇÑ Áú¹®À¸·Î °¡°Ý 4ÀÇÄÝ ¿É¼Ç°ú °¡°Ý 3ÀÇ Ç² ¿É¼ÇÀ» »ç´Â °æ¿ì ÀÌÀÍÀÌ 3º¸´Ù Å©±â À§ÇÑ ÁÖ°¡¸¦ ¾Ë¾Æº¸´Â ÁúÀÇ´Â ´ÙÀ½ °ú °°´Ù. ÀÌ ÁúÀÇÀÇ ´äÀº "Value = 42.65-S, 0 < S <= 39.65" ȤÀº "Value = S-57.35, S >= 60.35 "ÀÌ´Ù.

?- C = 4, P = 3, I = 0.05, K = 50,
Value = V1+V2, Value > 3,
payoff(call,buy,S,C,_,I,K,V1),
payoff(put,buy,S,_,P,I,K,V2),

4.2 Àü¹®°¡ ½Ã½ºÅÛ[13]

Á¦ÇÑ ³í¸® ¾ð¾î´Â ¸ðµ¨ ±â¹Ý(model-based) Áø´Ü Àü¹®°¡ ½Ã½ºÅÛ °³¹ß¿¡ Ź¿ùÇÑ Ç¥Çö·ÂÀ» ¹ßÈÖÇÑ´Ù. µ¶ÀÏÀÇ ´ÙÀÓ·¯ º¥Ã÷ ȸ»ç°¡ Prolog III[5]¸¦ »ç¿ëÇÏ¿© °³¹ßÇÑ ÀÚµ¿Â÷ °íÀå Áø´Ü Àü¹®°¡°¡ ½Ã½ºÅÛÀÌ ±× ¿¹ÀÌ´Ù. ÀÌ ½Ã½ºÅÛÀº ÀÚµ¿Â÷ ¿£ÁøÀ» °èÃþÀûÀ¸·Î ºÐÇØ ÇÑ(decompose) ÈÄ ºÐÇØµÈ °¢ ¿ä¼Ò¿¡ ´ëÇÑ ÀÔÃâ·Â °ü°è¸¦ Á¦ÇÑÀ» »ç¿ëÇÏ¿© Ç¥ÇöÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ ±×¸²°ú °°Àº ÀÔÃâ·Â Ư¼ºÀ» °¡Áø ÀÛÀº ºÎ ½Ã½ºÅÛÀ» °¡Á¤ÇÑ´Ù.




ÀÌ ½Ã½ºÅÛÀº ´ÙÀ½°ú °°Àº ÇÁ·Î±×·¥À¸·Î Ç¥ÇöµÈ´Ù.
system([S1,S2,S3],[Q1,Q2,Q3,Q4,Q5,I]) :-
pipe(S1,Q3,Q2,Q1),
idle_actuator(S2,I,Q3,Q4),
pipe(S3,Q4,Q2,Q5).
pipe(1,Q1,Q2,Q3) :- Q3 = Q1+Q2.
pipe(0,Q1,Q2,Q3) :- Q3 ¡Á Q1+Q2.
idle_actuator(1,I,Q3,Q4) :-
Á¤»óÀÏ Á¶°Ç ³ª¿­.
idle_actuator(0,I,Q3,Q4) :-
°íÀåÀÏ Á¶°Ç ³ª¿­.

À§ ÇÁ·Î±×·¥¿¡¼­ °¢ ¼ú¾îÀÇ Ã¹ Àμö¿¡ »ç¿ëµÇ´Â º¯¼ö S1, S2, S3´Â °¢ ±¸¼º ¿ä¼ÒÀÇ »óÅÂ(1À̸é Á¤»ó, 0ÀÌ¸é °íÀå)¸¦ Ç¥ÇöÇÑ ºÒ ¸®¾ð º¯¼öÀÌ´Ù. ÀÌ ÇÁ·Î±×·¥¿¡ ½ÇÁ¦ ½Ã½ºÅÛ °¢ ¿ä¼ÒÀÇ ÀÔÃâ·Â °ªÀ» ÃøÁ¤ÇÏ¿© ¾òÀº °ªÀ» ÀÔ·ÂÇÏ¸é ¾î´À ºÎºÐÀÌ °íÀåÀÎ Áö¸¦ ¾Ë¾Æ ³¾ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÁúÀÇ "system([S1, S2, S3], [40, 37, 3, 3, 40, 450])"¸¦ ÁÖ¸é ´äÀ¸·Î "S1=1, S2=1, S3= 1"ÀÌ ³ª¿Â´Ù. ¶ÇÇÑ ÁúÀÇ "system([1, 1, 1], [40, Q2, Q3, 18, Q5, 800])"Àº ¸ðµç ±¸¼º ¿ä¼Ò°¡ Á¤»ó µ¿ÀÛÀ» ÇÒ ¶§ Q2, Q3, Q5ÀÇ °ªÀ» ¾Ë¾Æº¸´Â ÁúÀÇÀÌ´Ù.

6. °á·Ð

Á¦ÇÑ ³í¸® ÇÁ·Î±×·¡¹ÖÀº ³í¸® ÇÁ·Î±×·¡¹Ö°ú Á¦ÇÑ Ç®À̰¡ °áÇÕµÈ »õ·Î¿î ÇÁ·Î±×·¡¹ÖÀ¸·Î ±â¹Ý ÀÌ·ÐÀÌ Àß Á¤¸³µÇ¾î ÀÖ°í Ç¥Çö·Â °ú ¼öÇ༺ÀÌ ¿ì¼öÇÏ¿© ±× ¹Ì·¡°¡ ¹àÀº ¾ð¾îÀÌ´Ù. ƯÈ÷ ÀÌ ºÐ¾ßÀÇ ¿¬±¸´Â ÄÄÇ»ÅÍ °úÇÐÀÇ ¿©·¯ ´Ù¸¥ ºÐ¾ßÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾î, ÄÄÆÄ ÀÏ·¯, µ¥ÀÌÅÍ º£À̽º, ¼ÒÇÁÆ®¿þ¾î °øÇÐ, Àΰø Áö´É µîÀÇ ºÐ¾ß¿¡ ¹ÌÄ¡´Â ¿µÇâÀÌ Å©±â ¶§¹®¿¡ ±× Á߿伺ÀÌ ´õ¿í °­Á¶µÇ°í ÀÖ´Ù. ÃÖ ±Ù À¯·´ ¹× ¹Ì±¹ µîÀÇ ¼±Áø±¹¿¡¼­´Â ±× Á߿伺À¸·Î ÀÎÇÏ¿© ÀÌ ºÐ¾ß¿¡ °üÇÑ ¿¬±¸°¡ Ȱ¹ßÇÏ°Ô ÁøÇàµÇ°í ÀÖÀ¸¸ç ÀÌ¹Ì Á¦ÇÑ ³í¸® ½Ã ½ºÅÛÀÌ »óǰȭµÇ¾úÀ¸¸ç À̸¦ ÀÌ¿ëÇÑ ÀÀ¿ë ¼ÒÇÁÆ®¿þ¾î°¡ °³¹ßµÇ°í ÀÖ´Ù. º» ±ÛÀ» ÅëÇÏ¿© ±¹³»¿¡¼­µµ Á¦ÇÑ ³í¸® ÇÁ·Î±×·¡¹Ö¿¡ °üÇÑ °ü½É°ú ¿¬±¸°¡ Ȱ¼ºÈ­µÇ¾î Çб³ ¹× °ü·Ã ¿¬±¸¼Ò°£ÀÇ È°¹ßÇÑ ¿¬±¸°¡ ÁøÇàµÇ±â¸¦ ±â´ëÇÑ´Ù.

Âü°í ¹®Çå
[1] A. L. Ambler, M. M. Burnett, and B. A. Zimmerman, Operational Versus Definitional: A Perspective on Programming Par adigms, 28-43, Computer, September 1992.
[2] A. Borning, The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory, ACM Trans . on Prog. Lang. and Syst. Vol. 3, No. 4, 252-387, 1983.
[3] W. F. Clocksin and C. S. Mellish, Programming in Prolog, Fourth Edition, Springer-Verlag, 1994.
[4] J. Cohen, Constraint Logic Programming Languages, Communications of the ACM, Vol. 33, No. 7, 52-68, 1990.
[5] A. Colmerauer, An Introduction to Prolog III, Communications of the ACM, Vol. 33, No. 7, 69-90, 1990.
[6] M. Dincbas, P. van Hentenryck, H. Simonis, A. Aggoun, T. Graf, and F. Berthier, The Constraint Logic Programming La nguage CHIP, Proceedings of Intternational Conferenc on FGCS, 693-702, 1988.
[7] T. Frühwirth, A. Herold, V. Küchenhoff, T. L. Provost, P. Lim, E. Monfroy, and M. Wallace, Constraint Log ic Programming - An Informal Introduction, Technical Report ECRC-93-5, ECRC, 1993.
[8] H. Gallaire, Logic Programming: Further Developments, Proceedings of IEEE Symposium on Logic Programming, 88 -99, IEEE, 1985.
[9] N. C. Heintze, J. Jaffar, S. Michaylov, P. J. Stuckey, and R. Yap, The CLP(R) Programmer's Manual Version 1. 2, IBM J. Watson Research Center, 1992.
[10] J. Jaffar and J.-L. Lassez, Constraint Logic Programming, Proceedings of 14th ACM Principles of Programming Lan guages, 111-119, Jan. 1987.
[11] J. Jaffar, S. Michaylov, P. Stuckey, and R. Yap, The CLP(R) Language and System, ACM Trans. on Prog. Lang. and Syst. Vol. 14, No. 3, 339-395, 1992.
[12] J. Jaffar and M. J. Maher, Constraint Logic Programming: A Survey, The Journal of Logic Programming, Vol. 1 9/20, 503-581, 1994.
[13] K. Krautter and M. Steinert, A Knowledge Representation for Model-Based Reasoning using Prolog III, The Proceed ings of the 5th ESPRIT Conference: Putting the Technology to Use, 814-825, Amsterdam, 1988.
[14] C. Lassez, K. McAloon, and R. Yap, Constraint Logic Programming and Option Trading, IEEE Expert, 42-50, Fal l 1987.
[15] J. W. Lloyd, Foundations of Logic Programming, Second Extended Edition, Springer-Verlag, 1987.
[16] A.K. Mackworth. Constraint Satisfaction, Encyclopedia of Arificial Intelligence, 1986.
[17] MathLab, MACSYMA Reference Manual, The MathLab Group, Laboratory for Computer Science, MIT, 1983.
[18] U. Montanari, Networks of Constraints : Fundamental Properties and Applications to Pricture Processing, Informa tion Science, Vol. 7, No. 2, 95-132, 1974.
[19] G. L. Steele. The Definition and Implementation of a Computer Programming Language based on Constraints. Technical Report MIT-AI TR 595, M.I.T., 1980

[20] E. Tsang, Foundations of Constraint Satisfaction, Academic Press, 1993.