Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач матметоды.docx
Скачиваний:
7
Добавлен:
04.12.2018
Размер:
255.52 Кб
Скачать

Оглавление

Введение.........................................................................................................................................................................................2

1. Теоретические основы. Двойственный симплекс-метод.....................................................................3

2. Практическая задача.................................................................................................................................11

2.1 Постановка задачи......................................................................................................................11

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

3. Разработка программного обеспеченья..................................................................................................15

3.1 Входные данные.........................................................................................................................15

3.2 Выходные данные......................................................................................................................15

3.3 Основные функции программного обеспечения....................................................................15

3.4 Блок-схема...................................................................................................................................16

3.5 Интерфейс программы...............................................................................................................17

3.6 Руководство по эксплуатации...................................................................................................18

4. Проведение исследований.......................................................................................................................20

Заключение....................................................................................................................................................21

Список используемой литературы..............................................................................................................22

Приложение...................................................................................................................................................23

Введение

Симплекс-метод – это один специализированных методов оптимизации, нацеленный на решение задач линейного программирования. Он был предложен американцем Г. Данцигом в 1951 г.

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

Существует ручное решение двух задач симплекс-методом с подробными объяснениями для того, чтобы понять алгоритм решения задач симплекс-методом. В первом случае задача содержит знаки неравенства только " ≤ " (задача с начальным базисом), во втором случае задача может содержать знаки " ≥ ", " ≤ " или " = " (задача с искусственным базисом), они решаются по-разному.

Обычно выделяют особые случаи при которых применяется симплекс-метод:

1) Когда прямая, представляющая целевую функцию параллельна прямой, соответствующей одному из неравенств-ограничений целевая функция, принимает одно и тоже оптимальное значение на некотором множестве точек границы области допустимых решений. Эти решения называются альтернативными оптимальными решениями. Наличие альтернативных решений можно определить по оптимальной симплекс-таблице. Если в z-строке оптимальной таблицы есть нулевые коэффициенты небазисных переменных, то есть альтернативные решения.

2) Если в разрешающем столбце симплекс-таблицы все коэффициенты меньше или равны нуль, то нельзя выбрать разрешающую строку, в этом случае решение неограниченно.

3) Если ограничения задачи линейного программирования несовместны, то задача не имеет допустимых решений. Такая ситуация не может возникнуть, если все неравенства, составляющие систему ограничений, имеют тип " ≤ " с неотрицательными правыми частями, т.к. в этом случае дополнительные переменные могут составить допустимое решение. Для других типов ограничений используются искусственные переменные. Если задача имеет решение, то в оптимальной таблице в базисе нет искусственных переменных (Ri). Если они там есть, то задача не имеет решений.

1. Теоретические основы. Двойственный симплекс метод.

Общая формулировка задачи линейного программирования.

Пусть задана система m линейных алгебраических уравнений с n неизвестными:

(1.1)

и линейная функция относительно переменных х1, х2, ¼, хn:

(1.2)

Требуется найти такие неотрицательные значения переменных х1, х2, ¼, хn, которые бы удовлетворяли системе линейных уравнений (1.1) и, кроме того, обращали в максимум линейную функцию (1.2).

Заметим, что если по условиям задачи требуется отыскать минимум функции L, записанной в виде (1.2), то задачу можно свести к задаче максимизации функции L¢, связанной с функцией L так:

L¢ = - L = -c1x1 - c2x2 - ¼ - cnxn. (1.3)

Максимум функции (1.3) и минимум функции (1.2) будут достигаться при одном и том же наборе переменных (х1, х2, ¼, хn), удовлетворяющих условиям неотрицательности переменных и уравнениям (1.1), областью определения задачи.

Допустимым решением задачи линейного программирования будем называть любую совокупность переменных

х1 ³ 0, х2 ³ 0, ¼ , хn ³ 0,

удовлетворяющих уравнениям (1.1).

Оптимальным решением будем называть то из допустимых решений, для которого линейная форма L обращается в максимум (минимум).

