SCIP - запускать (почти) один и тот же LP на разных экземплярах - PullRequest
2 голосов
/ 09 марта 2020

У меня есть LP, сформулированный на языке моделирования Zimpl, который я хочу запустить во многих экземплярах, которые находятся в разных файлах. Кроме того, я хочу изменить один параметр в этом LP. Для одного вызова мой файл test.zpl выглядит так:

param FILE := "file1.dat"
param BOUND := 42

[test_body: Rest of LP]

Теперь я хочу изменить эти два параметра. SCIP имеет опцию -c, чтобы выполнить некоторую команду. Но я не могу найти, какой командой добиться этого. Все обнаруженные мной изменения параметров влияют на алгоритм, а не на данные.

Команда change для изменения проблемы, по-видимому, не позволяет новые параметры / переменные.

В конце концов, я ожидаю решение выглядит примерно так:

scip -c "[set my parameters]; read test_body.zpl; optimize; quit"

Как мне установить эти параметры проблемы?

1 Ответ

1 голос
/ 10 марта 2020

Мне не известны какие-либо команды, которые поддерживают изменение параметров модели, как вы sh. Однако, если вы не жестко закодировали значение param BOUND в файле .zpl (вместо этого переместите значение в файл .dat и используйте правильную команду read в модели), вы можете выполнить следует:

  1. Сделайте копию вашего файла данных таким образом, чтобы каждая копия содержала отдельное значение param BOUND
  2. Вызовите scip.exe отдельно для каждого файла данных (вы также можете использовать простой пакетный скрипт)
...