Загрузка реальных задач XML в OptaPlanner 6.1.0

Я немного изучил фреймворк OptaPlanner и обнаружил, что пример CloudBalancingHelloWorld довольно хорошо подходит для задачи, с которой я столкнулся — только он загружает фальшивый сгенерированный набор задач, и я хотел бы создать свой собственный файл XML и загрузить его. вместо этого ... но документы по этому вопросу кажутся немного скудными, и я не вижу примеров.

Существующий код в CloudBalancingHellowWorld.java:

// Load a problem with 400 computers and 1200 processes
// This gets replaced with a class that loads a *real* problem - from a DB for example.
CloudBalance unsolvedCloudBalance = new CloudBalancingGenerator().createCloudBalance(400, 1200);

И я хотел бы иметь возможность программно загружать описание проблемы в формате XML. Есть ли какие-нибудь примеры того, как это делается, или документы, которые можно просмотреть, чтобы получить вдохновение?


person ProfVersaggi    schedule 03.09.2014    source источник


Ответы (1)


Вся сериализация набора данных из XML и в XML является частью примеров optaplanner: сам OptaPlanner не предоставляет и не требует какого-либо формата сериализации. При этом optaplanner-examples включает следующие форматы сериализации:

  • Каждый пример: XStream формат XML в data каталогах unsolved и solved. Формат определяется аннотациями XStream (@XStreamAlias и т. д.) в классах предметной области. В некоторых случаях формат XML слишком многословен, что приводит к OutOfMemoryError, например, для больших наборов данных MachineReassignment B.
  • Большинство примеров: Формат TXT, специфичный для соревнований, в data каталогах import и export. Формат определяется конкурсом (см. документы). В графическом интерфейсе примеров нажмите кнопку «Импорт», чтобы загрузить их.
person Geoffrey De Smet    schedule 03.09.2014
comment
Джеффри. В графическом интерфейсе примеров я достаточно хорошо могу загружать XML-файлы задач. Я хочу найти конкретный код, который читает этот конкретный файл XML, когда я его загружаю. Обнаружение этого является нетривиальной задачей. Как только я это сделаю, я смогу перенести его в формат HelloWorld и использовать там — это моя текущая цель. - person ProfVersaggi; 03.09.2014
comment
Взгляните на SolutionDao и XStreamSolutionDao в примерах optaplanner - person Geoffrey De Smet; 03.09.2014
comment
Я нашел их в файле SolutionBusiness.Java за час до того, как вы написали свой ответ. Я поэкспериментирую с ними и сообщу, если у меня возникнут проблемы. - person ProfVersaggi; 03.09.2014
comment
Я нашел их, но вместо того, чтобы писать с нуля поддержку файлового ввода-вывода с помощью import java.io.File, хорошие ребята из OptaPlanner, вероятно, что-то придумали, не так ли? Что бы это было? Вот моя строка чтения для набора проблемных файлов: CloudBalance unsolvedCloudBalance = (CloudBalance) solutionDao.readSolution(file); Вопрос в том, как получить файл из OptaPlanner? - person ProfVersaggi; 03.09.2014