Сохранение значений целевой функции при использовании Солвера, EXCEL - PullRequest
3 голосов
/ 28 ноября 2011

У меня есть проблема оптимизации, настроенная в Excel.Когда я оптимизирую (используя графический интерфейс), я получаю окончательное (оптимальное) значение целевой функции.Я вижу, что Excel вычисляет значения целевой функции для множества точек и выбирает оптимальную.Есть ли способ сохранить все значения целевой функции в некотором диапазоне в листе Excel.Было бы здорово, если бы я мог сделать это с помощью решающего графического интерфейса.Если нет, то решение на основе VBA тоже подойдет.

Спасибо.

1 Ответ

1 голос
/ 14 января 2012

Это можно сделать, но утомительно вручную.В Excel / Solver выберите Параметры в диалоговом окне Параметры солвера. ( Данные-> Решатель-> Параметры в Excel) Выберите Показать итерацииРезультаты флажок.Когда вы сделаете это, Excel Solver будет делать паузу после каждой итерации и обновлять ячейки текущими значениями переменных.

Теперь, когда вы запускаете модель, нажимая « Solve », Excel будетпауза на каждой промежуточной итерации.Решатель рассматривает каждый промежуточный шаг как « Сценарий ».Вы можете сохранить каждый из них, дав ему имя в диалоговом окне Сценарий , которое появляется после каждой итерации.(В текстовом поле введите что-то логичное, например, i1, i2, i3 ...)

После того, как решатель будет сделан, вы можете получить доступ к «Менеджеру сценариев» Excel-> Параметры-> Сценарии. Вы увидите все сценарии, которые вы сохранили в списке. Чтобы перевести их в именованный диапазон по вашему желанию, нажмите кнопку « Сводка » и в диалоговом окне выберите «* 1023».* Отчет сводной таблицы сценариев . "Это отобразит все значения промежуточной функции цели в хорошей сводной таблице для анализа.

Несколько ограничений, о которых следует помнить:1. Включение опции « Показать результаты итерации » серьезно замедляет решение 2. Если ваш LP даже среднего размера, у вас будет огромное количество итераций. Ручная запись сценариев не будет реально осуществимойОднако вы можете «сэмплировать» несколько итераций, нажав кнопку ESC , сохранив сценарий и продолжив.

...