О2.ЗаписатьМодель
Сериализует данные модели и записывает их во внешний источник: файл, поток или объект записи JSON. Сохранённая модель может быть прочитана позднее и передана решателю отдельно от процесса её построения.
Синтаксис
О2.ЗаписатьМодель(Модель, Назначение, Параметры)
Параметры
- Модель — источник данных модели. Допустимые типы:
- Строка — полный путь к файлу, содержащему данные модели;
- ДвоичныеДанные — двоичные данные модели;
- Поток, ФайловыйПоток, ПотокВПамяти — поток, содержащий данные модели;
- ОбработкаОбъект — объект модели, созданный методом О2.СоздатьМодель. Допустимы все типы:
О2_CP_SAT_Модель,О2_LP_Модель,О2_IP_Модель,О2_MIP_Модель,О2_Knapsack_Модель,О2_MaxFlow_Модель,О2_MinCostFlow_Модель,О2_Routing_Модель.
- Назначение — приёмник данных. Допустимые типы:
- Строка — полный путь к файлу для записи данных;
- Поток, ФайловыйПоток, ПотокВПамяти — выходной поток;
- ЗаписьJSON — открытый объект записи JSON.
- Параметры — Структура, Неопределено — Дополнительные параметры записи. Зарезервированы для будущих расширений — при обычном использовании аргумент опускают.
Возвращаемое значение
Метод ничего не возвращает.
Описание
Сохранённая модель представляет собой самодостаточный набор данных: все переменные, ограничения, целевые функции и параметры модели включены в результат. Последующая передача сохранённых данных методу О2.РешитьМодель или консольной утилите решателя приводит к тому же результату, что и непосредственный вызов РешитьМодель для объекта модели.
Сценарии применения:
- Асинхронные вычисления. Сохранение модели в файл, передача файла на отдельный сервер, решение внешним процессом, возврат файла решения обратно в 1С (см. Использование консольной утилиты).
- Повторное использование. Сохранённую модель можно решать многократно с разными настройками решателя, не перестраивая её в 1С.
- Диагностика. Сохранённый файл модели удобно прикладывать к обращениям в поддержку или использовать для воспроизведения ошибок решения.
Для совместимости с консольной утилитой используйте расширение .o2m для файлов модели.
Пример
Запись модели в файл:
О2.ЗаписатьМодель(Модель, "C:\tmp\model.o2m");
Запись модели в поток в памяти и получение двоичных данных:
Поток = Новый ПотокВПамяти();
О2.ЗаписатьМодель(Модель, Поток);
ДанныеМодели = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Цепочка запись → решение → чтение:
О2.ЗаписатьМодель(Модель, "C:\tmp\model.o2m");
// Внешний процесс решает модель и сохраняет решение в C:\tmp\solution.o2s
Решение = О2.ЗагрузитьРешение("C:\tmp\solution.o2s");
См. также
- СоздатьМодель — создание модели;
- РешитьМодель — поиск решения;
- ЗагрузитьРешение — чтение сохранённого решения;
- Сценарии использования — описание сценария с внешним решателем.