Tabu Search实现考试排程时重复触发同一约束失败求助
考试排程系统Tabu Search求解异常问题
我实现了类似考试排程的系统,Exam类与Rooms、Teachers为两个ManyToMany关联。采用Tabu Search测试两门课程的小案例时,尽管其他教室和教师仍有空余,求解器始终触发同一约束失败,且故障始终针对相同课程。即使在求解前清空所有数据,似乎仍存在解决方案缓存的情况。此外,查看输出日志发现存在比最终方案得分更优的解,但Tabu Search未选用该方案。请问是否有开发者遇到过类似情况?
求解器配置代码
<solver> <!--<moveThreadCount>AUTO</moveThreadCount>--><!-- To solve faster by saturating multiple CPU cores --> <!--moveThreadCount>AUTO</moveThreadCount--> <solutionClass>org.acme.timetabling.domain.ExameTable</solutionClass> <entityClass>org.acme.timetabling.domain.Exame</entityClass> <entityClass>org.acme.timetabling.domain.docente.Docente_Assignment</entityClass> <entityClass>org.acme.timetabling.domain.sala.Sala_Assignment</entityClass> <scoreDirectorFactory> <constraintProviderClass>org.acme.timetabling.solver.ExameTableConstraintProvider</constraintProviderClass> <initializingScoreTrend>ONLY_DOWN</initializingScoreTrend> <!--<scoreDrl>org/acme/timetabling/solver/ExameTableDrolls.drl</scoreDrl>--> </scoreDirectorFactory> <!--<termination>--> <!--<minutesSpentLimit>1</minutesSpentLimit>--> <!--</termination>--> <!-- Tabu Search performs much better than Late Acceptance (default algo) on this use case --> <!-- <constructionHeuristic>--> <!-- <constructionHeuristicType>FIRST_FIT</constructionHeuristicType>--> <!-- </constructionHeuristic>--> <constructionHeuristic> <queuedEntityPlacer> <entitySelector id="placerEntitySelector"> <cacheType>PHASE</cacheType> <entityClass>org.acme.timetabling.domain.Exame</entityClass> </entitySelector> <changeMoveSelector> <entitySelector mimicSelectorRef="placerEntitySelector"/> </changeMoveSelector> </queuedEntityPlacer> </constructionHeuristic> <localSearch><localSearchType>TABU_SEARCH</localSearchType></localSearch> </solver>
内容的提问来源于stack exchange,提问作者Ricardo Miguel
相关产品推荐
相关产品推荐

