|
 |
 |
 |
Q & A ...
°Ô½ÃÆÇ (Optimization)
|
|
|
¡Ø ¾È³çÇϽʴϱî..?
ÀúÈñ KSTECÀÇ Á¦Ç°À̳ª ¼ºñ½º¿¡ ´ëÇØ ±Ã±ÝÇϽŠÁ¡À̳ª ±â¼úÁö¿øÀ» ¿øÇϽô °í°´´ÔÀº ȸ»ç¸í,
ºÎ¼¸í, ¼º¸í, »ç¿ëÁ¦Ç°¸í, Á¦Ç° VERSIONÀ» ¸í½ÃÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.
¡Ø °Ô½ÃÇϽг»¿ë¿¡ ´ëÇØ¼´Â ½Å¼ÓÇÏ°Ô ´äº¯ÇØ µå¸®°Ú½À´Ï´Ù.
¡Ø ÇØ´çµÇ´Â Á¦Ç°±ºÀ» ¼±ÅÃÇϽŠÈÄ ÇÏ°í ½ÍÀ¸½Å ¸»¾¸À» Àû¾î ÁֽʽÿÀ.
|
|
|
Á¦ ¸ñ |
[RE]C¾ð¾î¿Í °ü·ÃÇÏ¿© Áú¹®µå¸³´Ï´Ù. |
|
ÀÛ¼ºÀÚ |
À̺´±â |
ÀÛ¼ºÀÏ |
2012-11-23 |
Á¶È¸¼ö |
1292 ȸ |
|
÷ºÎÆÄÀÏ |
÷ºÎµÈ ÆÄÀϾøÀ½.
|
|
¾È³çÇϼ¼¿ä. KSTEC À̺´±âÀÔ´Ï´Ù.
1. C¿¡ ´ëÇÑ ¿¹Á¦´Â ¾Æ·¡ Æú´õ¸¦ Âü°íÇÏ½Ã¸é µË´Ï´Ù. C:\Users\Byungki\Documents\IBM\ILOG\CPLEX_Studio124\cplex\examples\src\c
C¿Í C++Àº ±¸Çö»ó¿¡ Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. C++Àº Concert °´Ã¼(ÃÖÀûÈ ±¸Çö¿¡ ÇÊ¿äÇÑ °´Ã¼¸¦ ¾²±â ÆíÇϵµ·Ï ¹Ì¸® Define µÈ °´Ã¼ ¹× ¹æ¹ýµé·Î ÁÖ·Î Ilo·Î ½ÃÀÛÇÏ´Â Class)¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¡¹ÖÇÏ°Ô µÇ´Âµ¥, C¿¡¼´Â ÀÌ Concert °´Ã¼µéÀ» ÀÌ¿ëÇÏ½Ç ¼ö ¾ø°í, º¸´Ù Callable Library¸¦ ÅëÇØ ÇÁ·Î±×·¡¹ÖÀÌ ÀÌ·ç¾îÁý´Ï´Ù. µ¿ÀÏÇÑ ¹®Á¦¸¦ Ç®±â À§ÇÑ ¿¹Á¦ÀÎ mipex1.c¿Í ilomipex1.cpp Äڵ带 ºñ±³ÇØ º¸½Ã¸é ÀÌ·¯ÇÑ Concert °´Ã¼µéÀÇ Àç»ç¿ë ¿©ºÎ°¡ ¹Ù·Î ÇÁ·Î±×·¡¹ÖÀÇ ºÐ·® Â÷À̱îÁö ¹ß»ý½ÃŰ´Â °ÍÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼ ÇöÀç´Â ´ëºÎºÐ C++À» ÀÌ¿ëÇÏ¿© ±¸ÇöÇϰí ÀÖ½À´Ï´Ù.
2. Interactive Optimizer´Â µµ½ºÃ¢¿¡¼ Ä¿¸Çµå¸¦ Á÷Á¢ ÀÔ·ÂÇÏ¸é¼ CPLEX¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. cplex.exe ½ÇÇàÈÄ °áÁ¤º¯¼ö, ¸ñÀû½Ä, Á¦¾à½Ä, Ç®ÀÌ µîÀ» Ä¿¸Çµå·Î Á÷Á¢ ÀÔ·ÂÇϰųª È®ÀåÀÚ°¡ lpÀÎ ÆÄÀÏÀ» loadÇÏ¿© solveÇϴµ¥ ÀÌ¿ëµË´Ï´Ù. ÀÌ interactive optimizer¿¡¼´Â ÇϳªÇϳª ÀÔ·ÂÇϰųª lp ÆÄÀÏÀ» ¹Ì¸® ¸¸µé¾î¼ ÀÌ¿ëÇϱ⠶§¹®¿¡, º¹ÀâÇÑ ¼ö½ÄÀ̳ª ´Ù¾çÇÑ data¸¦ ÀÌ¿ëÇÏ±â ¾î·Æ°í ÀÏȸ¼ºÀûÀÎ Ãø¸éÀÌ ÀÖ½À´Ï´Ù. Callable library´Â C¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¡¹ÖÇÒ °æ¿ì, CPLEX ¿£ÁøÀ» ÀÌ¿ëÇϱâ À§ÇÑ APIÀÔ´Ï´Ù. ÇÁ·Î±×·¥À» ÇÏ¸é ´Ù¾çÇÑ data¸¦ ÀÌ¿ëÇÏ¿© ½ÇÇèÇϰųª ¿øÇÏ´Â ÇüÅ·Π°á°ú¸¦ ÀúÀåÇÏ°í °ËÁõÇϴµ¥ ¿ëÀÌÇϱ⠶§¹®¿¡, Interactive Optimizerº¸´Ù´Â ÇÁ·Î±×·¡¹ÖÀ» ÇÏ¿© ÀÌ¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ÀÌ ÇÁ·Î±×·¥À» ±¸ÇöÇÏ´Â ¹æ¹ýÀº C, C++ µî ¿©·¯ ¹æ¹ýÀÌ Àִµ¥, CÀÇ °æ¿ì¿¡´Â Callable Library ¶ó´Â CPLEX ¿£ÁøÀ» ÀÌ¿ëÇϱâ À§ÇØ Á¤ÀÇµÈ API¸¦ »ç¿ëÇϰí, C++ÀÇ °æ¿ì¿¡´Â Concert °´Ã¼¸¦ ÀÌ¿ëÇØ¼ ÇÁ·Î±×·¡¹ÖÇÑ´Ù°í º¸½Ã¸é µÉ °Í °°½À´Ï´Ù.
3. Interactive Optimizer¸¦ ÀÌ¿ëÇÑ´Ù¸é, ¸ðµÎ ´Ù typing ÇÏ¿© ÀÔ·ÂÇÏ¿©¾ß ÇÕ´Ï´Ù. ÈçÈ÷ ¸»ÇÏ´Â Ç®°íÀÚ ÇÏ´Â ÃÖÀûÈ ¹®Á¦¸¦ ±×´ë·Î ÀÔ·ÂÇØ¾ß ÇÑ´Ù°í º¸½Ã¸é µË´Ï´Ù. ¾Æ·¡¿Í °°Àº È®ÀåÀÚ°¡ lpÀÎ ÆÄÀÏÀ» º¸½Ã¸é Data°¡ ¸ðµÎ ³ªÅ¸³ ÃÖÀûÈ ¼ö½ÄÀ» ÀÔ·ÂÇϴµ¥, ÀÌ·¸°Ô ÀÔ·ÂµÈ ¼ö½ÄÀ» optimizeÇÏ°Ô µÇ¸é cplex ¿£ÁøÀÌ Ç®°Ô µË´Ï´Ù. µû¶ó¼ º°µµÀÇ CPLEX ¸ðµ¨¸µ(ILO °´Ã¼¸¦ ±¸ÇöÇÑ´Ù´øÁö)Àº ¾ø½À´Ï´Ù. (ÀÔ·ÂµÈ ºÎºÐ¿¡ ¸ðµç ÃÖÀûÈ ¹®Á¦ÀÇ ³»¿ëÀÌ ÀÌ¹Ì Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.)
\Problem name: prod.lp
Maximize obj: - 10 make(1,1) - 10 make(1,2) - 10 make(1,3) - 10 make(1,4) - 11 make(2,1) - 11 make(2,2) - 11 make(2,3) - 11 make(2,4) + 25 sell(1,1) + 26 sell(1,2) + 27 sell(1,3) + 27 sell(1,4) + 30 sell(2,1) + 35 sell(2,2) + 37 sell(2,3) + 39 sell(2,4) Subject To c1: 0.005 make(1,1) + 0.00714285714285714 make(2,1) <= 40 c2: 0.005 make(1,2) + 0.00714285714285714 make(2,2) <= 40 c3: 0.005 make(1,3) + 0.00714285714285714 make(2,3) <= 32 c4: 0.005 make(1,4) + 0.00714285714285714 make(2,4) <= 40 c5: make(1,1) - inv(1,1) - sell(1,1) = -10 c6: make(1,2) + inv(1,1) - inv(1,2) - sell(1,2) = 0 c7: make(1,3) + inv(1,2) - inv(1,3) - sell(1,3) = 0 c8: make(1,4) + inv(1,3) - inv(1,4) - sell(1,4) = 0 c9: make(2,1) - inv(2,1) - sell(2,1) = 0 c10: make(2,2) + inv(2,1) - inv(2,2) - sell(2,2) = 0 c11: make(2,3) + inv(2,2) - inv(2,3) - sell(2,3) = 0 c12: make(2,4) + inv(2,3) - inv(2,4) - sell(2,4) = 0 Bounds 0 <= sell(1,1) <= 6000 0 <= sell(1,2) <= 6000 0 <= sell(1,3) <= 4000 0 <= sell(1,4) <= 6500 0 <= sell(2,1) <= 4000 0 <= sell(2,2) <= 2500 0 <= sell(2,3) <= 3500 0 <= sell(2,4) <= 4200 End
ÀÌ»óÀÔ´Ï´Ù. °¨»çÇÕ´Ï´Ù. |
|
|
|
|
|
°ü·Ã±Û º¸±â
|
|
"[RE]C¾ð¾î¿Í °ü·ÃÇÏ¿© Áú¹®µå¸³´Ï´Ù."¿Í(°ú) °ü·ÃµÈ ±ÛÀÌ
2°Ç ÀÖ½À´Ï´Ù. |
 |
C¾ð¾î¿Í °ü·ÃÇÏ¿© Áú¹®µå¸³´Ï´Ù.
|
ÀÌÁöÇý |
2012-11-21 |
 |
[RE]C¾ð¾î¿Í °ü·ÃÇÏ¿© Áú¹®µå¸³´Ï´Ù.
|
À̺´±â |
2012-11-23 |
 |
[RE][RE]C¾ð¾î¿Í °ü·ÃÇÏ¿© Áú¹®µå¸³´Ï´Ù.
|
ÀÌÁöÇý |
2012-11-23 |
|
|
|
|
|
|