基于自定义表达式树的变量最值求解:寻求现有方案外的可行方法
求表达式树中变量的最值
我有一款可编译为Expression Tree的简单语言,支持数学运算、变量定义与控制流,还能读取外部输入(同一评估过程中多次调用返回固定值)。示例脚本如下:
if readInput() < 10 then x = 2 * readInput() else x = 0 end
我的需求是:给定输入域(如[0, 1000]),计算变量x的最大值与最小值。
我已考虑的解决方案:
- 将输入域边界值赋值给
readInput()并评估x,该方法在诸多场景下失效(如上述示例中,输入0和1000时x均为0); - 采用数值方法计算最值,该方法计算量大,且无法保证找到最值(存在不连续情况时尤为明显);
- 转换表达式树并借助符号数学库计算边界。
请问是否存在我遗漏的其他可行方案?
编辑说明:
根据评论建议,本问题已同步发布至计算机科学领域的Stack Exchange社区。
内容的提问来源于Stack Exchange,提问作者apocalypsis
相关产品推荐
相关产品推荐

