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

고객지원

기술문의

Dispatcher 관련

  • 김미이
  • 2006.11.15
  • 조회수 1,725
제가 VRP문제를 푸는데 어디서 잘못된건지 목적함수값이 이상하게 나옵니다.
-#INF라고 나오는데요
제가 Multi-trip 문제에 Soft Time Windows를 접목하였습니다.
시간제약위반에 대한 비용이 0이 아닌수가 들어가면 무조건 목적함수가 -#INF라고 나오는데 어디가 잘못된걸까요??

몇일동안 보고 있는데 어디가 잘못됐는지 알수가 없습니다.
도와주세요. 부탁드립니다. 다운로드아이콘soft.txt

댓글 4

  • 임승빈2006-11-21
    안녕하세요.

    답변이 늦어져서 죄송합니다.

    전반적인 코드와 제약 상황을 분석하느라 시간이 좀 걸렸습니다.

    여러가지 문제점이 있었는데 중요한 몇가지만 말씀드리겠습니다.




    우선 tardiness가 상당히 모호합니다.

    차량에 부과되는 이 코스트는, 현 제약에서는 값을 가질 수 없습니다.

    즉 tardiness에 대한 명확한 정의가 필요한 듯 싶습니다.

    변수 tard가 값을 가질 수 없기 때문에 코스트 역시 부과될 수 없습니다.

    따라서, -#INF형태의 최종 코스트가 발생하게 됩니다.

    실제로 차량생성부분에 tardiness에 대한 코스트 부분을 제거하게 되면 -#INF 값을 갖지 않는 것을 알 수 있습니다.



    해결방법으로는 tardiness는 시간을 나타내는 dimension이므로

    기존에 IloDemension1 tardiness를 IloDemension2 tardiness로

    변형해 주시면 됩니다.

    위 수정사항은 첨부된 소스코드에 포함되어 있습니다.



    또 말씀드릴 것은 방문지(visit)를 꼭 mdl(IloModel)에 추가하셔야 합니다.

    소스를 보니 방문지를 생성하시고 mdl에 추가를 안하셨습니다.

    방문지와 차량(vehicle)은 반드시 mdl에 추가해 주세요.

    또한 방문지 setPeneltyCost를 잘 설정해 주셔야 합니다.



    끝으로, env 모델, 즉 env로 생성하신 IloModel이 2가지 인 것을 확인했는데요(tspModel, mdl),

    tspModel에서 생성하신 IloVisitArray 객체를 다시 mdl에서 사용하시는 것은 좋지 않습니다.

    tspModel에서 생성하신 방문지들을 잘못 생성하시게 되면, tspModel에서 생성된 방문지들은 mdl에서 적용시킨 제약에 영향을 받지 않을 수 있습니다.

    첨부된 파일에 새로운 함수를 만들어서 대처해 놓았습니다.

    그 밖에 여러가지 수정사항이 있습니다.

    첨부한 소스코드를 참고하시기 바랍니다.

    감사합니다.
    아이콘삭제
  • 김미이2006-11-22
    상세한 답변 너무 감사드립니다
    제가 너무 많은 시간을 빼앗은건 아닌지 모르겠네요
    너무 죄송하고 고맙습니다
    아이콘삭제
  • 임승빈2006-11-16
    안녕하세요.

    우선 소스와 관련된 데이터가 dispatcher 예제 문제 데이터인 것 같은데,

    소스에 데이터 읽는 부분 경로를 따라가도 저에게는 그 데이터가 없습니다.

    데이터를 첨부해 주시면 분석해 보도록 하겠습니다.

    감사합니다.

    아이콘삭제
  • 김미이2006-11-18
    너무너무 감사합니다
    Data를 첨부합니다
    부탁드리겠습니다
    그럼 안녕히 계세요
    아이콘삭제

댓글 입력