Двойственная задача линейного программирования.

Пусть задана каноническая задача ЛП

    (2.1)

Если целевая функция f(x) = cx достигает максимального значения на множестве D, то обоснованным представ­ляется вопрос о том, каким образом можно построить верхнюю оценку для нее. Очевидно, что если через и обозначить некото­рый m-мерный вектор, то

cx = cx+u(-Ax+b) = (c-uA)x+bu

Предположим, что и можно выбрать таким образом, чтобы иА ≥ с. Тогда при любых х≥0 справедливо неравенство

сх≤bи                          (2.2)

Стремясь получить наилучшую оценку (2.2), мы приходим к формулировке некоторой новой экстремальной задачи, кото­рая в некотором смысле логически сопряжена с задачей (2.1) и называется двойственной. Оговоримся, что приведенные рас­суждения не носят строгого характера и предназначены только для того, чтобы подготовить читателя к приводимому ниже фор­мальному определению двойственной задачи линейного про­граммирования.

Если задана каноническая задача ЛП

   

то задача ЛП

      

называется двойственной по отношению к ней. Соответственно, задача (D, f) no отношению к  (D*, f*)  назы­вается прямой (или исходной).

Приведенное выше определение задачи, двойственной по отношению к канонической ЗЛП, может быть распространено на случай общей задачи линейного программирования.

Если задана общая задача ЛП

   

где D определяется системой уравнений и неравенств

то двойственной по отношению к ней называется общая задача ЛП

 

где D* определяется системой уравнений и неравенств

Как следует из приведенной схемы при переходе от прямой задачи ЛП к двойственной:

1.  Тип оптимума меняется на противоположный, т. е. максимум на минимум, и наоборот.

2.  Вектор коэффициентов целевой функции c и столбец ограничений b меняются местами.

3.  Матрица ограничений задачи А транспонируется.

4.  Множество индексов переменных, на которые наложено условие неотрицательности в прямой задаче (например, хj≥0 или ui≥0), определяют номера ограничений, имеющих форму неравенств в двойственной задаче (аjи≥сj или aixbi).

5.  Множество номеров ограничений, имеющих форму неравенств в прямой задаче (например, aixbi или аjи≥сj), определяют множество индексов переменных, на которые накладывается условие неотрицательности, в двойственной задаче (ui≥0 или хj≥0).

Из приведенного определения вытекает важное свойство — симметричность отношения двойственности, т. е. задача, двойственная по отношению к двойственной, со­впадает с прямой (исходной) задачей:

((D*)*, (f*)*)≡(D, f),

Тем самым имеет смысл говорить о паре взаимно двой­ственных задач.

В матричной форме пара двойственных общих задач линей­ного программирования может быть кратко записана как:

   

и

     

Каждой задаче линейного программирования соответствует так называемая двойственная задача. В ней по сравнению с исходной задачей строки переходят в столбцы, неравенства меняют знак, вместо максимума ищется минимум (или наоборот, вместо минимума - максимум). Задача, двойственная к двойственной - эта сама исходная задача. Сравним исходную задачу (слева) и двойственную к ней (справа):

45Х1+80Х2 → max, 400W1+450W2 → min ,

5Х1+20Х2≤400, 5W1+10W2≥45,

10Х1+15Х2≤450, 20W1+15W2≥80,

Х1≥0, W1≥0,

Х2≥0. W2≥0.

Почему двойственная задача столь важна? Можно доказать, что оптимальные значения целевых функций в исходной и двойственной задачах совпадают (т.е. максимум в исходной задаче совпадает с минимумом в двойственной). При этом оптимальные значения W1 и W2 показывают стоимость материала и труда соответственно, если их оценивать по вкладу в целевую функцию. Чтобы не путать с рыночными ценами этих факторов производства, W1 и W2 называют "объективно обусловленными оценками" сырья и рабочей силы.

Материал взят из книги Акулича "Математическое программирование в примерах и задачах".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]