Á¦ÇÑ ³í¸® ÇÁ·Î±×·¡¹Ö ¾ð¾î) º» ¿¬
±¸´Â Çѱ¹ÀüÀÚÅë½Å¿¬±¸¼Ò À§Å¹°úÁ¦ÀÎ "³í¸® ¾ð¾î ÄÄÆÄÀÏ·¯¿¡ °üÇÑ ¿¬±¸"ÀÇ ºÎºÐ Áö¿øÀ» ¹ÞÀº °ÍÀÔ´Ï´Ù.
Çѱ¹ÀüÀÚÅë½Å¿¬±¸¼Ò ½Åµ¿ÇÏ
¼÷¸í¿©ÀÚ´ëÇб³ âº´¸ð
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.