
- •Л абораторная работа № 2
- •Применение линейной теории полезности для принятия решения о распределении ресурсов
- •Пример постановки задачи на составление оптимального плана
- •Задание примерно такого типа будет в Вашем варианте!
- •Предварительный этап – сведение к задаче линейного программирования
- •Вводим переменные
- •Составляем функцию полезности
- •40Х0 – прибыль от выпуска х0 единиц продукта а,
- •60Х1 – прибыль от выпуска х1 единиц продукта б.
- •Определяем целевой критерий
- •Определяем ограничения
- •Записываем математическую форму задачи
- •Решение задачи в программе Excel
- •Обратите внимание!
- •Обратите внимание!
- •Решение задачи в программе Mathcad
- •Обратите внимание!
- •Обратите внимание!
- •Отчетность по лабораторной работе
Решение задачи в программе Excel
Аналогично задача решается и в OpenOffice\Calc! При этом не забывайте сохранять файл с результатами в формате Excel (т.е. с расширением xls).
Внимание! Здесь дана лишь «формальная заготовка» для расчетов, т.е. клетки, строки и столбцы в приведенном здесь примере имеют названия общего характера без учета специфики задачи. (Это сделано, чтобы Вы не повторяли бездумно пример.) Вы должны прокомментировать все ячейки в точном соответствии со своей личной задачей. И не забудьте дать точное название «упущенной выгоде». Не забудьте и про единицы измерения! Общее пожелание – даже постороннему человеку при первом взгляде на лист Excel должно быть все ясно без дополнительных комментариев автора («ну, я это самое, имел в виду, что типа, ну…» – этого не надо, это несолидно). В итоге все строки и столбцы приобретают названия определяющие смысл помещенных в них данных.
Не используйте «объединение» для ячеек с числовыми данными!
Вначале создаем «заготовку» для расчетов (см. на рисунок):
вводим названия пунктов плана-распределения (они послужат и названиями для столбцов таблицы);
задаем коэффициенты функции полезности (целевой функции);
Заметьте! Для задания коэффициентов в Вашем варианте может потребоваться два массива данных (затраты и цены, себестоимость и выручка, …), а не один как здесь («прибыли с единицы продукции»).
вводим произвольные (какие сами заходите – лишь бы ячейки не были пустыми) начальные параметры искомого плана или распределения;
з
аметьте
– по математической форме задачи
становится ясно, сколько рядов данных
требуется для задания функции полезности
(здесь – 2, а бывает и больше!);
в отдельной ячейке – задаем формулу для вычисления целевой функции (после расчетов в ней будет оптимальное значение полезности – прибыли, выручки и т.д.);
таблица коэффициентов для ограничений (нормы расхода ресурсов по задаче и т.п.), возможно, таблица разделится на части – для каждой группы ограничений (например, для расхода ресурсов и границ объемов выпуска и т.д.);
левые части ограничений (в виде формул!!!) – они по способу задания (см. математическую форму задачи) похожи на функцию полезности;
правые части ограничений (лимиты ресурсов и т.п. – из задачи) – просто числа;
предварительный или действующий план (распределение);
полезность по предварительному плану (расчет по формуле!);
упущенная выгода (разность между оптимальным и имеющимся (предварительным, действующим и т.п.) значениями полезности) – ее знак не столь важен, важна интерпретация.
Заметьте! Для проведения расчетов в Еxcel требуется организовать две зоны:
зона расчета функции полезности:
а) массивы коэффициентов (производительности и т.п.),
б) массив переменных (объемы ресурсов и т.п.),
в) ячейка для вычисления функции (максимальной прибыли и т.п.);
зона задания ограничений:
а) массивы коэффициентов (норм расхода ресурсов и т.п.),
б) массивы левых частей ограничений (использованных ресурсов и т.п.),
в) массивы правых частей ограничений (лимиты использования ресурсов и т.п.).
Внимание ! Для проведения расчетов в MS Office 2003 (аналогично в OpenOffice\Calc) требуется опция Сервис/Поиск решения (активизация – Сервис/Надстройки/√ Поиск решения).
В MS Office 2007 аналогичная надстройка есть в меню Анализ данных.
Устанавливаем
курсор на ячейку с функцией полезности
и через меню Сервис/Поиск решения
настраиваем процедуру отыскания
оптимального плана:
отмечаем ячейку с функцией (где рассчитывается прибыль и т.п.);
отмечаем целевой критерий (если функцию нужно минимизировать, то отмечаем «минимальному значению»);
выделяем на листе диапазон переменных (массив с параметрами плана, т.е. с объемами производства, продаж и т.п.);
добавляем ограничения, указывая левые части неравенств – используемые ресурсы, знаки неравенств (или указать, чтобы величины были целыми) , правые части неравенств – лимиты (если параметры плана не обязательно целые, то только неравенства);
з
аметьте
– ограничения можно задавать каждое
отдельно, а можно массивами (это по
существу задание ограничений в векторном
виде), если знаки неравенств одинаковые;
ч
ерез кнопку «параметры» устанавливаем «Неотрицательные значения»+Ок (это соответствует ограничениям
); в OpenOffice\Calc в окне «Параметры» можно потребовать, чтобы параметры плана были целыми
нажимаем «Выполнить» (или «Решить»);
в окне «Результаты поиска» (если все правильно – должно быть указано «Решение найдено…» или «Выполнено успешно»!!!) нажимаем ОК, т.е. «сохранить результат».
Таким
образом, получаем решение задачи:
параметры плана (объемы выпуска и т.п.),
целевое значение (прибыль и т.п.), упущенная
выгода (потеря прибыли и т.п.) вычислены
компьютером. Можно приступать к
отчету.
Внимание еще раз! В приведенном здесь примере даны лишь формальные подписи для строк, ячеек и пр. В своей работе выполните подписи ко всем ячейкам с учетом смысла задачи (например, не «упущенная выгода», а «ежедневная потеря прибыли, тыс.руб.»; не «правые части», а «запасы ресурсов» и т.д.), обязательно укажите единицы измерения.
В OpenOffice\Calc в окне «Решатель», вызываемом через Сервис\Поиск решений практически все то же самое!