Решение задач с помощью линейного программирования

Автор работы: Пользователь скрыл имя, 29 Апреля 2013 в 21:45, курсовая работа

Описание работы

Целью данной курсовой работы является изучение методов решения задач математического моделирования на примере задач планирования производства и транспортной задачи.
Задачи работы:
изучить литературу по данной теме
для заданного варианта получить решение задачи линейного программирования:
- графическим методом;

Содержание работы

ВВЕДЕНИЕ 4
1 ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ К РЕШЕНИЮ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 5
1.1 Определение и характеристика линейного программирования 5
1.2 Характеристика геометрического метода решения задач 7
1.3 Характеристика симплекс-метода как основного аппарата решения задач линейного программирования 10
1.4 Характеристика метода решения задач с помощью теории двойственности 14
1.5 Основные этапы, особенности и методы решения транспортной задачи 16
2 РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 20
2.1 Решение задачи планирования производства геометрическим способом 20
2.2 Решение задачи планирования производства симплекс-методом 25
2.3. Решение задачи планирования производства с помощью теории двойственности 30
2.4 Составление математической модели транспортной задачи 31
2.5 Нахождение опорного плана транспортной задачи методом наименьшего элемента 32
2.6 Решение транспортной задачи методом потенциалов 36
ЗАКЛЮЧЕНИЕ 38
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 39

Файлы: 1 файл

Dokument_Microsoft_Office_Word.doc

— 728.00 Кб (Скачать файл)

 

ОГЛАВЛЕНИЕ

 

 

 

ВВЕДЕНИЕ

 

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

На сегодняшний день это является важным инструментом экономического анализа: позволяет получить четкое представление о состоянии предприятия, охарактеризовать и количественно описать его внутреннюю структуру и внешние связи. Таким образом, экономико-математическое моделирование работы предприятия, фирмы, основанное на анализе его деятельности, должно обогащать этот анализ результатами и выводами, полученными после решения соответствующих задач.

Часто эксперимент с математической моделью может заменить реальный эксперимент, который либо слишком дорог, либо невозможен по тем или иным причинам. Все это и дает весомую актуальность применению задач линейного программирования в современных экономических условиях.

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

Задачи работы:

изучить литературу по данной теме

для заданного варианта получить решение  задачи линейного программирования:

- графическим методом;

- симплекс - методом для прямой  задачи;

- сформулировать двойственную задачу и найти её решение.

- сформулировать и решить транспортную задачу.

1 Теоретические вопросы  к решению задач линейного  программирования 

1.1 Определение и характеристика  линейного программирования

 

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

Линейное программирование - наиболее разработанный и широко применяемый раздел математического  программирования. Это объясняется  следующим:

  • математические модели очень большого числа экономических задач линейны относительно искомых переменных;
  • эти типы задач в настоящее время наиболее изучены;
  • для них разработаны специальные конечные методы, с помощью которых эти задачи решаются, и соответствующие стандартные программы для их решения на ЭВМ;
  • многие задачи линейного программирования, будучи решенными, нашли уже сейчас широкое практическое применение в народном хозяйстве;
  • некоторые задачи, которые в первоначальной формулировке не являются линейными, после ряда дополнительных ограничений и допущений могут стать линейными или могут быть приведены к такой форме, что их можно решать методами линейного программирования [1].

Необходимым условием постановки задачи линейного программирования являются ограничения на наличие  ресурсов, величину спроса, производственную мощность предприятия и другие производственные факторы.

 

 

 

Сущность линейного  программирования состоит в нахождении точек наибольшего или наименьшего  значения некоторой функции при  определенном наборе ограничений, налагаемых на аргументы и образующих систему ограничений, которая имеет, как правило, бесконечное множество решений. Каждая совокупность значений переменных (аргументов функции F), которые удовлетворяют системе ограничений, называется допустимым планом задачи линейного программирования. Функция F, максимум или минимум которой определяется, называется целевой функцией задачи. Допустимый план, на котором достигается максимум или минимум функции F, называется оптимальным планом задачи [3].

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

В общей постановке задача линейного программирования выглядит следующим образом [2]:

Имеются какие-то переменные х = (х1, х2, … хn) и функция этих переменных f(x) = f (х1, х2, … хn), которая носит название целевой функции. Ставится задача: найти экстремум (максимум или минимум) целевой функции f(x) при условии, что переменные x принадлежат некоторой области G:

 


 

В зависимости от вида функции f(x) и области G и различают разделы математического программирования: квадратичное программирование, выпуклое программирование, целочисленное программирование и т.д. Линейное программирование характеризуется тем, что а) функция f(x) является линейной функцией переменных х1, х2, … хnб) область G определяется системой линейных равенств или неравенств.

Математическая модель любой задачи линейного программирования включает в себя:

  • максимум или минимум целевой функции (критерий оптимальности);
  • систему ограничений в форме линейных уравнений и неравенств;
  • требование неотрицательности переменных [5].

Возникновение и развитие Линейного программирования связано с экономикой. Предположение  о линейности экономических зависимостей несколько ограничивает возможности  Линейного программирования, однако простота и наглядность линейных моделей, с достаточной степенью точности описывающих экономические процессы, позволяет применять эти модели в различных видах экономической деятельности [2].

1.2 Характеристика геометрического  метода решения задач

 

Рисунок 1

Рассмотрим задачу линейного  программирования в стандартной  форме с двумя переменными (n = 2). К такой форме может быть сведена и каноническая задача (с ограничениями в виде уравнений), когда число переменных n больше числа уравнений m на 2, т. е. n – m = 2 [4].

 

 

 

