我一直关注Optaplanner输出的几个问题,包括N Queens,TSP和Project Job Planning。 TSP和项目工作计划的问题陈述似乎是易于理解的文本文件。 Optaplanner生成的解决方案似乎总是采用非常长,有点模糊的XML文件的形式。
虽然我稍微使用了XML,但我通常使用很容易理解的非常短的XML文件。例如,Apache Hadoop使用一些非常容易理解的小型XML文件。 Optaplanner XML似乎比Apache XML复杂得多。
我认为该产品的大多数用户不会手动解析每个XML输出。可能他们中的许多人使用一些定制的XML阅读程序。
Optaplanner文档似乎没有包含有关如何读取XML输出的任何提示。用户是否应该弄清楚XML只是在看它,或者我没有阅读一些文档来解释如何解释输出?
答案 0 :(得分:2)
OptaPlanner本身不需要XML输入或输出:它适用于普通的旧java类来表示数据集。
在optaplanner-examples(和optaplanner-webexamples)中,我们选择通过XML文件保存数据集,但我们也可能选择了TXT文件,关系数据库或hadoop集群。这些XML文件很冗长,因为它们是java类的XStream镜像(因此没有特殊的映射)。
许多optaplanner示例都是基于官方研究竞赛,它们有自己的数据格式(通常是TXT)。这些往往不那么冗长。您可以在导入/导出文件夹中找到它们。 Importer和Exporter类将这样的TXT文件转换为java类。另请查看ProblemIO
实现。
答案 1 :(得分:1)
首先请注意,我不是一个熟练的程序员。
尽管如此,我还是使用了Employee Rostering的导出文件并使用了+ -50 Python行(8小时编程)写了一个创建的转换脚本 a:员工ID与日期的(2D)矩阵,Shift类型为值。
如果这种转换可以成为标准的一部分,那将是很好的 可下载的例子,因为这是一个gazilion人正在寻找的!
如果最重要的话,我认为输入可以更容易接口 Optaplanner可以在那里赢得很多地形!
ps我愿意帮助开发这样的In-&输出工具。
pps我确实需要研究Java内存问题(我的问题有:90天, 12名员工,2个技能,3个合同,8个模式,<50个请求)。