주메뉴 바로가기 본문 바로가기 하단 바로가기

고객지원

기술문의

IloExpr 관련 질문

  • 이상원
  • 2007.10.29
  • 조회수 1,918
IloExpr Const_2(env);
IloExpr Const_3(env);

for(j=0; j<No_Floor; j++){
for(IloInt k=0; k<No_Room; k++)
{
Const_2 += B[j]*quantity_floor_room[j][k];
Const_3 += G[j]*quantity_floor_room[j][k];
}
}
......

질문) IloExpr로 선언되는 Const_2와 Const_3 변수를 하나의 배열로 선언할 수는 없나요?
위에서처럼 각 경우마다... 1,2,3이런식으로 만들어서 사용하려니 조잡해보이기도하고 만들기도 힘들고...그렇습니다.....
방법을 부탁드리겠습니다...

댓글 4

  • 김태현2007-10-29
    매뉴얼의 IloExprArray를 참조하시기 바랍니다.

    또한, IloArray를 이용해서 다양한 형태의 데이터를

    Array로 사용할 수 있습니다..
    아이콘삭제
  • 이상원2007-10-29
    빠른 답변에 감사드립니다....
    메뉴얼에 있는 컨스트럭터를 따라 만들어서 모델에 추가해봤는데
    오류가 나는군요...
    IloExprArray 사용용법이 맞는지 확인을 부탁드리겠습니다.
    문법상의 오류가 있는지도 확인 부탁드립니다.
    --------------------------------------------

    IloExprArray Y_Floor(env, No_Floor);

    for(j=0; j<No_Floor; j++)
    {
    for(i=0; i<No_Church+No_dummy; i++)
    {
    for(IloInt k=0; k<No_Room; k++)
    {
    Y_Floor[j] += X[i][j][k];
    }
    }
    }

    for(j=0; j<No_Floor; j++)
    {
    IP.add(Y_Floor[j] <= M*G[j]);
    }


    PS: 위의 제약식을 제외하면 모델은 잘 돌아갑니다...
    For문이... 이상하게 나타나는 군요..... txt 파일 첨부합니다.
    아이콘삭제
  • 임승빈2007-10-30
    IloExprArray 를 호출할 때, 핸들러가 비어있는 상태이므로 처음 인자값 입력을 += 오퍼레이터 사용시 에러가 발생할 수 있습니다(즉, 각 배열에 핸들러를 호출해 주어야 합니다.).


    본 문제를 다음과 같이 해결하실 수 있습니다.
    예1)

    IloExprArray Y_Floor(env, No_Floor);

    for(j=0; j<No_Floor; j++)
    {
    Y_Floor[j] = IloExpr(env);//배열 핸들러 선언

    for(i=0; i<No_Church+No_dummy; i++)
    {
    for(IloInt k=0; k<No_Room; k++)
    {
    Y_Floor[j] += X[i][j][k];
    }
    }
    }

    for(j=0; j<No_Floor; j++)
    {
    IP.add(Y_Floor[j] <= M*G[j]);
    }


    예2)

    IloExprArray Y_Floor(env);

    for(j=0; j<No_Floor; j++)
    {
    IloExpr expr(env);
    for(i=0; i<No_Church+No_dummy; i++)
    {
    for(IloInt k=0; k<No_Room; k++)
    {
    expr += X[i][j][k];
    }
    }
    Y_Floor.add(expr);
    }

    for(j=0; j<No_Floor; j++)
    {
    IP.add(Y_Floor[j] <= M*G[j]);
    }

    첨부된 문서를 보시면, 수정된 소스를 보실 수 있습니다.

    감사합니다.
    아이콘삭제
  • 이상원2007-11-02
    ^^ 큰 도움이 되었습니다. 감사드립니다.
    아이콘삭제

댓글 입력