|
Pers.narod.ru. Обучение. Excel. Поиск решения в Excel и его ошибки |
Классическая задача оптимизации легко решается в Excel с помощью инструмента "Поиск решения", приведём пример такой задачи с единственным неизвестным параметром:
Имеетcя квадратный лист жести со стороной L. По его углам вырезаются 4 одинаковых квадрата со стороной А, затем полученная крестообразная заготовка сгибается в прямоугольную коробку без верхней крышки, а швы завариваются. Какой должна быть величина А, чтобы объем получившейся коробки V был максимальным? При решении принять L=1.
Скриншот решения с графической иллюстрацией правильности полученного ответа
(для иллюстрации построим зависимость V(a) для a=0,0.05,...,0.5):

На всякий случай покажем также окно "Поиск решения", в котором выполнялась задача (Excel XP/2003, в 2007 и выше - без отличий):

Немного изменим задачу так, чтобы заготовка стала прямоугольной, а отрезаемые части могли иметь неодинаковые размеры:

Теперь целевая функция имеет вид (W-2*LW)*(H-2*LH)*min(LW,LH) -> min, можете согнуть вчетверо
листик бумаги A4, отрезать произвольный прямоугольный уголок и проверить :) Кстати, давайте и укажем в качестве
H и W размеры листа бумаги 297 и 210 мм. Ограничения также понятны - LW, LH >0, LW <= W/2, LH <=H/2.
Вот эта модель на листе, вместе с графиком зависисмости объёма V от возможных пар значений (LW,LH):

Вроде бы, никаких седловидных функций или чего-то подобного не наблюдается, решение должно быть единственным, как и в предыдущем случае.
Увы эта задача в Excel (хоть XP/2003, хоть 2007) нормально уже не решается - практически любую
допустимую начальную точку (LW,LH) Excel уже считает решением:

а все встроенные отчёты показывают 0 шагов:

Лишь с некоторых начальных точек, близких с решению (например, с точки LW=50, LH=50), находится нечто правдоподобное:

Можно предположить, что проблема - функция МИН внутри целевой функции, "сбивающая" XLA-приложение,
решающее задачу оптимизации. Действительно, поменяв целевую функцию на
=(B1-2*B3)*(B2-2*B4)*B3то есть,
(W-2*LW)*(H-2*LH)*LW -> min, с дополнительным
ограничением $B$4>=$B$3 (LH>=LW), позволяющим избежать "ухода" LH в 0, имеем решение
с любой допустимой начальной точки:

Ну или у кого есть версии лучше - пишите :)
Скачать этот пример в Excel (64 Кб)
|
|