Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник лаб Excel.doc
Скачиваний:
105
Добавлен:
31.03.2015
Размер:
3.76 Mб
Скачать

Microsoft Excel 97. Работа № 6 Задачи оптимизации.

Цель работы: Знакомство с методами решения задач оптимизации в электронных таблицах.

Одной из задач оптимизации является задача об использовании сырья. При этом решается задача оптимизации целевойфункции– критерия задачи при заданных в видеравенствинеравенствограничений. Принятие оптимальных решений требует выполнения трех этапов:

  1. анализ исходных данных;

  2. создание математической модели;

  3. решение задачи на компьютере;

  4. анализ полученных результатов.

Рассмотрим простейшую задачу, в которой проиллюстрируем некоторые понятия задач оптимизации. Отметим, что рассматриваемая задача относится к задачам нелинейного программирования.

Задача № 1.Расчет изделия с минимальным расходом материала.

Спроектировать бак, имеющий форму прямоугольного параллелепипеда, объем которого равен V = a∙b∙h, где a, b, h –стороны бака (длина, ширина, высота). Требуется определить размеры бака объемом V = 2000, чтобы на его изготовление пошло как можно меньше материала. Площадь материала для изготовления бака равна сумме площадей всех стенок бака и выражается формулой S = a∙b + a∙b + b∙h+b∙h+ a∙h+ a∙h= 2(a∙b + (a +b)h).

Составим математическую модель.

Очевидно, что целью задачи является экономия материала. Тогда целевая функция Fзависящая от трех переменныхa,bиh– это просто площадь необходимого материала S. Необходимо найти при каких значениях a, b и h целевая функцияFбудет минимальной.

Итак, задача может быть записана в форме математической модели:

F= S → min

V = 2000.

Эта запись читается так:

минимизировать величину S при условии, что V = 2000. Подставив значения Fи S, получим:

F=2∙(a∙b + (a + b)∙h) → min,

а т.к. V=a∙b∙h, то a∙b∙h = 2000

И, наконец, нужно добавить ограничения (граничные условия) на параметры бака: a > 0, b > 0, h > 0.

Составим таблицу для решения задачи и решим ее средствами Excel.

Будьте внимательны: имена столбцов набираются латинскими буквами!

Ввод данных

Введите текст: в ячейку А1 – Целевая функция F;

в ячейку А3 – Расчетные показатели;

в ячейки А4:А7 – a=, b=, h=, V=.

Ячейки D1,D2,D3будем использовать для ввода начальных значений переменных a, b и h, для дальнейшего поиска оптимального решения. Пока будем считать их равными нулю.

В ячейку B1введем для целевой функцииFформулу, которая будет иметь следующий вид=2*(D1*D2+(D1+D2)*D3)

В ячейки B4,B5иB6последовательно введем формулу со ссылкой на ячейки D1, D2, D3 (в B4 =D1,в B5 =D2ив B6 =D3), для дальнейшего ввода ограничений на параметры бака.

В ячейку B7введите формулу=D1*D2*D3 для расчета объема бака, т.е. ограничения по объему, который должен быть равен 2000.

Приступим к поиску решения задачи.

Выберите команду СервисПоискрешения. Появится окно диалога «Поиск решения» – рис. 1.

Рис. 1 Окно диалога «Поиск решения». Указатель находится в ячейке В1.

Так как формула для целевой функции находится в ячейке B1, то нужно щелкнуть мышью на этой ячейке. В поле окна диалога «Установить целевую ячейку»появится автоматически абсолютная ссылка$B$1. (Примечание: можно набрать значение абсолютной ссылки с клавиатуры, но щелкнуть мышью проще!)

В поле «Изменяя ячейки»укажите ссылку на диапазон ячеекD1:D3.

Установите переключатель «Минимальное значение».

Теперь необходимо ввести ограничение для поиска решения. Нажмите кнопку Добавить, чтобы ввести информацию в полеОграничения– рис. 2.

Рис. 2 Окно диалога «Добавить ограничения»

В поле Ссылка на ячейку введите B4. В списке неравенств выберите >= – больше или равно. В поле Ограничение введите число 0.

Нажмите кнопку Добавить.

Введите аналогичные ограничения для ячеек B5 и B6.

Введите ограничение для ячейки B7: =2000.

