Неизвестное ключевое слово mumps_mem_percent

Я использую Pyomo для моделирования проблемы оптимизации. Я получаю сообщение об ошибке, если пытаюсь установить значение параметра «mumps_mem_percent».

opt = pyo.SolverFactory('ipopt')
opt.options['mumps_mem_percent'] = 10e3
opt.solve(mdl)

RROR: Решатель (ipopt) вернул ненулевой код возврата (1) ОШИБКА: Журнал решателя: Ipopt 3.11.1: Неизвестное ключевое слово «mumps_mem_percent»

Я делаю что-то неправильно? Я проверил параметры IPOPT и нашел этот вариант. Какие-либо предложения




Ответы (1)


Я думаю, что вам нужно создать файл ipopt.opt, в котором указаны желаемые параметры, и поместить его в свой рабочий каталог. Например, в вашем случае что-то вроде этого может сработать (найдено решение здесь, но не тестировал):

with pyo.SolverFactory("ipopt") as opt:
    opt.options.option_file_name = "ipopt.opt"
    with open("ipopt.opt", "w") as f:
        f.write("mumps_mem_percent 10e3\n")
    opt.solve(mdl)

Более подробную информацию о файлах опций для IPOPT можно найти здесь: https://coin-or.github.io/Ipopt/OPTIONS.html

Кроме того, кто-то на Github также упомянул, что использование префикса «OF_» в ваших параметрах может работать.

person gmavrom    schedule 27.03.2020
comment
Спасибо @gmavrom за ваш ответ. Но я использую IPOPT с MUMPS для решения проблем оптимизации, как и ожидалось. Проблема возникает, если я пытался изменить некоторые параметры MUMPS, подобные упомянутому в посте. - person TSobhy; 28.03.2020
comment
Привет, @TamerIbrahim, я отредактировал свой ответ кое-чем, что кажется немного более правдоподобным решением. Посмотрите и дайте мне знать, работает ли это! - person gmavrom; 28.03.2020