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

고객지원

기술문의

제약식관련

  • 김민수
  • 2008.09.01
  • 조회수 2,005
현재 2개의 제약식을 만들고싶은데요

첫번째는 결정변수 Xij가 로워바운드보다 크거나 같고 어퍼바운드보다 작거나 같다. 이러한식이고요
L<=0<=U
두번째는 결정변수는 0보다 크거나 같다
Xij>=0
이 두가지를 구현하려면 어떻게 해야할까요?

댓글 2

  • 김민규2008-09-02
    C++로 cplex의 library를 사용하셔서 작성중이시라면

    IloEnv env;
    IloModel model(env);
    IloNumVar X(env, 0, IloInfinity);
    IloRange c1(env, lb, x, ub);
    model.add(c1);

    와 같은 방식으로 하시면 되겠습니다.

    opl을 사용하신다면

    dvar float+ x;

    subject to {
    x >= lb;
    x <= ub;
    }
    로 해주시면 되겠습니다.
    아이콘삭제
  • 이보헌2008-09-02
    1. 변수 만들때,
    IloEnv env;
    IloNumVar x(env, L, U);
    IloNumVar y(env, 0, IloInfinity);

    2. 제약식으로 만드는 방법
    IloEnv env;
    IloModel model(env);
    IloNumVar x(env);
    model.add(L<= x);
    model.add(x <= U);

    위 두가지가 일반적으로 사용되며,
    IloNumVar 외에 IloRange, IloExpr 등을 사용하거나 setBound()함수를 사용하는 방법등 많은 방법이 있습니다.
    메뉴얼이나 예제를 참고하여 마음에 드는 방법을 사용하시기 바랍니다.
    아이콘삭제

댓글 입력