Matlab, fminunc зависает (т.е. не возвращается) - PullRequest
0 голосов
/ 30 августа 2018

У меня довольно большая программа, которая решает проблему оптимизации. Я использую fminunc для этой цели. Однако по какой-то причине, когда достигнуто максимальное количество итераций и функция должна возвращать ее, она буквально застревает. Я попытался следовать некоторым советам, в которых, по сути, используется вложенная функция, чтобы избежать динамического размещения и т. Д. (Я загружал из файла каждый раз, когда вызывалась функция cost).

Но, похоже, это не решает проблему.

Есть ли что-то более конкретное, о чем я должен знать? Как какая-то известная проблема, о которой я, возможно, сейчас не знаю.

Спасибо. (Дайте мне знать, какие подробности я могу опубликовать).

Дополнительная информация:

Выходной файл должен быть массивом 15876 двойных, ОЗУ 32 ГБ. Фактическая настройка:

option = optimoptions(@fminunc,...
        'Display','iter','GradObj','on','MaxIter',10,...
        'ObjectiveLimit',10e-10,'Algorithm','quasi-newton');

Я установил низкое количество итераций, просто чтобы проверить, возможно ли это так, количество итераций было проблемой, но, похоже, это не так. Вывод, который я получаю:

Solver stopped prematurely.

fminunc stopped because it exceeded the iteration limit,
options.MaxIterations = 10 (the selected value)

Но оно не возвращается.

...