Algorithm 什么';这是解决复杂配置和参数化问题的好算法吗?

Algorithm 什么';这是解决复杂配置和参数化问题的好算法吗?,algorithm,data-structures,configuration,graph,Algorithm,Data Structures,Configuration,Graph,我正在使用的应用程序需要复杂的参数化和配置,以便为自定义零件建模。不同参数之间存在各种相互依赖关系,例如设置参数“A”会使“B”和“C”的某些值无效,或为参数“D”的值添加其他约束 目前,这是通过将所有参数存储在查找表中并在其上运行规则来解决的。这些规则是用XML手工编写的,被加载并转换成某种中间格式,用于规则引擎。每次参数更改时,都会重新运行所有规则 这同时非常缓慢且容易出错 我觉得使用基于(DAG)的方法可能是有益的,在这种方法中,我们只能对图的子集进行更新 这是个好主意吗?你知道更好的方法

我正在使用的应用程序需要复杂的参数化和配置,以便为自定义零件建模。不同参数之间存在各种相互依赖关系,例如设置参数“A”会使“B”和“C”的某些值无效,或为参数“D”的值添加其他约束

目前,这是通过将所有参数存储在查找表中并在其上运行规则来解决的。这些规则是用XML手工编写的,被加载并转换成某种中间格式,用于规则引擎。每次参数更改时,都会重新运行所有规则

这同时非常缓慢且容易出错

我觉得使用基于(DAG)的方法可能是有益的,在这种方法中,我们只能对图的子集进行更新

这是个好主意吗?你知道更好的方法吗?如果你有类似问题的经验,你是如何解决的

编辑:我试图实现一种设计,在这种设计中,只有参数的依赖子集必须在更改时更新。目前,规则将在每次更改时全局重新运行。参数设置为默认值,但可由用户更改。根据参数的值,其他参数的默认值可能不同

这是个好主意吗

对。您可以创建DAG,进行DFS遍历,并计算出依赖关系链

你知道更好的方法吗? 如果你有类似问题的经验,你是如何解决的

据我所知,有一个复杂的依赖结构可以用DAG建模。如果任何一个发生更改,则需要更改从属组件。编译器多年来一直在这样做。你可能想看看他们做了什么


另一种方法可以通过以下方式建模。在这里,每个对象都公开了一种通知观察者任何更改的方法。依赖对象订阅通知。当发生改变对象状态的事件时,它会调用依赖侦听器。

问题是否合理平滑?如果是这样的话,那么就有可能使用遗传算法向您的目标进化出一组参数集。气体不能很好地处理非光滑问题,或者目标不能简单地合理指定的情况。您需要首先检查。这些参数不必进行演变,它们是用户指定的,在某些约束条件下。问题是如何在不重新运行整个参数集的规则的情况下更新依赖值。观察者模式用于同一应用程序中的类似情况(但不在本部分)。我们遇到了调试非常困难的问题,因为许多操作都会触发一连串的事件。这是一个很大的遗留代码库,我只是开始工作,但其他开发人员告诉我,他们认为当前版本是次优的。我想知道你的答案,但我想把这个问题留给其他人考虑。