模块化optaplanner基准配置

问题描述 投票:1回答:1

问题是:

有没有一种方法可以编写一个求解器配置文件,其中包含Optaplanner中其他xml文件中的配置部分插入?

说明:

我尝试使用部分完全不同的求解器配置(例如不同)执行一些相当复杂的基准测试运行>

由于XML具有DTD实体插入,我考虑过将复杂的配置模式模块化并在不同的集合中重用它们,但是不幸的是,Optaplanner在读取求解器配置文件时似乎不支持此功能。

java.lang.IllegalArgumentException: Unmarshalling of benchmarkConfigResource (path/to/my/benchmarkConfig.xml) fails..
...
---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.io.StreamException
cause-message       : 
class               : org.optaplanner.core.config.solver.SolverConfig
required-type       : org.optaplanner.core.config.solver.SolverConfig
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number         : 42
class[1]            : org.optaplanner.benchmark.config.SolverBenchmarkConfig
class[2]            : org.optaplanner.benchmark.config.PlannerBenchmarkConfig
version             : 1.4.10
-------------------------------
...

示例

想法是拥有一个类似这样的配置文件目录:

|--- benchmarkConfig.xml
|--- header.xml
|--- scoreDirectorFactory_1.xml
|--- scoreDirectorFactory_2.xml
|--- ...
|--- localSearch_tabuSearch.xml
|--- localSearch_hillClimber.xml
|--- ...

以及benchmarkConfig.xml的形式

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plannerBenchmark [
        <!ENTITY header SYSTEM "header.xml">
        <!ENTITY scoreDirectorFactory_1 SYSTEM "scoreDirectorFactory_1.xml">
        <!ENTITY scoreDirectorFactory_2 SYSTEM "scoreDirectorFactory_2.xml">
        <!ENTITY localSearch_tabuSearch SYSTEM "localSearch_tabuSearch.xml">
        <!ENTITY localSearch_hillClimber SYSTEM "localSearch_hillClimber.xml">
        ]>
<plannerBenchmark>
    ...
    <inheritedSolverBenchmark>
        ...

        <solver>
            &header;
        </solver>
    </inheritedSolverBenchmark>


    <solverBenchmark>
        <name>SDF1-TabuSearch</name>
        &scoreDirectorFactory_1;
        <localSearch>
            &localSearch_tabuSearch;
        </localSearch>
    </solverBenchmark>

    <solverBenchmark>
        <name>SDF1-TabuSearch-HillClimber</name>
        &scoreDirectorFactory_1;
        <localSearch>
            &localSearch_tabuSearch;
        </localSearch>
        <localSearch>
            &localSearch_hillClimber;
        </localSearch>
    </solverBenchmark>

    <solverBenchmark>
        <name>SDF1-HillClimber</name>
        &scoreDirectorFactory_1;
        <localSearch>
            &localSearch_hillClimber;
        </localSearch>
    </solverBenchmark>

    <solverBenchmark>
        <name>SDF2-TabuSearch</name>
        &scoreDirectorFactory_2;
        <localSearch>
            &localSearch_tabuSearch;
        </localSearch>
    </solverBenchmark>

    ...

</plannerBenchmark>

就像Optaplanner基准系统的使用一样强大,恕我直言。

问题是:有没有一种方法可以编写一个求解器配置文件,其中包含Optaplanner中其他xml文件中的配置部分插入?说明:我尝试执行一些......>

xml optaplanner
1个回答
0
投票

不支持直接,但鉴于:

  • ((如果使用了自由标记模板,则输出XML)
© www.soinside.com 2019 - 2024. All rights reserved.