Разработка модели и решение задачи линейного программирования

Автор: Пользователь скрыл имя, 27 Февраля 2013 в 21:07, курсовая работа

Краткое описание

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

Оглавление

ВВЕДЕНИЕ 3
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 5
1.1. Общая математическая формулировка задачи линейного программирования…………………………………………………………………...5
1.2. Методы решения задачи линейного программирования…………………...7
2. РАЗРАБОТКА МОДЕЛИ И РЕШЕНИЕ ЗАДАЧИ О ВЫБОРЕ ОПТИМАЛЬНЫХ ПРОЕКТОВ ДЛЯ ФИНАНСИРОВАНИЯ 15
2.1. Вербальная постановка задачи о выборе оптимальных проектов для финансирования…………………………………………………………………….15
2.2. Разработка экономико-математической модели задачи о выборе оптимальных проектов для финансирования…………………………….………15
2.3. Решение поставленной задачи симплекс-методом………………………...17
2.4. Решение поставленной задачи с помощью средств EXСEL (надстройка «Поиск решения»)………………………………………………………………….19
2.5. Интерпретация результатов расчетов и выработка управленческого решения……………………………………………...……………………………...28
ЗАКЛЮЧЕНИЕ 29
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 31

Файлы: 1 файл

kursovaya_EMM.doc

— 1.35 Мб (Скачать)

• 0 этап

        Составляем симплексную таблицу,  соответствующую исходной задаче :

Таблица 2

Симплекс-таблица

 

x1

x2

...

xn-1

xn

b

F

-a0,1

-a0,2

...

-a0,n-1

-a0,n

-b0

xn+1

a1,1

a1,2

...

a1,n-1

a1,n

b1

xn+2

a2,1

a2,2

a2,n-1

a2,n

b2

xn+m

am,1

am,2

am,n-1

am,n

bm


 

• Шаг 1. Проверка на оптимальность

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

 Если в столбце  свободных членов имеются отрицательные  элементы, то выбираем среди них максимальный по модулю − он задает ведущую строку k. В этой строке так же находим максимальный по модулю отрицательный элемент ak,l − он задает ведущий столбец − l и является ведущим элементом. Переменная, соответствующая ведущей строке исключается из базиса, переменная соответствующая ведущему столбцу включается в базис. Пересчитываем симплекс−таблицу согласно правилам (1).

Если среди свободных  членов есть отрицательные элементы , а в соответствующей строке нет, то условия задачи несовместны и решений у нее нет.

Если после перерасчета в столбце свободных членов остались отрицательные элементы, то переходим к первому шагу, если таких нет, то ко второму.

• Шаг 2. Проверка на неразрешимость

На предыдущем этапе  найдено допустимое решение. Проверим его на оптимальность. Если среди элементов симплексной таблицы, находившихся в строке F (не беря в расчет элемент b0 - текущее значение целевой функции) нет отрицательных, то найдено оптимальное решение.

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

l − столбец, в котором находится этот элемент, будет ведущим. Для того, что бы найти ведущую строку, находим отношение соответствующего свободного члена и элемента из ведущего столбца, при условии, что они неотрицательны.

k − строка, для которой  это отношение минимально − ведущая. Элемент ak,l − ведущий (разрешающий). Переменная, соответствующая ведущей строке (xk) исключается из базиса, переменная соответствующая ведущему столбцу (xl) включается в базис. Пересчитываем симплекс − таблицу по формулам . Если в новой таблице после перерасчета в строке F остались отрицательные элементы, то переходим к шагу 2.

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

Если в строке F и  в столбце свободных членов все  элементы положи-тельные, то найдено  оптимальное решение.3

Правила преобразования симплекс-таблицы:

При составлении новой  симплекс-таблицы в ней происходят следующие изменения (1): 

• вместо базисной переменной xk записываем xl; вместо небазисной пе-ременной xl записываем xk

• ведущий элемент заменяется на обратную величину ak,l'= 1/ak,l ;

