【问题标题】:OptaPlanner- How to implement a Service Function Chain (SFC)?OptaPlanner-如何实现服务功能链(SFC)?
【发布时间】:2018-12-25 06:45:29
【问题描述】:
我需要使用 OptaPlanner 计划在一组服务器上放置一组虚拟化功能。我的功能需要以特定的预定义顺序执行,形成一个服务功能链。
例如,假设定义了 2 个链
- F1->F2
- F1->F2->F3
目标是将它们放置在一组服务器上,同时最大限度地降低成本(带宽、CPU、存储......成本)
我在 OptaPlanner 用户指南中看到的一组链式计划实体的示例包括旅行者推销员问题 (TSP) 和 VRP,但是在这些问题中,计划实体不需要按特定顺序进行计划。
我想知道是否有熟悉 OptaPlanner 的人可以给我任何有关如何操作的提示,如果有任何示例,如果您告诉我,我将不胜感激。
提前致谢。
【问题讨论】:
标签:
optaplanner
placement
planning
sfc
【解决方案1】:
如果给出了功能的顺序,如果计划的顺序不正确,你可以给它一个差的分数。
例如(伪规则)
rule "keepServiceFunctionChainSequence"
when
Functionality($chainId:chainId,$end:end, $orderPos:orderPos)
// find another entity in the same chain with a higher position in the order
// that starts earlier
Functionality(chainId==$chainId, orderPos>$orderPos, start.before($end), $orderPos2)
then
scoreHolder.addHardConstraintMatch(kcontext, $orderPos2-$orderPos);
end
如果您有很多功能要计划,并且您看到太多无用的移动,那么您可以自己采取一次移动整个链条并保持顺序的移动,这可能是明智之举。