ILOG logo
KSTEC ȸ¿øÀ¸·Î °¡ÀÔÇϼ¼¿ä¤Ó»õ¼Ò½Ä | ·Î±×ÀÎ
 
title element1
License
- ¶óÀ̼¾½º
- ¶óÀ̼¾½º °ü¸®
Maintenance
Training
FAQ
Q&A

Q & A ... °Ô½ÃÆÇ  (Optimization)


¡Ø ¾È³çÇϽʴϱî..?
    ÀúÈñ KSTECÀÇ Á¦Ç°À̳ª ¼­ºñ½º¿¡ ´ëÇØ ±Ã±ÝÇϽŠÁ¡À̳ª ±â¼úÁö¿øÀ» ¿øÇϽô °í°´´ÔÀº ȸ»ç¸í,
    ºÎ¼­¸í, ¼º¸í, »ç¿ëÁ¦Ç°¸í, Á¦Ç° VERSIONÀ» ¸í½ÃÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.

¡Ø °Ô½ÃÇϽг»¿ë¿¡ ´ëÇØ¼­´Â ½Å¼ÓÇÏ°Ô ´äº¯ÇØ µå¸®°Ú½À´Ï´Ù.
¡Ø ÇØ´çµÇ´Â Á¦Ç°±ºÀ» ¼±ÅÃÇϽŠÈÄ ÇÏ°í ½ÍÀ¸½Å ¸»¾¸À» Àû¾î ÁֽʽÿÀ.

Á¦ ¸ñ
Error
ÀÛ¼ºÀÚ
À§ÁÖ¿µ
ÀÛ¼ºÀÏ
2011-12-06
Á¶È¸¼ö 1396 È¸
÷ºÎÆÄÀÏ Ã·ºÎµÈ ÆÄÀϾøÀ½.
¾È³çÇϼ¼¿ä,
ÀüÈ­·Î ¹®Àǵå·È´ø À§ÁÖ¿µÀÔ´Ï´Ù.
"This application has requested the Runtime to terminate it in an unusual way."
·Î ½ÃÀÛÇÏ´Â ¿¡·¯ ¸Þ½ÃÁö°¡ ¶¹½À´Ï´Ù.
¼Ò½ºÄÚµå´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
double solve(std::vector& stopList, std::vector& facilityList, Matrix& od, Matrix& indexMatrix, vector>& indexList, char* filename){
IloEnv env;
IloModel model(env);
IloExpr tmp(env);

int row = od.row();
int col = od.col();
int i,j;

// »ó¼ö

IloArray c(env, row);
for(i = 0; i < row; i++){
c[i] = IloFloatArray(env, col);
for(int j = 0; j < col; j++){
c[i][j] = od[i][j];
}
}

IloFloatArray d(env, row);
for(i = 0; i < row; i++) d[i] = stopList[i].demand;

IloFloatArray F(env, col);
for(j = 0; j < col; j++) F[j] = facilityList[j].capacity;



// º¯¼ö
IloBoolVarArray x(env, (int)indexList.size());
for(i = 0; i < (int)indexList.size(); i++){
stringstream name;
name << "x[" << indexList[i].x << "][" << indexList[i].y << "]";
x[i].setName(name.str().c_str());
}

// ¸ñÀû½Ä

for(i = 0; i < row; i++){
for(j = 0; j < col; j++){
if (indexMatrix[i][j] != -1) tmp += x[indexMatrix[i][j]] * c[i][j];
}
}

model.add(IloMinimize(env,tmp));

// Á¶°Ç½Ä

for(i = 0; i < row; i++){
tmp.clear();
for(j = 0; j < col; j++){
if (indexMatrix[i][j] != -1) tmp += x[indexMatrix[i][j]];
}
model.add(tmp == 1);
}

for(j = 0; j < col; j++){
tmp.clear();
for(i = 0; i < row; i++){
if (indexMatrix[i][j] != -1) tmp += x[indexMatrix[i][j]] * d[i];
}
model.add(tmp <= F[j]);
}

IloCplex cplex(model);

cplex.exportModel(filename);
cplex.setParam(IloCplex::WorkMem, 16384);

double startTime = env.getTime();
cplex.solve();
double endTime = env.getTime();

if (cplex.getStatus() != IloAlgorithm::Optimal) return startTime - endTime;

cout << "Solution status : " << cplex.getStatus() << endl;
cout << "Solution Value : " << cplex.getObjValue() << endl;

return endTime - startTime;
}
°ü·Ã±Û º¸±â
"Error"¿Í(°ú) °ü·ÃµÈ ±ÛÀÌ  2°Ç ÀÖ½À´Ï´Ù.
Error À§ÁÖ¿µ 2011-12-06
[RE]Error À̼º±Õ 2011-12-07
   [RE][RE]Error À§ÁÖ¿µ 2011-12-07