Пусть геометрическим изображением системы ограничений  является многоугольник ABCDE (рис. 1). Необходимо среди точек этого многоугольника найти такую точку, в которой линейная функция F=c1x1+c2x2 принимает максимальное (или минимальное) значение.

Рассмотрим  так называемую линию уровня линейной функции F, т. е. линию вдоль которой эта функция принимает одно и тоже значение a, т.е.

 

F = a, или               (2)

 

c1x1+c2x2 = а        (3)

 

Линии уровня широко используются, например, на картах прогноза погоды, где извилистые линии – так называемые изотермы есть ничто иное, как линии уровня температуры Т = с. Ещё более простым примером линий уровня являются параллели на географической карте. Это линии уровня широты.

Предположим надо найти самую северную точку какой-либо области, например страны или материка. Это будет точка, имеющая наибольшую широту, т. е. точка через которую проходит параллель (линия уровня) с самой большой широтой (уровнем).

Именно так  и надо поступать при геометрическом решении задач линейного программирования . на многоугольнике решений следует найти точку, через которую проходит линия уровня функции F с наибольшим (если линейная функция максимизируется) или наименьшим (если она минимизируется) уровнем.

Уравнение линии  функции (1) есть уравнение прямой линии. При различных уровнях а.

 

 

 

Линии уровня параллельны, так как их угловые коэффициенты определяются только соотношением между  коэффициентами c1 и c2 и следовательно, равны. Таким образом, линии уровня функции F – это своеобразные «параллели», расположенные обычно под углом к осям координат.

Важное свойство линии уровня линейной функции состоит  в том, что при параллельном смещении линии в одну сторону уровень  только возрастает, а при смещении линии в другую сторону – только убывает.

Пусть имеются  три линии уровня:

 

F=c1x1 + c2x2 = а1 ( I)            (4)

 

F=c1x1 + c2x2 = а2 (II)                          (5)

 

F=c1x1 + c2x2 = а3  (III)             (6)

 

Причём линия II заключена между линиями I и III. Тогда а1 < а2 < а3 и а1 > а2 > а3.

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

Рисунок 2

Для определения  направления возрастания рекомендуется  изобразить две линии уровня и  определить, на какой них уровень  больше. Например, одну из линий взять  проходящей через начало координат (если линия функция имеет вид F=c1x1 + c2x2, т. е. без свободного члена, то это соответствует нулевому уровню). Другую линию можно провести произвольно, так, например, чтобы она проходила через множество решений системы ограничений. Далее найдём точку, в которой функция принимает максимальное значение, подобно тому как на карте находится самая северная или самая южная точка (на рисунке 1 – это точка С или А) [3].

1.3 Характеристика симплекс-метода как основного аппарата решения задач линейного программирования

 

Симплекс-метод является основным в линейном программировании. Решение задачи начинается с рассмотрений одной из вершин многогранника условий. Если исследуемая вершина не соответствует максимуму (минимуму), то переходят к соседней, увеличивая значение функции цели при решении задачи на максимум и уменьшая при решении задачи на минимум. Таким образом, переход от одной вершины к другой улучшает значение функции цели. Так как число вершин многогранника ограничено, то за конечное число шагов гарантируется нахождение оптимального значения или установление того факта, что задача неразрешима [6].

Допустим, предприятие  предполагает выпускать два вида продукции  и , для производства которых используется сырьё трех видов.

Производство  обеспечено сырьем каждого вида в  количествах: , , кг. На изготовление единицы изделия требуется затратить сырья каждого вида , , кг., соответственно, а для единицы изделия – , , кг. Прибыль от реализации единицы изделия составляет ден.ед., для единицы изделия – ден.ед [4].

Таблица 1.3.1

Вид сырья

Продукция

Ограничения по сырью

А1

А2

1-й

a11

a12

b1

2-й

a21

a22

b2

3-й

a31

a32

b3

Прибыль

c1

c2

 

 

Составляем  математическую модель:

 

 


 

       (8)

 

Введем базисные переменные и преобразуем исходную задачу к виду:


 

 

   (10)

 

Решим систему  уравнений относительно базисных переменных x3, x4, x5.

 

 

 

 

Таблица 1.3.2 – Итерация №0

Базис

Х1

Х2

Х3

Х4

Х5

Свободные члены

Отношение

Х3

C1

596/5

Х4

C2

264/3

Х5

C3

640/2

Z

0

0

0

0

-


 

При составлении  исходной симплекс таблицы, коэффициенты при переменных функции Z записываются с противоположными знаками, а свободный член со своим знаком.

 – вектор, составленный  из координат соответствующих  базисных переменных.

Текущий план не оптимален, так как в индексной строке находятся отрицательные коэффициенты.

Будем считать что Z2 наименьший элемент, а строку с наименьшим отношением свободного члена к соответствующему элементу выбранного столбца - строку Х2.

Ведущий столбец Х2, так как ( ) – наименьшее отрицательное число.

За ведущую выберем  строку 2, так как отношение свободного члена к соответствующему элементу выбранного столбца для 2 строки является наименьшим.

Разрешающий элемент  .

Разделим элементы строки 2 на разрешающий элемент ( ).

От элементов строки 1 отнимаем соответствующие элементы строки 2, умноженные на .

От элементов строки 3 отнимаем соответствующие элементы строки 2, умноженные на .

 

От элементов строки Z отнимаем соответствующие элементы строки 3, умноженные на .

Заменяем базисную переменную Х5 на Х1.

Количество итераций будет  продолжаться до тех пор, пока в строке Z остаются отрицательные элементы [7].

Информация о работе Решение задач с помощью линейного программирования