Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
В.И.Воловач. УМКД по дисц. Теория принятия реше...doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
19.53 Mб
Скачать

2.2.8. Решение задачи о назначении средствами Microsoft Excel

Рассмотрим пример решения задачи о назначениях. Четверо рабочих могут выполнять четыре вида работ. Стоимости сi, выполнения i-ым рабочим j-ой работы приведены в ячейках диапазона A1:D4 (рис. 2.13).

Рис. 2.13.

В этой таблице строки соответствуют рабочим, а столбцы – работам. Необходимо составить план выполнения работ так, чтобы все работы были выполнены, каждый рабочий был загружен только на одной работе, а суммарная стоимость выполнения всех работ была минимальной. Отметим, что данная задача является сбалансированной, т. е. число работ совпадает с числом рабочих. Если задача не сбалансирована, то перед началом решения ее необходимо сбалансировать, введя недостающее число фиктивных строчек или столбцов с достаточно большими штрафными стоимостями работ.

Для решения этой задачи с помощью средства поиска решений отведем под неизвестные диапазон ячеек F2:I5. В ячейку J1 введем целевую функцию

=СУММПРОИЗВ (F2:I5;A1: D4)

вычисляющую стоимость работ. Введем формулы, задающие левые части ограничений (рис. 2.14).

Рис. 2.14.

Затем выберем команду Сервис, Поиск решения (Tools, Solver) и заполним открывшееся диалоговое окно Поиск решения (Solver).

Не забудьте в диалоговом окне Параметры поиска решения (Solver) установить флажок Линейная модель (Assume Linear Model). После нажатия кнопки Выполнить (Solve) средство поиска решений найдет оптимальное решение.

Заметим, что флажок Формулы диалогового окна Параметры (Options), открываемого командой Сервис, Параметры (Tools, Options), обеспечивает отображение формул в ячейках, если они там находятся (рис. 2.15).

Рис. 2.15.

2.2.9. Решение задач нелинейного программирования средствами Microsoft Excel

Задачи нелинейной оптимизации могут решаться разными методами. Для задач безусловной оптимизации

в Excel реализовано 2 метода: метод Ньютона и метод сопряженных градиентов Флетчера-Ривса. Выбор метода осуществляется в окне Параметры поиска решения (рис. 2.16). В качестве критерия останова в Excel используется условие . Значение ε вводится в окне Параметры поиска решения в строке Относительная погрешность.

Рис. 2.16.

Для решения задач условной оптимизации

,

в Excel используется метод множителей Лагранжа, позволяющий решение задачи условной оптимизации свести к решению задачи безусловной оптимизации. Работа реализованного в Excel метода множителей Лагранжа происходит по следующей схеме.

1. Все ограничения-неравенства преобразуются в ограничения-равенства.

Таким образом, задача принимает вид

,

2. Полученная задача переписывается с помощью функции Лагранжа

где – двойственные переменные (множители Лагранжа).

3. Рассматривается система уравнений, линейная относительно :

Находится решение этой системы – вектор , где координаты выражены через

4. Значения подставляются в функцию Лагранжа и решается задача безусловной оптимизации

.

5. Ее решение х* берется в качестве решения исходной задачи.

Решение задачи нелинейного программирования рассмотрим на следующем примере. Пусть требуется определить размеры бака a, b, h (рис. 2.17), стоимость которого не должна превышать так, чтобы его объем V был максимальным.

Рис. 2.17.

Объем бака V = abh.

Полная поверхность S = 2(ab) + 2(a + b)h = 2(ab + (a + b)h).

Принимаем, что стоимость материала C = kS, где k – стоимость единицы площади материала.

В результате получим C = 2k(ab + (a + b)h).

После введения рассмотренных величин сформулируем задачу оптимизации следующим образом:

,

,

.

Для решения задачи принимаем следующие значения: k = 10 руб/, Сзад = 100 руб.

Тогда математическая модель примет вид

V = abh → max,

20(ab + (a + b)h) ≤ 100,

a, b, h ≥ 0.

Решим данную задачу с использованием средств Exel.

Решение задачи нелинейного программирования отличается от решения задачи линейного программирования следующим:

  • назначаются начальные значения искомых переменных ;

  • в окне Параметры поиска решения не надо вводить Линейная модель.

Начальные значения желательно назначать близкими к ожидаемым оптимальным значениям, что ускорит решение задачи. Обязательным является требование к целевой функции, которая в начальной точке должна быть не равна нулю (иначе возможно деление на ноль при вычислении ).

Необходимо сделать форму для ввода условий задачи, в которую далее вводятся:

  • зависимости для объема и стоимости (ячейки С8, С9);

  • начальные значения (ячейки В3, С3, D3). В данном случае в качестве начальных значений выбираются единичные;

  • значение правой части ограничения (ячейка E9) (рис. 2.18).

В ячейках, в которых будет представлен результат (B3:D3), перед решением задачи надо назначить число знаков после запятой. В нашем примере назначаем в ячейках 2 знака после запятой.

Рис. 2.18.

Далее вызывается программа Поиск решения и в появившемся диалоговом окне вводится ячейка для целевой функции (С8), направление поиска (максимизация), изменяемые ячейки (B3:D3). Затем выбирается пункт Добавить и в появившемся окне Добавление ограничений вводятся ограничения B3>=B4; C3>=C4; D3>=D4, C9<=E9. После ввода всех ограничений в окне поиска решения выбирается команда Параметры и осуществляется переход в диалоговое окно Параметры поиска решения. В нем назначаются параметры поиска решения. Выберем в качестве метода решения безусловных задач метод сопряженных градиентов, параметры точности можно оставить без изменения. После ввода всех исходных данных и параметров производится решение задачи. Результаты решения представлены в таблице (рис. 2.19).

Рис. 2.19.

После успешного завершения поиска оптимального решения на экране появляется диалоговое окно Результаты поиска решения. С помощью этого диалогового окна можно вызвать отчеты трех типов: результаты, устойчивость и пределы. Отчеты анализа по результатам и пределам аналогичны таким же отчетам для задач линейного программирования. Отчет по устойчивости состоит из двух таблиц (рис. 2.20).

Рис. 2.20.

В первой таблице приводятся значения для переменных:

  • результат решения задачи;

  • нормированный градиент – величина, приводимая при выборе некоторых методов в диалоговом окне Параметры поиска решения.

Во второй таблице приводятся значения для ограничений:

  • величина стоимости

  • множитель Лагранжа, показывающий, как изменится целевая функция при изменении правой части в ограничении на единицу.

Для задач линейного программирования можно произвести также параметрический анализ, решая их при различных значениях параметров (рис. 2.21). Алгоритм выполнения параметрических расчетов аналогичен схеме, рассмотренной при решении задач линейного программирования, поэтому в данном разделе разбираться не будет. В таблице приведен итоговый сценарий, построенный в результате решения рассматриваемой задачи нелинейного программирования при различных значениях стоимости: 100, 200, 300, 400, 500.

Рис. 2.21.