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

고객지원

기술문의

cplex와 C++ 코딩관련 질문 드립니다.

  • 김주범
  • 2012.07.19
  • 조회수 2,476
안녕하세요.
cplex를 사용하던차에 인터넷에서 우연찮게 알게되어 자주 들어와 보고 있습니다.
다름이 아니라, 현재 Visusal Studio 2010에 cplex, concert library를 설치하여 C++ 코딩을 하고 있는데요. 궁금한 것이 몇가지 있어 질문드립니다.

1. Visual Studio 2010에서 cplex를 사용할 수 있도록 환경설정을 할 때 release 모드가 아닌 debug모드에서는 할 수가 없는 것인지요?

2. release모드로 놓고 VS에서 F5를 눌러 debugging모드로 가서 IloNumArray, IloIntArray등과 같이 array에 저장된 값을 보려고 하면 값이 안 나오고 IloNumExprArray-IloExtractableArray~~~ 이런식으로 나와서 값을 볼수가 없습니다. 값을 정확히 보려면 전부 프린트문을 사용해서 출력을 해야만 하는건가요?

3. 인터넷을 찾아봐도 잘 모르겠어서 질문드립니다. 우선 IloIntArray x[][][][] (4차원배열), IloIntVarArray bx[][][](3차원배열), IloArray b[](1차원배열), IloExpr bxSum(env); 로 선언했습니다. 그리고 IloNumVarArray BWU(env, numLinks)는 이미 선언해 두었구요. 3개의 for문(j3, k3, l3)을 돌린 후에 나온 IloExpr형태의 bxSum 값을 BWU[numLinks] 배열에 차례대로 저장하려고 하려고 합니다. 왜냐하면 이 BWU[numLinks] 배열을 뒤에서 다시 불러 사용해야 합니다. 이때 어떻게 하면 bxSum 값을 BWU[] 배열에 저장할 수 있는지요? BWU[i3] == bxSum; 이건 아닌것 같구요. BWU[i3] = bxSum; 라고 하면 에러가 납니다. 해당 코드를 첨부파일에 올렸습니다. 참고해 주시면 감사하겠습니다.

4. 비슷한 질문인데 몇개의 IloNumArray들이 플러스 되고 마이너스 되서 나온 값을 상수값으로 넣고 싶은데요. 예를 들어 M = a[] + b[] - c[] 이렇게 하려면 이때 M을 어떻게 선언해야 하는지요? IloInt M 이라고 하면 되는지요? 이 M이 나중에 1/M 이런식으로 또 다른 수식에 들어가야 하거든요?

그럼, 건강하시고 귀사의 무궁한 발전을 기원합니다.

김주범 드림.
다운로드아이콘question.txt

댓글 1

  • 김반2012-07-20
    안녕하세요..

    1. Debug 모드로 컴파일이 물론 가능합니다.

    2. release / debug모드에 상관없이 IloNumArray 와 IloIntArray의 값을
    디버깅창에서 확인이 되지 않네요.
    대안으로 어짜피 상수값이니깐 C++ 의 기본 Library(STL포함) 를
    이용해보는것도 방법입니다.
    IloIntArray -> int[] IloNumArray -> double[]

    3. type 이 달라서 말씀하신데로는 안되고,
    아래와 같이
    IloArray< IloExpr > bxSums(_env);
    아니면, C++ STL 을 활용하는것도 방법입니다.
    std::vector< IloExpr > bxSums;

    4. IloNumArray 이니 IloNum M 으로 해야겠죠.

    IloNum -> double
    IloInt -> int


    아이콘삭제

댓글 입력