Математические методы. 5
Содержание
Аннотация………………………………………………………
Введение…………………………………………………………
Глава 1. Теоретическая часть……………………………
1.1 История возникновения линейного программирования………………………6-8
1.2 Основные теоремы линейного программирования………………………………9
1.3 Основные понятия линейного
программирования………………………….10-
1.4 Методы решения задач линейного
программирования..............
1.5 Алгоритм симплексного метода……………………………………………...17-
1.6 Реализация симплексного
метода........................
Глава 2. Практическая часть……………………………………………………...
2.1 Решение задачи линейного программирования симплексным методом......20-24
2.2 Решение задачи линейного
программирования с помощью электронных
таблиц………………………………………………………………
2.3 Решение задачи линейного программирования с помощью программы......26-27
Заключение……………………………………………………
Список литературы…………………………………
Приложение. Код программы…………………………………………………….
Аннотация
Пояснительная записка к курсовой работе по математическим методам на тему «Реализация симплекс-метода в случае произвольных случайных членов».
В курсовой работе содержится
37 листов, и рассматриваются такие
вопросы как «Алгоритм
Введение
В последние годы в прикладной
математике большое внимание уделяется
новому классу задач оптимизации, заключающихся
в нахождении в заданной области
точек наибольшего или
Решение задач математического
программирования при помощи симплекс-метода
традиционными способами
Линейное программирование
наука о методах исследования
и отыскания экстремальных
Симплекс-метод. Этот один из
первых специализированных методов
оптимизации, нацеленный на решение
задач линейного
Глава 1. Теоретическая часть
1.1 История возникновения линейного программирования
Временем рождения линейного
программирования принято считать
1939г., когда была напечатана брошюра
Леонида Витальевича
Свое второе рождение линейное
программирование получило в начале
пятидесятых годов с появлением
ЭВМ. Тогда началось всеобщее увлечение
линейным программированием, вызвавшее
в свою очередь развитие других разделов
математического
Эти премии получили свое название в честь их учредителя - известного химика и изобретателя Альфреда Нобеля, они должны были присуждаться за научные открытия в области физики, химии, физиологии или медицины, за литературные произведения, "отражающие человеческие идеалы", а так же тем, кто "внесет весомый вклад в сплочение народов, уничтожение рабства, снижение численности существующих армий и содействие мирной договоренности". Математикам премия не предназначалась. Однако в 1969 году Шведский банк по случаю 300-летия со дня своего образования учредил премию памяти А.Нобеля - по экономическим наукам. Она то и была присуждена в 1975 году Л.В.Канторовичу и Т.Купмансу за создание новой математической науки (получившей название линейного программирования) и применение этой теории в экономике.
В автобиографии, представленной в Нобелевский комитет, Леонид Витальевич Канторович рассказывает о событиях, случившихся в 1939 году. К нему, 26-летнему профессору-математику, обратились за консультацией сотрудники лаборатории планерного треста, которым нужно было решить задачу о наиболее выгодном распределении материала между станками. Эта задача сводилась к нахождению максимума линейной функции, заданной на многограннике. Максимум такой функции достигался в вершине, однако число вершин в этой задаче достигало миллиарда… Поэтому простой перебор вершин не годился. Леонид Витальевич писал: "оказалось, что эта задача не является случайной. Я обнаружил большое число разнообразных по содержанию задач, имеющих аналогичный математический характер: наилучшее использование посевных площадей, выбор загрузки оборудования, рациональный раскрой материала, распределение транспортных грузопотоков… Это настойчиво побудило меня к поиску эффективного метода их решения". И уже летом 1939 года была сдана в набор книга Л.В.Канторовича "Математические методы организации и планирования производства", в которой закладывались основания того, что ныне называется математической экономикой.
Но вернемся в 1939 год. Говорят,
что истина рождается ересью и
увы, так случилось и с идеями
Л.В.Канторовича в области
Концепции Леонида Витальевича
вскоре после войны были переоткрыты
на западе. Американский экономист
Т.Купманс в течении многих лет
привлекал внимание математиков
к ряду задач, связанных с военной
тематикой. Он активно способствовал
тому, чтобы был организован
Американский математик
А.Данциг в 1947 году разработал весьма эффективный
конкретный метод численного решения
задач линейного
Примерно в это время
Купманс узнал, что еще до войны
в далекой России уже было сделано
нечто похожее на разработку начал
линейного программирования. Как
легко было бы Данцигу и Купмансу
проигнорировать эту
А самому Леониду Витальевичу - как естественно было бы ему, испытав первые грозные удары ретроградов, остеречься от "грехов" молодости, забыть про всю эту экономику и вернуться к математике. Но Л.В.Канторович продолжает писать математические работы, навеянные экономическими идеями, участвует и в конкретных разработках на производстве. При этом (одновременно с Данцигом, но не зная его работ) он разрабатывает метод, позже названный симплекс-методом. Как только в 50-е годы образуется маленький просвет и кое что из запретного становится возможным, он организует группу студентов на экономическом факультете ЛГУ для обучения методам оптимального планирования. А начиная с 1960 года Леонид Витальевич занимается только экономической и связанной с нею математической проблемами. Его вклад в этой области был отмечен Ленинской премией в 1965 году (присуждена ему совместно с В.С.Немчиновым и В.В.Новожиловым) и, как уже говорилось, Нобелевской премией в 1975 году.
1.2 Основные теоремы линейного программирования
Теорема 1: Множество всех допустимых решений системы ограничений задачи линейного программирования, является выпуклым.
Теорема 2: Если существует, и при том единственное, оптимальное решение задачи линейного программирования, то оно совпадает с одной из угловых точек множества допустимых решений. Если линейная форма принимает минимальное (максимальное) значение более чем в одной угловой точке, то она достигает того же значения в любой точке, являющейся выпуклой линейной комбинацией этих точек.
Из теоремы 2 следует, что поиски оптимального решения можно ограничить перебором конечного числа угловых точек (их число меньше , где n - число неизвестных , а m – число ограничений), однако построение возможно только для двух и трёхмерных пространств, поэтому нужны аналитические методы, позволяющие находить координаты угловых точек.
Теорема 3: Если известно, что система векторов в разложении линейно независима и такова, что , где , то точка является угловой точкой многогранника решений.
Теорема 4: Если - угловая точка многогранника решений, то векторы в разложении , соответствующие положительным , являются линейно независимыми.
Следствие 1: Так как векторы имеют размерность m, то угловая точка многогранника решений имеет не более m положительных компонент .
Следствие 2: Каждой угловой точке многогранника решений соответствует линейно независимых векторов системы векторов .
1.3 Основные понятия линейного программирования
Задачи оптимального планирования,
связанные с отысканием оптимума
заданной целевой функции (линейной
формы) при наличии ограничений
в виде линейных уравнений или
линейных неравенств относятся к
задачам линейного
Линейное программирование – наиболее разработанный и широко применяемый раздел математического программирования. Это объясняется следующим:
- математические модели очень большого числа экономических задач линейны относительно искомых переменных;
- эти типы задач в настоящее время наиболее изучены;
- для них разработаны специальные конечные методы, с помощью которых эти задачи решаются, и соответствующие стандартные программы для их решения на ЭВМ;
- многие задачи линейного программирования, будучи решенными, нашли уже сейчас широкое практическое применение в народном хозяйстве;
- некоторые задачи, которые в первоначальной формулировке не являются линейными, после ряда дополнительных ограничений и допущений могут стать линейными или могут быть приведены к такой форме, что их можно решать методами линейного программирования.
Итак, Линейное программирование
– это направление
Необходимым условием постановки задачи линейного программирования являются ограничения на наличие ресурсов, величину спроса, производственную мощность предприятия и другие производственные факторы.
Сущность линейного
Система ограничений, определяющая множество планов, диктуется условиями производства. Задачей линейного программирования (ЗЛП) является выбор из множества допустимых планов наиболее выгодного (оптимального).
В общей постановке задача линейного программирования выглядит следующим образом:
Имеются какие-то переменные х = (х1 , х2 , … хn ) и функция этих переменных f(x) = f (х1 , х2 , … хn ), которая носит название целевой функции. Ставится задача: найти экстремум (максимум или минимум) целевой функции f(x) при условии, что переменные x принадлежат некоторой области G:
В зависимости от вида функции f(x) и области G и различают разделы математического программирования: квадратичное программирование, выпуклое программирование, целочисленное программирование и т.д. Линейное программирование характеризуется тем, что
а) функция f(x) является линейной функцией переменных х1 , х2 , … хn
б) область G определяется системой линейных равенств или неравенств.
Математическая модель любой задачи линейного программирования включает в себя:
- максимум или минимум целевой функции (критерий оптимальности);
- систему ограничений в форме линейных уравнений и неравенств;
- требование неотрицательности переменных.
1.4 Методы решения задач линейного программирования
Методы решения задач
линейного программирования относятся
к вычислительной математике, а не
к экономике. Однако экономисту полезно
знать о свойствах
С ростом мощности компьютеров необходимость применения изощренных методов снижается, поскольку во многих случаях время счета перестает быть лимитирующим фактором, поскольку весьма мало (доли секунд). Поэтому мы разберем лишь три метода.
Простой перебор. Возьмем
некоторый многомерный
Проведем перебор точек параллелепипеда с шагом 1/10n последовательно при n=2,3,…, вычисляя значения целевой функции и проверяя наличие ограничений. Из всех точек, удовлетворяющих ограничениям, возьмем ту, в которой целевая функция максимальна. Решение найдено! (Более строго выражаясь, найдено с точностью до 1/10n .)
Направленный перебор. Начнем
с точки, удовлетворяющей ограничениям
(ее можно найти простым перебором)
Симплекс-метод. Этот один из
первых специализированных методов
оптимизации, нацеленный на решение
задач линейного
Рассмотрим задачу линейного программирования, сформулированную выше при рассмотрении оптимизации номенклатуры и объемов выпуска:
F = 15 Х1 + 12 Х2 + 14 Х3 → max .
Х1 / 200 + Х2 / 300 + Х3 / 120 ≤ 100 ,
Х1 / 300 + Х2 / 100 + Х3 / 100 ≤ 100 ,
Х3 / 80 ≤ 100 .
Неотрицательность переменных
не будем специально указывать, поскольку
в задачах линейного
В соответствии с симплекс-методом введем т.н. «свободные переменные» Х4 , Х5 , Х6 , соответствующие недоиспользованным мощностям, т.е. перейдем к системе уравнений:
Х1 / 200 + Х2 / 300 + Х3 / 120 + Х4 = 100 ,
Х1 / 300 + Х2 / 100 + Х3 / 100 + Х5 = 100 ,
Х3 / 80 + Х6 = 100 ,
15 Х1 + 12 Х2 + 14 Х3 = F .
У этой системы имеется
очевидное решение, соответствующее
вершине многогранника
Х1 = Х2 = Х3 = 0, Х4 = Х5 = Х6 = 100, F = 0.
В терминах исходной задачи это значит, что ничего не надо выпускать. Такое решение приемлемо только на период летних отпусков.
Выбираем переменную, которая
входит в целевую функцию F с самым
большим положительным
Сравниваем частные от деления свободных членов в первых трех уравнениях на коэффициенты при только что выбранной переменной Х1:
100 / (1/200) = 20000, 100 / (1/300) =30000, 100/0 = + ∞ .
Выбираем строку, которой соответствует минимальное из всех положительных отношений. В рассматриваемом примере – это первая строка, которой соответствует отношение 20000.
Умножим первую строку на 200, чтобы получить Х1 с единичным коэффициентом:
Х1 + 2/3 Х2 + 2/1,2 Х3 + 200 Х4 = 20000 .
Затем умножим вновь полученную строку на (-1/300) и сложим со второй строкой, получим
7/900 Х2 + 4/900 Х3 - 2/3 Х4 + Х5 = 100/3.
Ту же преобразованную первую строку умножим на (-15) и сложим со строкой, в правой части которой стоит F, получим:
2 Х2 - 11 Х3 - 3000 Х4 = F – 300000.
В результате система уравнений преобразуется к виду, в котором переменная Х1 входит только в первое уравнение:
Х1 + 2/3 Х2 + 2/1,2 Х3 + 200 Х4 = 20000 ,
7/900 Х2 + 4/900 Х3 - 2/3 Х4 + Х5 = 100/3,
Х3 / 80 + Х6 = 100 ,
2 Х2 - 11 Х3 - 3000 Х4 = F – 300000.
Очевидно, у новой системы
имеется улучшенное по сравнению
с исходным решение, соответствующее
вершине в шестимерном
Х1 = 20000, Х2 = Х3 = Х4 = 0, Х5 = 100/3, Х6 = 100, F = 300000.
В терминах исходной задачи это значит, что надо выпускать только кухни. Такое решение приемлемо, если допустимо выпускать только один вид продукции.
Повторим описанную выше операцию. В строке с F имеется еще один положительный коэффициент – при Х2 (если бы положительных коэффициентов было несколько – мы взяли бы максимальный из них). На основе коэффициентов при Х2 (а не при Х1, как в первый раз) образуем частные от деления соответствующих свободных членов на эти коэффициенты:
20000 / (2/3) = 30000, (100/3) / (7/900) = 30000/7, 100/0 = + ∞.
Таким образом, нужно выбрать вторую строку, для которой имеем наименьшее положительное отношение 30000/7. Вторую строку умножим на 900/7 (чтобы коэффициент при Х2 равнялся 1). Затем добавим обновленную строку ко всем строкам, содержащим Х2 , предварительно умножив их на подходящие числа, т.е. такие, чтобы все коэффициенты при Х2 стали бы после сложения равны 0, за исключением коэффициента второй строки, который уже стал равняться 1. Получим систему уравнений:
Х1 + 9/7 Х3 + 1800/7 Х4 – 600/7 Х5 = 120000/7 ,
Х2 + 4/7 Х3 – 600/7 Х4 + 900/7Х5 = 30000/7,
Х3 / 80 + Х6 = 100 ,
- 85/7 Х3 – 19800/7 Х4 – 1800/7 Х5 = F – 308571.
Поскольку все переменные неотрицательны, то из последнего уравнения следует, что прибыль F достигает своего максимального значения, равного 308571, при Х3 = Х4 = Х5 = 0. Из остальных уравнений следует, что при этом Х1 = 120000/7 = 17143, Х2 = 30000/7 = 4286, Х6 = 100. Поскольку в строке с F не осталось ни одного положительного коэффициента при переменных, то алгоритм симплекс-метода закончил свою работу, оптимальное решение найдено.
Практические рекомендации таковы: надо выпустить 17143 кухни, вчетверо меньше, т.е. 4286 кофемолок, самоваров не выпускать вообще. При этом прибыль будет максимальной и равной 308571. Все производственное оборудование будет полностью загружено, за исключением линии по сборке самоваров.
Транспортная задача. Различные
технико-экономические и
В качестве очередного примера рассмотрим т.н. транспортную задачу. Имеются склады, запасы на которых известны. Известны потребители и объемы их потребностей. Необходимо доставить товар со складов потребителям. Можно по-разному организовать «прикрепление» потребителей к складам, т.е. установить, с какого склада какому потребителю и сколько вести. Кроме того, известна стоимость доставки единицы товара с определенного склада определенному потребителю. Требуется минимизировать издержки по перевозке.
Например, может идти речь о перевозке песка – сырья для производства кирпичей. В Москву песок обычно доставляется самым дешевым транспортом – водным. Поэтому в качестве складов можно рассматривать порты, а в качестве запасов – их суточную пропускную способность. Потребителями являются кирпичные заводы, а их потребности определяются суточным производством (в соответствии с имеющимися заказами). Для доставки необходимо загрузить автотранспорт, проехать по определенному маршруту и разгрузить его. Стоимость этих операций рассчитывается по известным правилам, на которых не имеет смысла останавливаться.
1.5 Алгоритм симплексного метода
Алгоритм симплекс-метода находит оптимальное решение, рассматривая ограниченное количество допустимых базисных решений. Алгоритм симплекс-метода всегда начинается с некоторого допустимого базисного решения и затем пытается найти другое допустимое базисное решение, «улучшающее» значение целевой функции. Это возможно только в том случае, если возрастание какой-либо нулевой (небазисной) переменной ведет к улучшению значения целевой функции. Но для того, чтобы небазисная переменная стала положительной, надо одну из текущих базисных переменных сделать нулевой, т.е. перевести в небазисные. Это необходимо, чтобы новое решение содержало в точности m базисных переменных. В соответствии с терминологией симплекс-метода выбранная нулевая переменная называется вводимой (в базис), а удаляемая базисная переменная — исключаемой (из базиса).
Два правила
выбора вводимых и исключающих
переменных в симплекс-методе
назовем условием
Условие оптимальности.
Вводимой переменной в задаче
максимизации (минимизации) является
небазисная переменная, имеющая
наибольший отрицательный (
Условие допустимости.
Как в задаче максимизации, так
и в задаче минимизации в
качестве исключаемой
Последовательность действий, выполняемых в симплекс-методе.
Шаг 1. Находится начальное допустимое базисное решение.
Шаг 2. На основе
условия оптимальности
Шаг 3. На основе
условия допустимости
Шаг 4. Методом
Гаусса-Жордана вычисляется
Вычисления в
симплекс-методе выполняются
1.6 Реализация симплексного метода
С точки зрения обеспечения рациональности и наглядности вычислительного процесса выполнение алгоритма симплекс-метода удобно оформлять в виде последовательности таблиц. В различных источниках приводятся разные модификации симплекс-таблиц, отличающиеся друг от друга расположением отдельных элементов. Однако это не должно вызывать смущения у читателя, так как все они базируются на одних и тех же принципах. Остановимся на структуре таблицы.
Настоящая структура симплекс-таблиц строится на идеях и принципах их организации.

- Математические методы
- Математические методы
- Математические методы
- Математические методы
- Математические методы
- Математические методы
- Математические методы Адамса
- Математическая формулировка задачи
- Математическая школа и развитие математических методов анализа экономики
- Математическая школа управления
- Математические задачи
- Математические задачи электроэнергетики
- Математические задачи электроэнергетики
- Математические методы