|
|
¡Ø ¾È³çÇϽʴϱî..?
ÀúÈñ KSTECÀÇ Á¦Ç°À̳ª ¼ºñ½º¿¡ ´ëÇØ ±Ã±ÝÇϽŠÁ¡À̳ª ±â¼úÁö¿øÀ» ¿øÇϽô °í°´´ÔÀº ȸ»ç¸í,
ºÎ¼¸í, ¼º¸í, »ç¿ëÁ¦Ç°¸í, Á¦Ç° VERSIONÀ» ¸í½ÃÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.
¡Ø °Ô½ÃÇϽг»¿ë¿¡ ´ëÇØ¼´Â ½Å¼ÓÇÏ°Ô ´äº¯ÇØ µå¸®°Ú½À´Ï´Ù.
¡Ø ÇØ´çµÇ´Â Á¦Ç°±ºÀ» ¼±ÅÃÇϽŠÈÄ ÇÏ°í ½ÍÀ¸½Å ¸»¾¸À» Àû¾î ÁֽʽÿÀ.
|
|
|
Á¦ ¸ñ |
[RE]Áú¹®ÀÖ½À´Ï´Ù. |
|
ÀÛ¼ºÀÚ |
Àӽºó |
ÀÛ¼ºÀÏ |
2008-10-06 |
Á¶È¸¼ö |
1290 ȸ |
|
÷ºÎÆÄÀÏ |
÷ºÎµÈ ÆÄÀϾøÀ½.
|
|
¾È³çÇϼ¼¿ä.
¿ì¼± ù ¹øÂ° ¹®Á¦ºÎÅÍ ¸»¾¸µå¸®ÀÚ¸é,
Objective¿¡ »ó¼ö°ªÀ» ÃÖ´ëÈ ÇÏ´Â ÇüŰ¡ µÇ¾î Àֳ׿ä(º¯¼ö°¡ ¾øÀ½).
¼öÁ¤ ³»¿ëÀº ´ÙÀ½°ú °°½À´Ï´Ù.
°áÁ¤º¯¼ö: varX_i - i¹øÂ° ´Ü¾î°¡ ¼±ÅõǸé 1, ¾Æ´Ï¸é 0 (0-1 integer)
»ó¼ö: S1_i - i¹øÂ° ´Ü¾îÀÇ Ã¹¹øÂ° ±ÛÀÚ ¼öÄ¡ S2_i - i¹øÂ° ´Ü¾î µÎ¹øÂ° ±ÛÀÚ ¼öÄ¡ S3_i - i¹øÂ° ´Ü¾î ¼¼¹øÂ° ±ÛÀÚ ¼öÄ¡
¸ñÀû½Ä: ´Ü¾î ¼öÄ¡ ÇÕÀ» ÃÖ´ë·Î ÇÏ´Â º¯¼ö ¼±ÅÃ
Á¦¾à½Ä : 1. ¼±ÅõǴ ´Ü¾î´Â ÃÑ 8°¡Áö 2. ù¹øÂ° ±ÛÀÚ´Â µÎ¹øÂ° ±ÛÀÚº¸´Ù ÀÛÀº ¼ö 3. ù¹øÂ° ±ÛÀÚ´Â ¼¼¹øÀç ±ÛÀÚº¸´Ù ÀÛÀº ¼ö
°á°ú: // solution (optimal) with objective 259 varX = [0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
¼±ÅõǴ ´Ü¾î´Â 4, 5, 6, 12, 13, 14, 16, 18 ¹øÂ° ´Ü¾îÀÔ´Ï´Ù.
´ÙÀ½À¸·Î µÎ ¹øÂ° ¹®Á¦ Ç®ÀÌ´Â ´ÙÀ½°ú °°½À´Ï´Ù.
¹°°ÇÀº weight ´ÜÀ§·Î Âɰ³Áú ¼ö ¾ø´Ù¶ó´Â Á¶°ÇÀÌ °áÁ¤º¯¼ö¸¦ Á¤Çϴµ¥ Áß¿äÇÑ ¿ªÇÒÀ» ÇÑ´Ù°í »ý°¢µÇ¾îÁý´Ï´Ù.
°áÁ¤º¯¼ö: X_b_i - b ºó¿¡ i ¹øÂ° ¹°°ÇÀÌ µé¾î°¡¸é 1, ¾Æ´Ï¸é 0 Y_b - b ºóÀÌ »ç¿ëµÇ¸é 1, ¾Æ´Ï¸é 0
¸ñÀû½Ä: »ç¿ëµÇ´Â ºóÀÇ °³¼ö ÃÖ¼ÒÈ
Á¦¾à½Ä: 1. °¢ ºó¿¡ µé¾î°¡´Â ¹°°ÇÀº ºó ¿ë·®ÀÇ ÃÖ´ë¼öÄ¡¸¦ ³ÑÀ» ¼ö ¾øÀ½ 2. ¸ðµç ºó ¾È¿¡ ¹°°ÇÀº Çѹø¸¸ µé¾î°¥ ¼ö ÀÖÀ½
°á°ú: // solution (optimal) with objective 3 Y = [0 1 1 1 0]; X = [[0 0 0 0 0 0 0 0] [0 1 0 0 1 0 0 0] [1 0 0 0 0 1 0 0] [0 0 1 1 0 0 1 1] [0 0 0 0 0 0 0 0]];
»ç¿ëµÇ´Â ºó ¼ö: 3°³ ºó 1 - 66, 19 ºó 2 - 80, 9 ºó 3 - 23, 17, 21, 32
±¸Ã¼ÀûÀº ¸ðµ¨ ³»¿ëÀº ¾Æ·¡¿Í °°½À´Ï´Ù. 1¹ø¹®Á¦:
range Index = 1..47;
int A=1; int B=2; int C=3; int D=4; int E=5; int F=6; int G=7; int H=8; int I=9; int J=10; int K=11; int L=12; int M=13; int N=14; int O=15; int P=16; int Q=17; int R=18; int S=19; int T=20; int U=21; int V=22; int W=23; int X=24; int Y=25; int Z=26;
int S1[Index] = [ A, A, B, B, C, C, D, D, E, E, F, F, G, G, H, H, H, I, I, J, J, K, L, L, L, M, M, N, N, O, O, P, P, Q, Q, R, R, S, S, T, T, U, V, W, X, Y, Z ]; int S2[Index] = [ D, F, E, K, C, I, E, I, A, G, A, I, H, O, A, O, U, O, V, C, O, E, K, I, Y, O, T, E, T, I, S, I, R, M, U, O, U, T, I, U, V, T, I, H, I, E, I ]; int S3[Index] = [ V, T, T, S, W, R, R, P, T, O, R, N, Q, O, T, I, G, N, E, S, E, N, K, P, E, L, G, S, H, L, F, P, F, G, E, E, G, G, P, E, A, E, P, O, N, S, P ];
dvar int varX[Index] in 0..1;
maximize sum(i in Index) (S1[i] + S2[i] + S3[i]) * varX[i];
subject to {
const_1: sum(i in Index) varX[i] == 8; const_2: forall(i in Index) S1[i] * varX[i] <= S2[i] * varX[i]; const_3: forall(i in Index) S1[i] * varX[i] <= S3[i] * varX[i]; }
2¹ø¹®Á¦:
int NbItems = 8; int NbBins = 5;
int BoxWeight = 93;
range Items = 1..NbItems; range Bins = 1..NbBins;
int WeightItems[Items] = [ 80, 66, 23, 17, 19, 9, 21, 32 ];
dvar int Y[Bins] in 0..1; dvar int X[Bins][Items] in 0..1;
minimize sum(b in Bins) Y[b]; subject to {
const_1: forall(b in Bins) sum(i in Items) WeightItems[i] * X[b][i] <= BoxWeight * Y[b]; const_2: forall(i in Items) sum(b in Bins) X[b][i] == 1; }
|
|
|
|
|
|
°ü·Ã±Û º¸±â
|
|
"[RE]Áú¹®ÀÖ½À´Ï´Ù."¿Í(°ú) °ü·ÃµÈ ±ÛÀÌ
1°Ç ÀÖ½À´Ï´Ù. |
 |
Áú¹®ÀÖ½À´Ï´Ù.
|
ÃÖ¸íÁø |
2008-10-06 |
 |
[RE]Áú¹®ÀÖ½À´Ï´Ù.
|
Àӽºó |
2008-10-06 |
|
|
|
|
|