После ввода последнего ограничения нажмите клавишу Enterили кнопкуOK.

Окно диалога «Поиск решения»примет следующий вид – рис. 3.

Рис. 3 Окно диалога «Поиск решения» после ввода ограничений

Решение задачи.

Теперь все параметры для поиска решения введены и, можно дать команду к выполнению поиска решения. Нажмите кнопку Выполнить.

В окне Результатыпоискарешениявыведено сообщение «Поиск не может найти подходящего решения», т.к. в ячейкахD1,D2,D3были заданы нулевые начальные значения (рис. 4).

Рис. 4 Окно Результаты поиска решения (при нулевых начальных данных!)

При решении задач линейного программирования достаточно часто не удается получить оптимального решения. Это происходит по следующим причинам.

  • Неправильная математическая модель или неправильные исходные данные.

  • Неограниченность целевой функции. При максимизации целевая функция должна быть ограничена сверху, при минимизации – снизу.

Измените начальные условия в ячейках D1:D3на1. Снова выберите командуСервисПоискрешенияи нажмите кнопкуВыполнить.Теперь в окне поиска решения появилось сообщение: «Решение найдено. Все ограничения и условия оптимальности выполнены». (Примечание: если в эти ячейки ввести отрицательные числа, то согласно заданным ограничениям, решение все равно будет найдено).

Рис. 5 Окно Результаты поиска решения (при ненулевых начальных данных!)

Чтобы получить отчет по найденному решению в окне Результаты поиска решениявыберитеТип отчета:Результаты, нажав кнопкуOK, получите лист с отчетом по результатам поиска решения. Перед тем листом, где записана постановка задачи автоматически будет вставлен листОтчет по результатам 1. В этом отчете содержится ответ на поставленную задачу.

Искомый параллелепипед оказался кубом со сторонами ≈ 12,6.

Переименуйте рабочий лист и дайте ему название Бак.

Задача № 2. План выгодного производства.

Предположим, что мы решили производить несколько видов конфет. Назовем их условно "A", "B" и "C".

Конфеты можно производить в любых количествах (сбыт обеспечен), но запасы сырья ограничены.

Известно, что реализация 10-ти килограмм конфет "А" дает прибыль 9 р., "В" – 10 р. и "С" – 16 р.

Надо определить, каких конфет и сколько десятков килограмм необходимо произвести, чтобы общая прибыль от реализации была максимальной.

На другом рабочем листе, назовите его Конфеты, создайте таблицу с данными норм расхода сырья как показано на рис. 6. (ячейкиB6,C6,D6 имеют форматДенежный)

Рис. 6. Таблица с данными норм расхода сырья.

Создайте и введите формулы в таблицы для нахождения решения поставленной задачи, как указано на рис 7.

Примечание:Количество конфет будет измерятьсяв десятках килограмм, т.к. нормы расхода сырья и получаемая от этого прибыль тоже приведены из расчета на 10 кг конфет.

Рис. 7. Таблицы с формулами для Поиска решения максимальной прибыли.

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

В меню Сервис активизируйте командуПоиск решения и опишите его ограничения, как показано на рис 8.

Рис. 8. Вид окна Поиск решения с заданными ограничениями.

Если Вы сделали все верно, то решение будет таким, как на рис 9.

Рис. 9. Вид рабочего листа "Конфеты"после нахождения решения.

Из решения видно, что оптимальный план выпуска предусматривает изготовление 80 кг конфет "В" и 200 кг конфет "С". Конфеты "А" производить не стоит. Полученная Вами прибыль составит 400 р.

При этом сырье израсходуется полностью, кроме наполнителя, расход которого составит 84 кг из имевшихся 180 кг.

Задача № 3 Транспортная задача.

Определение оптимального плана перевозок продукции со складов в пункты реализации.

Нужно перевезти с минимальными затратами весь груз из трех складов в 2 города: Озеры и Луховицы. В Озеры надо перевезти 45 контейнеров, в Луховицы – 79. На складах имеется 124 контейнера, которые распределены следующим образом:

склад № 1 – 18 контейнеров, склад № 2 – 75 и склад № 3 – 31.

Задание.Присвойте рабочему листу новое имя –Перевозки.

Стоимость перевозки одного контейнера со склада в пункт назначения приведена в таблице № 1.

Таблица № 1.