Я хотел бы решить модель с динамическими аргументами во время выполнения на Java. Моя проблема написана в MiniZinc. С терминала я могу решить модель, вызвав следующие команды:
mzn2fzn model.mzn model_data.dzn (this produces model.fzn file)
fzn-gecode model.fzn (actually solves the model)
В основном это два шага: сначала мне нужно скомпилировать модель minizinc в формат flatzinc при предоставлении файла данных, а затем мне нужно запустить сам gecode на модели flatzinc.
Конечно, я могу выполнить эти шаги, вызвав внешний процесс (используя ProcessBuilder в Java или подпроцесс «like» в python). Но хотелось бы знать, есть ли способ лучше. В частности, я бы не хотел перекомпилировать мою модель в flatzinc для каждого звонка.
Есть ли альтернативы тому, как я пытаюсь вызвать gecode?
Спасибо!