- •Н. В. Алексенко р. И. Воробьева
- •Оглавление
- •Введение
- •1. Основные методы решения задач линейного программирования
- •1.1. Введение в линейное программирование
- •1.1.1. Общая задача оптимизации
- •1.1.2. Задачи линейного программирования
- •1.1.3. Стандартная и каноническая задачи линейного программирования
- •1.2. Графический метод решения задачи линейного программирования
- •1.3. Симплекс-метод
- •1.3.1. Идея симплекс-метода
- •1.3.2. Алгоритм симплекс-метода
- •Алгоритм симплекс-метода
- •Алгоритм поиска первоначального опорного плана
- •1.4. Двойственность в линейном программировании
- •1.4.1. Постановка двойственной задачи
- •1.4.2. Теоремы двойственности
- •1.4.3. Двойственный симплекс-метод
- •1.4.4. Экономическая интерпретация задачи, двойственной задаче об использовании ресурсов
- •Исходная задача
- •Двойственная задача
- •1.5. Вопросы для самопроверки
- •2.1. Постановка задачи
- •2.2. Построение первоначального опорного плана транспортной задачи методом наименьших затрат
- •2.3. Проверка найденного опорного плана на оптимальность
- •2.4. Переход от одного опорного плана транспортной задачи к другому
- •2.5. Альтернативный оптимум
- •2.6. Открытая модель транспортной задачи
- •2.7. Приложение транспортной задачи к решению некоторых экономических задач
- •2.8. Вопросы для самопроверки
- •3. Целочисленное программирование
- •3.1. Общая постановка задачи
- •3.2. Метод отсечения Гомори
- •3.3. Графический метод решения задачи целочисленного программирования
- •3.4. Вопросы для самопроверки
- •4. Теория игр
- •4.1. Основные понятия
- •4.2. Решение игр 2 х 2 в смешанных стратегиях графическим способом
- •4.3. Решение игр 2 х n графическим способом
- •4.4. Решение игры n х 2 графическим способом
- •4.5. Сведение матричной игры m X n к задаче линейного программирования (решение любой матричной игры)
- •Функции дохода
- •6.2. Способы представления графов
- •6. 3. Некоторые задачи теории графов
- •6.3.1. Поиск кратчайшего пути в графе
- •Алгоритм поиска кратчайшего пути
- •6.3.2. Поиск кратчайшего гамильтонова цикла
- •6.4. Вопросы и задачи для самопроверки
- •7. Оптимизация сетевого графика
- •7. 1. Сетевая модель. Основные понятия
- •7.2. Основные требования к сетевому графику
- •7.3. Расчет временных параметров сетевого графика
- •7.3.1. Расчет параметров событий
- •Учитывая введенное в п.7.1 определение критического пути и введенные формулы (7.1–7.3), можно записать алгоритм нахождения критического пути.
- •7.3.2. Расчет параметров работ
- •7.3.3. Сетевое планирование в условиях неопределенности
- •7.4. Вопросы и задачи для самопроверки
- •8. Решение задач на компьютере
- •8.1. Решение задач с использованием системы Mathcad
- •8.2. Решение задач линейного программирования с помощью приложения Excel
- •Заключение
- •Библиографический список
- •Приложение
- •Алексенко Наталья Владимировна
- •Воробьева Раиса Ивановна
- •Математика
- •Основные задачи
- •Математического программирования
- •И реализация их на компьютере
- •644099, Омск, ул. Красногвардейская, 9
8.2. Решение задач линейного программирования с помощью приложения Excel
В Excel есть надстройка "Поиск решения", которая позволяет решать задачи на поиск оптимального значения целевой функции. Вызов надстройки осуществляется с помощью пункта Поиск решения в меню Сервис. Если в меню Сервис нет такого пункта, то установите его, выполнив команду Сервис | Надстройки. В окне диалога "Надстройки" установите флажок на строке Поиск решения и нажмите OK.
Пример. Для удобства дальнейшей работы в окне приложения Excel переобозначим переменные: xj пусть будут Сj – это имена ячеек Excel. Запишем модель в виде:
X= (C1; C2; C3),
F(C1; C2; C3) = 4С1+5С2+3С3 —› max,
Система ограничений:
0,5С1+2С2≤100,
0,5С1+2,5С2+3С3≤500,
0,5С1+0,5С2+3С3≤400,
0,5С2+С3≤100,
С1≥0, С2≥0, С3≥0.
Для решения задачи откройте Excel и выполните следующие действия:
Введите в ячейку А1 (на английском) формулу для целевой функции, т. е. наберите:
= 4*С1+ 5*С2 + 3*С3
нажмите ENTER или просто перейдите в ячейку А2 и введите в нее слово "ограничения:" (это пояснение).
Введите в ячейку А3 формулу для вычисления левой части первого ограничения:
= 0,5*С1 + 2*С2 .
Введите в ячейку А4 формулу для вычисления второго ограничения:
= 0,5*С1 + 2,5*С2 + 3*С3.
Введите в ячейку А5 формулу для вычисления третьего ограничения:
= 0,5*С1 + 0,5*С2 + 3*С3.
Введите в ячейку А6 формулу для вычисления четвертого ограничения: = 0,5*С2 + С3.
6. Неотрицательность переменных укажите в отдельных ячейках, т. е. в А7 введите: = С1; в А8 введите: = С2; в А9 введите: = С3.
В ячейки С1, С2, С3 введите первоначальные значения этих переменных, например, 0. После этого значения всех ячеек (А1, А3,…,:А9, С1, С2, С3) должно быть равно 0 (рис. 8.4).
Рис. 8.4. Результаты ввода первоначальных значений на листе Excel
Выполните команду меню Сервис | Поиск решения. Появится окно диалога "Поиск решения", в котором необходимо внимательно читать поясняющие надписи и вводить необходимую информацию.
Рис. 8.5. Окно диалога "Поиск решения"
В поле ввода "Установить целевую ячейку" укажите имя ячейки (на английском), в которой находится формула подсчета целевой функции, т.е. А1 (можно просто щелкнуть левой кнопкой мыши на ячейке А1).
Активизируйте кнопку Равной максимальному значению. (Если бы задача была на поиск минимального значения, то Равной минимальному значению).
В поле ввода Изменяя ячейки введите С1:С3 (так в Excel указывают диапазон ячеек от С1 до С3).
Для ввода ограничений нажмите кнопку Добавить. Появится новое окно диалога "Добавление ограничений" (рис. 8.6), в котором три поля ввода данных. В поле Ссылка на ячейку введите имя ячейки, где находится левая часть первого ограничения, т. е. А3. В поле Ограничение введите знак ≤; в последнее поле введите значение правой части ограничения, т. е. число 100.
Рис. 8.6. Окно диалога "Добавление ограничений"
Щелкните на кнопку Добавить и так же введите все ограничения (включая неотрицательность). После ввода последнего ограничения (А9≥0) нажмите кнопку OK. После этого диалоговое окно будет иметь вид, показанный на рис. 8.5. Проверьте, все ли вы ввели верно. Если какое-то ограничение введено неверно, установите на него курсор и нажмите кнопку Изменить.
Рис. 8.7. Окно диалога "Результаты поиска решений"
Нажмите кнопку Выполнить. Откроется окно диалога "Результаты поиска решения" (рис. 8.7).
Выберите тип отчета Результаты, нажмите OK. В ячейках на основном листе появятся вычисленные значения (рис. 8.8), а на дополнительном листе можно посмотреть подробный отчет по результатам решения (рис. 8.9).
Рис. 8.8. Результат решения
Рис. 8.9. Отчет по результатам
Примечания
При решении задачи целочисленного программирования на этапе добавления ограничений (см. п. 12) в поле Ссылка на ячейку введите С1:С3, в поле Ограничение щелкните на кнопке
,
из появившегося списка выберите целое.Excel позволяет решать задачи нелинейного программирования, т.е. задачи, в которых целевая функция и ограничения могут быть нелинейными функциями, с помощью того же инструмента Поиск решения, выполняя вышеуказанные действия.
Транспортная задача решается также с помощью пункта Поиск решения. При этом элементы матрицы перевозок X = (xij) могут располагаться в одном столбце С или D, или в любом другом (как удобно пользователю), или в нескольких.
Например,
x11
x12
x13
X = x21 x22 x23
Можно расположить в ячейках таблицы Excel C1, D1, E1 – элементы первой строки матрицы Х, соответственно, в C2, D2, E2 – второй строки. Далее необходимо внимательно записать целевую функцию и ограничения через имена этих ячеек и ввести данные в соответствующие ячейки листа Excel.
На рис. 8.10 показан результат решения транспортной задачи, условие которой задано в табл. 8.1.
Рис. 8.10. Решение транспортной задачи
Для закрепления навыка решения задач на компьютере необходимо решить задачи из разделов 1–4 данного пособия и сравнить ответы.
