2016-09-27 2 views
0

OptaPlanner 라이브러리를 배우고 있습니다. 매우 간단한 테스트가 잘 작동하는 것 같습니다. 내 XML 구성에서 지정한대로 계획 실행이 20 초 후에 종료됩니다.constructionHuristic 구성을 추가하면 OptaPlanner가 즉시 종료됩니다.

그때

<constructionHeuristic> 
<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType> 
</constructionHeuristic> 

을 추가하고 계획도 하드 제약을 나누기 아주 나쁜 결과를 즉시 종료합니다.

건설 추론이 자동으로 종료되므로 특히 건설 휴리스틱 단계 의 종료를 구성 할 필요는 일반적으로 없다 :

manual에서 나는 참조하십시오.

전체 계획 실행과 관련이 있습니까? 그렇다면 종료해야하는 이유는 무엇입니까? 나는 건설의 포인트를 생각했다. 재능은 좋은 시작 위치를 건설하는 것인데 다음에 기획을 시작한다. 그건 내가 바라는 것이 아니다.

내가 누락 된 항목이 있습니까? 조기 종료의 이유는 무엇입니까?

+0

무엇'DEBUG' 로그 상태는 무엇입니까? –

답변

1

최적화 알고리즘 구성은 선택 사항입니다. 즉, <constructionHeuristic>이없고 <localSearch>이없는 경우 OptaPlanner는 적절한 기본 구성을 사용합니다 (하나의 Construction Heuristic 단계와 하나의 Local Search 단계로 구성됩니다). 따라서 계획이 실행되고 알고리즘없이 간단한 테스트에서 결과를 얻을 수 있습니다 단계가 구성됨

<constructionHeuristic>을 직접 추가하면 OptaPlanner는 더 이상 기본 구성을 사용하지 않습니다.이 시점에서 First Fit Decreasing 알고리즘을 실행하는 단일 Construction Heuristic 단계가 구성되었습니다.

자동 구성 휴리스틱 종단은이 단계가 모든 ent 계획 변수가 초기화됩니다. 따라서이 단계에서는 <termination>을 구성 할 필요가 없습니다.

지금해야 할 일은 <constructionHeuristic> 단계 다음에 <localSearch> 단계를 추가하고 지역 검색 알고리즘 중 일부 (예 : 언덕 등반)의 기본 구성으로 시작하는 것입니다. 구성 예제는 로컬 검색 장을 참조하십시오. 그래서 예를 들어

:

<?xml version="1.0" encoding="UTF-8"?> 
<solver> 
    <!-- Define the model --> 
    <scanAnnotatedClasses/> 

    <!-- Define the score function --> 
    <scoreDirectorFactory> 
    ... 
    </scoreDirectorFactory> 

    <!-- Configure solver (global) termination --> 
    <termination> 
    <secondsSpentLimit>20</secondsSpentLimit> 
    </termination> 

    <!-- Configure the optimization algorithms (optional) --> 
    <constructionHeuristic> 
    <constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType> 
    </constructionHeuristic> 
    <localSearch> 
    <localSearchType>HILL_CLIMBING</localSearchType> 
    <acceptor> 
     <acceptorType>HILL_CLIMBING</acceptorType> 
    </acceptor> 
    <forager> 
     <acceptedCountLimit>1</acceptedCountLimit> 
    </forager> 

    <!-- You can also configure phase termination --> 
    <termination> 
     <stepCountLimit>100</stepCountLimit> 
    </termination> 
    </localSearch> 
</solver> 
관련 문제