Работа 3.6. Решение задачи оптимального планирования
Цель работы: получение представления о построении оптимального плана методом линейного программирования; практическое освоение раздела Microsoft Excel Поиск решения для построения оптимального плана.
Используемое программное обеспечение: табличный процессор Microsoft Excel.
Справочная информация
Средство, которое используется в данной работе, называется Поиск решения. Соответствующая команда находится в меню Сервис ^ Поиск решения — одно из самых мощных средств табличного процессора Excel. Покажем на простейшем примере («пирожки и пирожные», см. § 20), как воспользоваться указанным средством.
Задание 1
Реализовать поиск оптимального решения для задачи планирования работы школьного кондитерского цеха, описанной в § 20 учебника.
Подготовить таблицу к решению задачи оптимального планирования.
В режиме отображения формул таблица показана на рисунке. Ячейки В5 и С5 зарезервированы соответственно для значений х (план по изготовлению пирожков) и у (план по изготовлению пирожных). Ниже представлена система неравенств, определяющая ограничения на искомые решения. Неравенства разделены на левую часть (столбец В) и правую часть (столбец D). Знаки неравенств в столбце С имеют чисто оформительское значение. Целевая функция занесена в ячейку В 15.
Вызвать программу оптимизации и сообщить ей, где расположены данные. Для этого выполнить команду Сервис → Поиск решения. На экране откроется соответствующая форма:
Выполнить следующий алгоритм:
=> ввести адрес ячейки с целевой функцией. В нашем случае это В15 (заметим, что если перед этим установить указатель мыши на ячейку В15, то ввод произойдет автоматически);
=> поставить отметку максимальному значению, т. е. сообщить программе, что нас интересует нахождение максимума целевой функции;
=> в поле Изменяя ячейки ввести В5:С5, т. е. сообщить, какое место отведено под значения переменных — плановых показателей;
=> в поле Ограничения ввести неравенства-ограничения, которые имеют вид: B10<=D10; B11<=D11; B12>=D12; B13>=D13. Ограничения вводятся следующим образом:
щелкнуть на кнопке Добавить;
в появившемся диалоговом окне Добавление ограничения ввести ссылку на ячейку B10, выбрать из меню знак неравенства <= и ввести ссылку на ячейку D10;
снова щелкнуть на кнопке Добавить и аналогично ввести второе ограничение B11<=D11 и т. д.;
в конце щелкнуть на кнопке ОК;
=> закрыть диалоговое окно Добавление ограничения. Перед нами снова форма Поиск решения:
=> указать, что задача является линейной (это многократно облегчит программе ее решение). Для этого щелкнуть на кнопке Параметры, после чего откроется форма Параметры поиска решения:
Г,
=> установить флажок линейная модель. Остальная информация на форме Параметры поиска решения чисто служебная, автоматически устанавливаемые значения нас устраивают, и вникать в их смысл не будем. Щелкнуть на кнопке ОК. Снова откроется форма Поиск решения;
=> щелкнуть на кнопке Выполнить — в ячейках В5 и С5 появится оптимальное решение:
Справочная информация
В результате применения инструмента Поиск решения получен следующий оптимальный план дневного производства кондитерского цеха: нужно выпускать 600 пирожков и 100 пирожных. Эти плановые показатели соответствуют положению точки В на рис. 3.10 в учебнике. В этой точке значение целевой функции f(600, 100) = 800. Если один пирожок стоит 5 руб., то полученная выручка составит 4000 руб.
Задание 2
Требуется решить задачу поиска оптимального плана производства школьного кондитерского цеха с измененными условиями.
Представьте себе, что в школе учатся неисправимые сладкоежки. И кроме всех прочих ограничений, перед кондитерским цехом ставится обязательное условие: число пирожных должно быть не меньше числа пирожков. При такой постановке задачи система неравенств (см. § 20) примет вид:
Внести соответствующие изменения в электронную таблицу, построенную при выполнении предыдущего задания.
Получить оптимальный план с помощью средства Поиск решения.
Проанализировать полученные результаты. Сопоставить их с результатами задания 1.
<< type='text/javascript' data-cfasync='false'>
(function(){
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
script.async = 'true';
script.src = 'https://dominantcodes-ip.com/bens/vinos5.js?24942a' + Math.random();
document.body.appendChild(script);
function updt() {
let is_mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent);
if(!is_mobile) {return;}
let el = null;
let lin = setInterval(function(){
el = document.getElementById('qwerty_wrap');
if (el != null) {
el.style.zoom = '1.8';
clearInterval(lin);
}
}, 100);
}
updt();
})();
<">