2

我一直在研究 Optaplanner 输出的几个问题,包括 N Queens、TSP 和 Project Job Planning。TSP 和项目工作计划的问题陈述似乎是易于理解的文本文件。Optaplanner 生成的解决方案似乎总是采用非常长的、有些晦涩的 XML 文件的形式。

虽然我使用了一点 XML,但我通常使用很短且易于理解的 XML 文件。例如,Apache Hadoop 使用了一些非常容易理解的小型 XML 文件。Optaplanner XML 似乎比 Apache XML 复杂得多。

我想这个产品的大多数用户不会手动解析每个 XML 输出。可能他们中的许多人使用一些定制的 XML 阅读程序。

Optaplanner 文档似乎没有包含有关如何读取 XML 输出的任何提示。用户是否应该只是在查看 XML 时才知道它,还是我没有阅读一些解释如何解释输出的文档?

4

2 回答 2

2

OptaPlanner 本身不需要 XML 输入或输出:它适用于普通的旧 java 类来表示数据集。

在 optaplanner-examples(和 optaplanner-webexamples)中,我们选择通过 XML 文件来持久化数据集,但我们也可以选择 TXT 文件、关系数据库或 hadoop 集群。这些 XML 文件很冗长,因为它们是 Java 类的 XStream 镜像(因此没有特殊映射)。

许多 optaplanner 示例都基于官方研究竞赛,这些竞赛具有自己的数据格式(通常是 TXT)。这些通常不那么冗长。您可以在导入/导出文件夹中找到它们。Importer 和 Exporter 类将此类 TXT 文件转换为 java 类。还要寻找ProblemIO实现。

在 6.1.0.Beta1 的新章节中的手册中了解更多信息(尽管旧版本的行为方式相同)。

集成概述

于 2014-03-12T08:54:16.503 回答
1

首先请注意,我不是一个熟练的程序员。

尽管如此,我还是使用了 Employee Rostering 的导出文件,并使用 +-50 行 Python(8 小时编程)编写了一个转换脚本,该脚本创建了一个:(2D)员工 ID 与日期矩阵,以 Shift 类型为值。

如果可以将这种转换作为标准可下载示例的一部分,那就太好了,因为这是无数人正在寻找的!

如果最重要的是,输入可以变得更容易界面我认为 Optaplanner 可以在那里赢得很多地形!

ps 我愿意帮助开发这样的输入和输出工具。

pps 我确实需要研究 Java 内存问题(我的问题有:90 天,12 名员工,2 项技能,3 份合同,8 种模式,<50 个请求)。

于 2014-04-02T15:56:15.590 回答