• все элементы ведущего столбца (кроме ak,l) умножаются на −1/ak,l ;

  • все элементы ведущей строки (кроме ak,l) умножаются на 1/ak,l ;  
  • оставшиеся элементы симплекс-таблицы преобразуются по формуле (2) 

Процесс применения симплексного метода предполагает реализацию трех его основных элементов:

1) способ определения какого-либо первоначального допустимого

базисного решения задачи;                 

2)  правило перехода  к лучшему (точнее, не худшему)  решению;

3)  критерий проверки  оптимальности найденного решения.

Геометрический (графический) метод

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

Рис. 1. Система ограничений  на плоскости

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

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

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

c1x1+c2x= а                                                     (3)

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

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

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

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

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

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

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

F=c1x+ c2x= а(I)

F=c1x+ c2x= а(II)

F=c1x+ c2x= а(III)

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

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

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

2. РАСЧЕТ ЗАДАЧИ  О ВЫБОРЕ ОПТИМАЛЬНЫХ ПРОЕКТОВ  ДЛЯ ФИНАНСИРОВАНИЯ

2.1. Вербальная постановка конкретной решаемой задачи

 

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

Доступная наличность банка, потребности проектов и прибыль  по ним приведены в табл. 1.

Таблица 3

Доступная наличность банка, потребности проектов и прибыль  по ним, в рассматриваемые периоды, тыс. долл.

Проект

Период 1

Период 2

Период 3

Период 4

Прибыль

А

8

8

10

10

21

В

7

9

9

11

18

С

5

7

9

11

16

D

9

8

7

6

17,5

Ресурс банка

22

25

38

30

 

 

Какие проекты следует  финансировать и какое количество наличности необходимо в течении каждого периода, если цель состоит в том, чтобы максимизировать прибыль?

2.2. Разработка экономико-математической модели задачи о выборе оптимальных проектов для финансирования

 

Построим экономико-математическую модель задачи, для этого введем необходимые обозначения:

Пусть xi – логические переменные, равные 1, если проект принимается и равные 0, если проект не принимается. Тогда суммарная потребность в наличности в данные период будет равна сумме произведений Xi на столбец финансовых затрат по каждому проекту в данный период.

В принятых обозначениях ограничения по ресурсам примут вид:

8x1 + 7x2 + 5x3 + 9x4 ≤ 22,


8x1 + 9x2 + 7x3 + 8x4 ≤ 25,

10x1 + 9x2 + 9x3 + 7x4 ≤ 38,

10x1 + 11x2 + 11x3 + 6x4 ≤ 30,

x1,x2,x3,x4 ≥ 1,

где X(x1,x2,x3,x4) – координаты точки X в R4 (4-мерном пространстве).

Так как неизвестные  могут принимать только целые  значения, то задача является задачей  целочисленного программирования и

В этой модели целевая  функция - это математическая запись критерия оптимальности «максимум прибыли от финансирования проекта» Целевая функция равна

F(x1,x2,x3,x4) = 21x1+18x2+16x3+17,5x4 → max.

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

Тогда целевая функция – это функция ограниченности ресурсов

X(x1,x2,x3,x4) = 22x1+25x2+38x3+30x4→min,

а ограничения примут вид:


8x1 + 8x2 + 10x3 + 10x4 ≥ 21,

7x1 + 9x2 + 9x3 + 11x4 ≥ 18,

5x1 + 7x2 + 9x3 + 11x4 ≥ 16,

9x1 + 8x2 + 7x3 + 6x4 ≥ 17,5.

Какие периоды спонсор станет финансировать и в каких пределах, чтобы его вложения были минимальны?

2.3. Решение поставленной задачи симплекс-методом

 

Решим прямую задачу линейного  программирования  строчечным симплекс-методом. Определим максимальное значение целевой функции

F(X) = 21x1+18x2+16x3+17,5x4

при следующих условиях ограничений:

8x1+7x2+5x3+9x4≤22


8x1+9x2+7x3+8x4≤25

 10x1+9x2+9x3+7x4≤38

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