我有一些困难,造成我的限制之一。我问题的结构是这样的
class ToolFact:
id : str
type : str
@planning_entity
class SubObjectFact:
id : str
tool : ToolFact
@planning_entity
class ObjectFact:
id : str
sub_objects : list[SubObjectFact]我想要一个约束来做这样的事情
for each ObjectFact -> object
for each SubOjectFact in object.sub_object -> sub_object
penalize if sub_object.tool is None 但我想不出用constraint_factory做这件事的方法。有人知道怎么做吗?
发布于 2022-06-10 14:35:59
这是如何使用约束流来实现的:
from java.util import ArrayList
def penalize_subs_without_tools(constraint_factory: ConstraintFactory):
return constraint_factory.forEach(get_class(ObjectFact)) \
.flattenLast(lambda fact: ArrayList(fact.sub_objects)) \
.filter(lambda sub_object: sub_object.tool is None) \
.penalize("SubObjectFact without tool", HardSoftScore.ONE_HARD)我将尝试制作它,这样在以后的版本中就不需要ArrayList了。
https://stackoverflow.com/questions/72575070
复制相似问题