Курсовая работа: Двойственность в линейном программировании
bi являются оценками плана двойственной задачи. Сj являются оценками плана исходной задачи.
Найдем решение двойственной задачи по симплексной таблице. В симплексной таблице прописана исходная задача. Также определим оптимальный план двойственной задачи. Также найдем и оптимальный план исходной задачи.
Такой метод принято называть двойственным симплексным методом.
Допустим нужно определить исходную задачу линейного программирования, которая поставлена в общем виде: минимизировать функцию Z=СХ при АХ=A0 , Х>0. Значит в двойственной задаче следует максимизировать функцию f=YA0 при YA>С. Пусть определен следующий базис D=(A1 , А2 ,…, Аi ,…, Аm ), причем в нем хотя бы одна из компонент вектора Х=D-1 A0 =(x1 , x2 ,…, xi ,…, xm ) отрицательная. Для всех векторов Aj используется следующее соотношение Zj –Cj >0 (i=1,2,…, n).
Пользуясь теоремой двойственности, Y=Сбаз D-1 является планом двойственной задачи. Этот план не оптимальный. Потому что оценки оптимального плана двойственной задачи должны быть неотрицательными и выбранный базис X содержит отрицательную компоненту и не является планом исходной задачи, а с другой стороны.
Поэтому, следует исключить из базиса исходной задачи вектор Аi , который соответствует компоненте xi <0. Данный вектор относится к отрицательной оценке, его необходимо включить в базис двойственной задачи.
Просматриваем i-ю строку для выбора вектора, включаемого в базис исходной задачи. Т.е. если строка не имеет xij <0, тогда линейная функция двойственной задачи не ограничена на многограннике решений. Поэтому нет решений исходной задачи.
В противном случае для столбцов, имеющих отрицательные значения, определяем q0j =min(xi /xij )>0. Также находим вектор, который соответствует minq0j (Zj –Cj ) при решении исходной задачи на максимум, а также maxq0j (Zj –Cj ) при значении исходной задачи на минимум.
Найденный вектор включаем в базис исходной задачи. Направляющей строкой определяется вектор, который надо убрать из базиса исходной задачи.
Допустим, что q0j =min(xi /xij )=0, т.е. xi =0, тогда xij выбирается как разрешающий элемент, но лишь тогда, когда xij >0.
Данный подход к решению задачи не приводит к росту количества отрицательных компонент вектора X. Пока не будет получено Х>0, процесс не прекращается.
Определяя оптимальный план двойственной задачи, находим и оптимальный план исходной задачи.
Используя при решении, алгоритм двойственного симплексного метода условие Zj –Cj >0 допускается не учитывать, пока не будут исключены все хi <0.
Обычным симплексным методом определяется оптимальный план. Этот метод обычно используется при условии, что все хi <0. Чтобы перейти к плану исходной, задачи за одну итерацию надо определить q0j =max(xi /xij )>0.
Задачи линейного программирования можно решать двойственным симплексным методом. Системы ограничений в задачах при положительном базисе имеют свободные члены любого знака. Двойственный симплексный метод позволяет значительно уменьшить размеры симплексной таблицы и количество преобразований системы ограничений.
2 . Разработка программы
2.1 Постановка задачи
Необходимо спланировать работу швейной мастерской на некоторый период. Установлен перечень выпускаемой продукции, известна рыночная цена каждого продукта. Для производства продукции используются ресурсы: материал, нитки, пуговицы, труд закройщиков, швей-мотористок и т.д. Установлен полный перечень этих ресурсов и общее количество каждого ресурса, которое может быть израсходовано в плановом периоде. Известен расход каждого ресурса на единицу каждого продукта. Необходимо определить, сколько каждой продукции нужно производить, чтобы суммарная рыночная цена всей продукции (выпуск, выручка) была наибольшей.
Введем следующие обозначения:
i =1,…, m - номера (индексы) используемых ресурсов;
- запас i -го ресурса, т.е. допустимый расход i -го ресурса в плановом периоде; другое название - ограничение по ресурсу i ;
j =1,…, n - номера (индексы) продуктов;
- рыночная цена j -го продукта;
- расход i -го ресурса на производство единицы j -го продукта;
- плановый объем производства j -го продукта, величина неизвестная, ее нужно найти в процессе решения задачи. Исходные данные задачи запишем в виде матрицы.
Рис. 2
Каждая строка матрицы соответствует одному ресурсу, каждый столбец – одному продукту. Справа от каждой строки записана величина ограничения по ресурсу (b 1 ,…, bi ,…, bm ); внизу каждого столбца - цена продуктов (с1 ,…, с j ,…, с m ).
В каждой клеточке матрицы записаны так называемые технологические коэффициенты aij , показывающие расход i -го ресурса на производство единицы j -го продукта.