Drools Planner--solver配置(第2.1.4章节)

35 篇文章 0 订阅
15 篇文章 0 订阅

第一章 Drools Planner--solver配置(第2.1.4章节)

版本:5.5.0.Final
2.1 云均衡教程
2.1.1 问题陈述
2.1.2 域模型图
2.1.3 主要方法
2.1.4 solver配置

查看solver配置信息:

案例2.2. cloudBalancingSolverConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<solver>
<!--<environmentMode>DEBUG</environmentMode>-->
<!-- Domain model configuration -->
<s o lutionClass>org.drools.planner.examples.cloudbalancing.domain.CloudBalance</
solutionClass>
<plannin gEntity Class>org.drools.planner.examples.cloudbalancing.domain.CloudProcess</
planningEntityClass>
<!-- Score configuration -->
<scoreDirectorFactory>
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
cloudbalancing.solver.score.Clo udBalancingSimpleScoreCalculator</
simpleScoreCalculatorClass>
<!--<scoreDrl>/org/drools/planner/examples/cloudbalancing/solver/
cloudBalancingScoreRules.drl</scoreDrl>-->
</scoreDirectorFactory>
<!-- Optimization algorithms configuration -->
<termination>
<maximumSecondsSpend>120</maximumSecondsSpend>
</termination>
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
<constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</
constructionHeuristicPickEarlyType>
</constructionHeuristic>
<localSearch>
<acceptor>
<planningEntityTabuSize>7</planningEntityTabuSize>
</acceptor>
<forager>
<minimalAcceptedSelection>1000</minimalAcceptedSelection>
</forager>
</localSearch>
</solver>




solver的配置包含三个部分:
a.Domain model configuration(域模型配置): planner如何改变?我们需要让Planner意识到我们的域classes:
<sol uti onClass>org.drools.planner.examples.cloudbalancing.domain.CloudBalance</
solutionClass>
<planningE ntityClas s>org.drools.planner.examples.cloudbalancing.domain.CloudProcess</
planningEntityClass>

     b.Score configuration(得分配置):planner如何优化planning变量?我们使用一个HardAndSoftScore,需要有硬软约束。但是在我们的商业需求上,我们也要告诉Planner如何去计算这样的积分。向下看,我们观察两个备选方案的计算分数:一是使用简单java实现,一是使用Drools DRL。
<scoreDirectorFactory>
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
solver.score.CloudBa lancingSimpleScoreCalculator</
simpleScoreCalculatorClass>
<!--<scoreDrl>/org/drools/planner/examples/cloudbalancing/solver/
cloudBalancingScoreRules.drl</scoreDrl>-->
</scoreDirectorFactory>

c.优化算法配置:Planner咋样优化?现在不要担心:这儿是一个很好的默认配置,适用于大多数planning问题。已经超越了人类的规划和内部的实现。使用Planner标准的共举办(toolkit),你可以对其进行调整,以获更好的结果。
<termination>
<maximumSecondsSpend>120</maximumSecondsSpend>
</termination>
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT_DECREASING</
constructionHeuristicType>
<co ns tructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</
constructionHeuristicPickEarlyType>
</constructionHeuristic>
<localSearch>
<acceptor>
<planningEntityTabuSize>7</planningEntityTabuSize>
</acceptor>
<forager>
<minimalAcceptedSelection>1000</minimalAcceptedSelection>
</forager>
</localSearch>




让我们测试域模型class和积分配置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值