lev*_*and 5 optimization rule-engine constraint-programming drools-planner optaplanner
我正在阅读文档中的矛盾内容.
一方面,这段经文似乎表明连续的计划变量是可能的:
计划值范围是计划变量的可能计划值的集合.该集合可以是离散的(例如,行1,2,3或4)或连续的(例如,在0.0和1.0之间的任何双倍).
另一方面,在定义计划变量时,必须ValueRangeProvider在字段上指定要用于值集的注释:
Solution实现具有返回Collection的方法.该集合中的任何值都是此计划变量的可能计划值.
这两个片段都在文档的相同部分(http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/#d0e2518)
那么,这是什么?我可以使用full double作为我的计划变量,还是需要将其范围限制为特定值Collection?
看看实际的算法,我没有看到任何实际上适合优化连续变量的东西,所以我怀疑它是否可能,但是如果澄清并明确表示它会很好.
我们正在努力全力支持连续变量.但目前(在6.0.0.CR2中)它还没有得到很好的支持.
值范围确实可以是连续范围,但实际使用它们的管道还没有.我们最近取得了很好的进展,请参阅https://issues.jboss.org/browse/PLANNER-160.
以下是它的工作原理:您将能够@ValueRangeProvider在返回a ValueRange(而不是a Collection)的方法上使用注释.
一个ValueRange将是一个接口支持选择一个随机值,得到一个大小,...外的开箱,我们会支持IntValueRange,DoubleValueRange,BigDecimalValueRange,...(实现细节:我们将复古符合这些集合返回方法成a CollectionValueRange.)
然后ValueSelector实现将直接使用它.
至于优化连续变量的适用性: