【问题标题】:Is it possible to extend the Solution class?是否可以扩展解决方案类?
【发布时间】:2018-11-29 23:16:06
【问题描述】:

我收到一条错误消息,提示“org.moeaframework.core.Solution 无法转换为 SensorsSolution”。 SensorsSolution 是一个扩展解决方案的类。 教育部是否允许这样做?这是推荐的做法吗?

我扩展它的原因是因为我需要每个人来存储有关传感器位置的信息。 在评估了此类的属性 HashMap 的使用并意识到每次评估后它的数据都会被擦除后,我认为这是最好的选择。但现在我正面临这个问题。

以下是错误行对应的代码:

@Override
public void evaluate(Solution solution) {
    System.out.println("class= "+solution.getClass()); //Returning "class SensorsSolution"
    SensorsSolution sensorsSolution = (SensorsSolution) solution;
    ...
}

谢谢。

【问题讨论】:

  • 没有任何代码很难提供帮助。但是,您似乎尝试将解决方案或派生类(not SensorSolution 转换为 SensorSolution )。我建议您打印出您尝试投射的对象的完整类名,
  • 好的,我将添加一些代码和类名的输出。谢谢!
  • @Maksim 完成了!
  • 你能把你的代码改成System.out.println("class= "+solution.getClass().getCanonicalName())吗?因为可能有一个类同名但包不同...

标签: java evolutionary-algorithm moea-framework


【解决方案1】:

听起来您想要保存有关每个函数评估的额外信息,即计算但不包含在目标或约束中的信息。这是 MOEA 用户经常提出的要求。您正在修改evaluate 方法以执行某事,但我怀疑您最好将额外信息写入 SQLite 数据库、HDF5 文件甚至文本文件.通常,您希望在运行结束时查看这些信息 - 在运行期间它不会对您有太大帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2010-11-17
    • 2016-06-04
    • 2016-03-01
    • 2011-08-09
    相关资源
    最近更新 更多