|
Á¦ ¸ñ |
[RE]°¨»çÇÕ´Ï´Ù. |
|
ÀÛ¼ºÀÚ |
À̺´±â |
ÀÛ¼ºÀÏ |
2013-08-08 |
Á¶È¸¼ö |
1060 ȸ |
|
÷ºÎÆÄÀÏ |
÷ºÎµÈ ÆÄÀϾøÀ½.
|
|
¾È³çÇϼ¼¿ä. KSTEC À̺´±âÀÔ´Ï´Ù.
mod¿Í dat ÆÄÀÏÀ» ÅëÇØ º» ¹®Á¦Á¡Àº ¾Æ·¡¿Í °°½À´Ï´Ù.
1. ÁÖ¼®Ã³¸®µÈ ±âÁ¸ ¸ñÀû½ÄÀº min max¿¡ ´ëÇÑ ¸ñÀû½ÄÀ» Ç¥ÇöÇϰí ÀÖÁö ¾ÊÀ½(sumÀ¸·Î ÀÎÇÑ ´ÜÀÏ °ª¿¡ ´ëÇÑ minimize ÇüÅÂ) => ¾Æ·¡¿Í °°ÀÌÀÌ Ç¥Çö°¡´ÉÇÕ´Ï´Ù. ex. min-max ¸ñÀû½Ä ÇüÅ : minimize max(i in I) (sum(j in J) x[i][j]); ¸ñÀû½Ä°ú Á¦¾à½ÄÀ» ºÐ¸®ÇÑ ÇüÅ : dvar float t; minimize t; subject to { forall(i in I) (t - sum(j in J) x[i][j]) >= 0; } 2. forallÀ̳ª sum ÇÔ¼ö¿¡¼ s index¸¦ »ç¿ëÇϰí ÀÖÀ¸³ª, s index¿¡ ÇØ´çÇÏ´Â º¯¼ö°¡ ¾øÀ½ => »ç¿ëÇÏÁö ¾Ê´Â ºÒÇÊ¿ä index¸¦ Á¦°ÅÇØ¾ß ÇÕ´Ï´Ù. 3. ÁÖ¼®Ã³¸®µÇÁö ¾Ê´Â minimize ±¸¹®(minimize t[i][j])¿¡ i¿Í j index¸¦ »ç¿ëÇϳª, index¸¦ ÁöÁ¤ÇÏ´Â ºÎºÐÀÌ ¾øÀ½ => ÃÖ¼ÒÈÇϰíÀÚ ÇÏ´Â °ªÀÌ ¾î¶² ÇüÅÂÀÎÁö ÁüÀÛÇÏ±â ¾î·Æ½À´Ï´Ù. ÁÖ¼®Ã³¸®µÈ ¸ñÀû½ÄÀ¸·Î´Â ¾î¶² °ªµé Áß¿¡¼ ÃÖ´ë°ªÀ» ÃÖ¼ÒÈÇÏ´ÂÁö¸¦ ÆÄ¾ÇÇÒ ¼ö ¾ø½À´Ï´Ù. mimize t ¶Ç´Â minize sum(i in I, j in J) t[i][j] ÇüŰ¡ °¡´ÉÇÕ´Ï´Ù. 4. °áÁ¤º¯¼ö t[N][N]Àº booleanÇüÀ̳ª, sumÀ¸·Î µÈ ¼ö½ÄÀº float*booleanÀÓ µû¶ó¼, 1 >= 1200, 0 >= 3 °ú °°Àº °æ¿ì¿¡´Â Á¦¾à À§¹ÝÀÌ ¹ß»ýÇϹǷÎ, 0ÀÌ ¾Æ´Ñ °Å¸®¿¡ ÇØ´çµÇ´Â °áÁ¤º¯¼ö x´Â ¸ðµÎ 0À¸·Î °áÁ¤µÉ °ÍÀÔ´Ï´Ù. => ¿ª½Ã ¸ñÀû½ÄÀÇ Á¤È®ÇÑ Àǹ̿¡ µû¶ó dvar float t[I][J] ¶Ç´Â dvar float t ÇüŰ¡ °¡´ÉÇØ º¸ÀÔ´Ï´Ù. 5. Á¦¾à½Ä¿¡¼ forall·Î °¢ Á¦¾à½ÄÀ» »ý¼ºÇÏ´Â µí ÇÏÁö¸¸, sumÀ¸·Î i,j index¿¡ ´ëÇÏ¿© Àüü ÇÕÀ» Çϰí ÀÖÀ½ ¿¹·Î ¾Æ·¡¿Í °°Àº Á¦¾àÀº sumÀ¸·Î i,j index¿¡ ´ëÇÏ¿© ¸ðµÎ ÇÕÇÑ °ªÀÌ R1º¸´Ù À۰ųª °°´Ù¶ó´Â ÀǹÌÀ̹ǷΠforallÀÇ i,j index¿¡ ´ëÇÑ Àǹ̰¡ ¾ø´Â »óÅÂÀÔ´Ï´Ù. // °Å¸®Á¦ÇÑ forall(i,j in N) sum(i,j in N) x[i][j][1] <= R1 ; => forall(i,j in N) x[j][j][1] <= R1 ¶Ç´Â sum(i,j in N) x[[i][j][1] <= R1 ÇüŰ¡ °¡´ÉÇÕ´Ï´Ù. À§ µÎ ½ÄÀº ÀǹÌÇÏ´Â ¹Ù°¡ ¿ÏÀüÈ÷ ´Ù¸¨´Ï´Ù. Á¤È®ÇÑ ¼ö½ÄÀ» Ç¥ÇöÇÏ´Â ÇüŸ¦ »ý°¢ÇÏ¿©¾ß ÇÕ´Ï´Ù.
ÀüüÀûÀ¸·Î ¼ö¸®¸ðÇüÀ» cplex opl·Î Ç¥ÇöÇÏ´Â ºÎºÐ¿¡¼ ¸¹Àº ¿À·ù°¡ ÀÖ½À´Ï´Ù. cplex¿¡ Æ÷ÇÔµÈ ¸¹Àº ¿¹Á¦¸¦ ¸ÕÀú Âü°íÇϼż Ç¥Çö¹ýÀ» ÀÌÇØÇϽô °ÍÀÌ ÁÁ°Ú½À´Ï´Ù.
ÀÌ»óÀÔ´Ï´Ù. °¨»çÇÕ´Ï´Ù.
|
|
|
|