![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Решение задач линейного программирования симплекс методом |
Федеральное агентство по образованию РФ Федеральное государственное образовательное учреждение Среднего профессионального образования Барнаульский строительный колледж Курсовая работа. По дисциплине: «Математические методы» На тему: «Решение задач линейного программирования симплекс методом» Выполнил: Нунгесер М.В. Специальность: ПОВТ Группа: 0881 Преподаватель: Клепикова Н.Н. Барнаул 2010 Содержание:Введение Линейное программирование Симплекс метод Постановка задачи Разработка алгоритма Решение задачи Программная реализация на языке Delphi Приложение Заключение Список используемой литературы Введение В последние годы в прикладной математике большое внимание уделяется новому классу задач оптимизации, заключающихся в нахождении в заданной области точек наибольшего или наименьшего значения некоторой функции, зависящей от большого числа переменных. Это так называемые задачи математического программирования, возникающие в самых разнообразных областях человеческой деятельности и прежде всего в экономических исследованиях, в практике планирования и организации производства. Изучение этого круга задач и методов их решения привело к созданию новой научной дисциплины, получившей позднее название линейного программирования. В конце 40-х годов американским математиком Дж. Данцигом был разработан эффективный метод решения данного класса задач – симплекс-метод. К задачам, решаемых этим методом в рамках математического программирования относятся такие типичные экономические задачи как «Определение наилучшего состава смеси», «Задача об оптимальном плане выпуска продукции», «Оптимизация межотраслевых потоков», « Задача о выборе производственной программы», «Транспортная задача», «Задача размещения», «Модель Неймана расширяющейся экономики» и другие. Решение таких задач дает большие выгоды как народному хозяйству в целом, так и отдельным его отраслям. Решение задач математического программирования при помощи симплекс-метода традиционными способами требует затрат большого количества времени. В связи с бурным развитием компьютерной техники в последние десятилетия естественно было ожидать, что вычислительная мощность современных ЭВМ будет применена для решения указанного круга задач. Линейное программированиеЛинейное программирование - математическая дисциплина, посвящённая теории и методам решения задач об экстремумах линейных функций на множествах -мерного векторного пространства, задаваемых системами линейных уравнений и неравенств. Линейное программирование является частным случаем выпуклого программирования, которое в свою очередь является частным случаем математического программирования. Одновременно оно - основа нескольких методов решения задач целочисленного и нелинейного программирования. Одним из обобщений линейного программирования является дробно -линейное программирование. Многие свойства задач линейного программирования можно интерпретировать также как свойства многогранников и таким образом геометрически формулировать и доказывать их. Математическая формулировка задачи линейного программирования Нужно определить максимум линейной целевой функции (линейной формы)при условиях Иногда на xi также накладывается некоторый набор ограничений в виде равенств, но от них можно избавиться, последовательно выражая одну переменную через другие и подставляя её во всех остальных равенствах и неравенствах (а также в функции f).
Такую задачу называют «основной» или «стандартной» в линейном программировании. Наиболее известным и широко применяемым на практике для решения общей задачи линейного программирования (ЛП) является симплекс метод. Симплекс метод Симплекс метод - метод линейного программирования, который реализует рациональный перебор базисных допустимых решений, в виде конечного итеративного процесса, необходимо улучшающего значение целевой функции на каждом шаге. Применение симплекс-метода для задачи линейного программирования предполагает предварительное приведение ее формальной постановки к канонической форме с неотрицательными переменными: (X1, ., X ), где требуется минимизация линейной целевой функции при m линейных ограничениях типа равенств. Среди переменных задачи выбирается начальный базис из m переменных, для определенности (X1, ., Xm), которые должны иметь неотрицательные значения, когда остальные ( -m) свободные переменные равны 0. Целевая функция и ограничения равенства преобразуются к диагональной форме относительно базисных переменных, переменных, где каждая базисная переменная входит только в одно уравнение с коэффициентом 1. Данная формальная модель задачи линейного программирования обычно задается в форме, так называемой симплекс-таблицы, удобной для выполнения операций симплекс-метода: Симплекс-таблица 1 X1 X2 . Xm Xm 1 . X X0 A0,0 0 0 . 0 A0,m 1 . A0, X1 A1,0 1 0 . 0 A1,m 1 . A1, X2 A2,0 0 1 . 0 A2,m 1 . A2, . . . . . . . . . Xm Am,0 0 0 . 1 Am,m 1 . Am, Верхняя строка симплекс-таблицы представляет целевую функцию задачи. Каждая строка симплекс-таблицы, кроме первой, соответствует определенному ограничению-равенству задачи. Свободные члены ограничений составляют крайний левый столбец таблицы. Слева от таблицы записаны текущие базисные переменные (X1, ., Xm). Сверху от таблицы приведен набор всех переменных задачи, где Xm 1, ., X - свободные переменные задачи. На начальном шаге алгоритма симплекс-метода должно быть выбрано базисное допустимое решение (X1, ., Xm) &g ;= 0 при Xj = 0 (j = m 1, ., ), следовательно, все свободные члены ограничений Ai,0 &g ;= 0 (i = 1, ., m). Когда это условие выполнено, симплекс-таблица называется прямо-допустимой, так как в этом случае базисные переменные, равные Ai,0, определяют допустимое решение прямой задачи линейного программирования. Если все коэффициенты целевой функции A0,j &g ;= 0 (j = 1, ., m), то симплекс-таблица называется двойственно-допустимой, поскольку соответствующее решение является допустимым для двойственной задачи линейного программирования. Если симплекс-таблица является одновременно прямо и двойственно допустимой, т.е. одновременно все Ai,0 &g ;= 0 и A0,j &g ;= 0, то решение оптимально. Действительно, поскольку допустимыми являются лишь неотрицательные значения управляемых параметров, то изменение целевой функции за счет вариации свободных переменных, через которые она выражена, возможно только в сторону увеличения, т.e. будет ухудшаться. Если среди ее коэффициентов имеются A0,j &l ; 0, то значение целевой функции еще можно уменьшить (т.e. улучшить), увеличивая значение любой свободной переменной Xj с отрицательным коэффициентом A0,j при побочном уменьшении базисных переменных, чтобы оставались справедливы ограничения задачи.
Теоретически можно использовать любую свободную переменную Xj с A0,j &l ; 0, но на практике обычно действуют в соответствии со стратегией наискорейшего спуска, выбирая минимальный элемент A0,p &l ; 0 из всех отрицательных A0,j &l ;& bsp0:A0,p = mi A0,j &l ; 0. jСтолбец p симплекс-таблицы, соответствующий выбранному коэффициенту A0,p &l ; 0, называется ведущим столбцом. Свободная переменная ведущего столбца должна быть введена в базис вместо одной из текущих базисных переменных. Очевидно, из базиса следует исключить такую переменную Xq, которая раньше других обращается в нуль при увеличении переменной Xp ведущего столбца. Её индекс легко определить, если среди положительных элементов ведущего столбца p найти элемент, минимизирующий отношение (Ai,0 / Ai,p): Aq,0Ai,0 ------ = mi ------ , i = 1,.,m. Aq,p i Ai,p Элемент Aq,p называется ведущим элементом, cтрока q симплекс-таблицы, содержащая ведущий элемент, называется, соответственно, ведущей строкой. Переменная ведущей строки Xq заменяется в базисе переменной ведущего столбца Xp и становится свободной переменной с значением 0, в то время как новая базисная переменная Xp достигнет максимально возможного значения, равного: max Xp = ( Aq,0 / Aq,p). После указанного взаимообразного обмена переменными Xp и Xq между наборами свободных и базисных переменных нужно модифицировать исходную каноническую модель задачи путем приведения ее к диагональной форме относительно нового множества базисных переменных. Для указанного преобразования можно формально использовать процедуру исключения Гаусса, которая, как известно, состоит из двух элементарных операций, применяемых к системе алгебраических уравнений ( в данном случае ограничений - равенств): умножение уравнения E1(X) = 0 на константу K1 и замена уравнения E1(X) = 0 уравнением K1 E1(X) = 0; сложение уравнений E1(X) = 0 и E2(X) = 0 c последующей заменой уравнения E2(X) = 0 уравнением E1(X) E2(X) = 0. Исключения Гаусса позволяют привести систему уравнений к диагональной форме относительно желаемого множества переменных. В данном случае исключение Гаусса применяется так, чтобы все элементы симплекс-таблицы в ведущем столбце, кроме ведущего элемента Aq,p, стали нулевыми, а ведущий элемент стал равным единице: Ai,p = 0, если i не равно q и Ai,p = 1, если i = q. Указанные шаги симплекс-метода повторяются, пока не будет получена симплекс-таблица, которая одновременно является прямо и двойственно допустимой. Если положит в такой симплекс-таблице текущие базисные переменные равными Ai,0, а свободные - нулю, то будет получено оптимальное решение. Практика применения симплекс метода показала, что число итераций, требуемых для решения задачи линейного программирования обычно колеблется от 2m до 3m, хотя для некоторых специально построенных задач вычисления по правилам симплекс метода превращаются в прямой перебор базисных допустимых решений. Однако, трудные для симплекс метода задачи на практике встречаются крайне редко, что объясняет широкое распространение и большую популярность данного метода линейного программирования по сравнению с другими подходами.
Иными словами, линейное программирование это метод математического представления планирования возможно лучшего размещения ограниченных ресурсов в случаях, когда применяемая модель использует линейные функции. Линейное программирование как техника решения подобных проблем была разработана Джорджем Дантцигом в 1947 году как способ помочь решению военных проблем, возникших у военно-воздушных сил США. Его открытие простой метод в сочетании с вычислительными способностями компьютеров обеспечивал ответ на множество прежде неразрешимых проблем планирования, возникавших у властей и у бизнеса. Модель может быть выражена как максимизация линейных ограничений. Рассмотрим формулирование следующего совсем упрощенного примера, в котором рекламодатель может использовать приемы линейного программирования с целью нахождения лучшей комбинации размещения в трех различных СМИ. Если рекламодатель желает максимизировать количество невзвешенных показов путем покупки рекламы в одном ежемесячном журнале (v1) и двух еженедельных изданиях (v2 и v3), то тогда функция может быть выражена следующим образом: совокупная невзвешенная стоимость показов (Total unweighted exposure value UEV) = aUEV + bUEV + cUEV, где a, b и c номер размещения в v1, v2 и v3, соответственно
1. Решение задач симплекс-методом
2. Совершенствование методов проектирования кораблей и обоснование проектных решений
4. Методы проведения экспертиз при разработке управленческих решений
5. Математические методы в решении экономических задач
9. Методы размещения и трассировки печатных плат на примере модуля памяти
12. Конспект лекций по курсу ЭММ (Экономико-математические методы и модели)
13. План чтения лекции по учебной дисциплине «Математические методы»
14. Методы диагностики потенциальных факторов риска (рискогенных сотрудников) в работе с персоналом
15. Математические методи в психології
16. Билеты по предмету Математические методы в экономике за осенний семестр 2000 года
17. Лекции Математические методы исследования экономики
18. Экономико-математические методы анализа
19. Математические методы описания моделей конструкций РЭА
21. Математические методы в психологии
26. Экономико-математические методы
28. Математические методы в экономике
29. Математические методы в экономике
30. Математические методы и модели исследования операций
31. Математические методы экономических исследований
32. Математические методы и модели в экономике
34. Решение задач линейной оптимизации симплекс – методом
35. Решение задачи линейного программирования симплексным методом
36. Решение задачи линейного программирования симплекс-методом
37. Решение транспортной задачи методом потенциалов
41. Решение систем дифференциальных уравнений методом Рунге-Куты 4 порядка
43. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ПЯТИТОЧЕЧНЫМ МЕТОДОМ АДАМСА – БАШФОРТА
44. Построение решения задачи Гурса для телеграфного уравнения методом Римана
45. Методы и приемы решения задач
46. Решение транспортной задачи методом потенциалов
47. Составление и решение нестандартных уравнений графоаналитическим методом
48. Метод прогонки решения систем с трехдиагональными матрицами коэффициентов
49. Итерационные методы решения систем линейных уравнений с неединственными коэффициентами
51. Методология и методы принятия решения
52. Сущность и методы принятия управленческих решений
57. Построение приближенного решения нелинейного уравнения методом Ван-дер-Поля
58. Приближенное решение уравнений методом хорд и касательных
59. Решение задачи Дирихле для уравнения Лапласа методом сеток
60. Нестандартные методы решения тригонометрических уравнений: графический и функциональный
61. Методы принятия управленческого решения
62. Управленческие ситуации и методы их решения
63. Эвристические методы решения творческих задач
64. Кинезиология как Метод решения психологических проблем
65. Решение задачи методами линейного, целочисленного, нелинейного и динамического программирования.
66. Сравнительная характеристика методов принятия решений относительно инвестиционных программ
67. Решение геоэкологических проблем с помощью нестандартных геофизических методов
69. Методы решения уравнений в странах древнего мира
73. Классификация методов разработки и принятия управленческих решений
74. Метод программирования и схем ветвей в процессах решения задач дискретной оптимизации
75. Поиск решений системы линейных уравнений методом Гаусса
78. Решение прикладных задач методом дихотомии
79. Решение систем линейных алгебраических уравнений (прямые методы)
80. Решение систем нелинейных уравнений методом Бройдена
81. Решение экономических задач программными методами
83. Графический метод решения задач линейного программирования
84. Методы принятия решений в маркетинге
85. Исследование методов решения системы дифференциальных уравнений с постоянной матрицей
89. Методы приближённого решения матричных игр
90. Методы решения алгебраических уравнений
91. Методы решения систем линейных уравнений
92. Нахождение корня нелинейного уравнения. Методы решения системы нелинейных уравнений
93. Метод Гаусса для решения систем линейных уравнений
94. Методы экономического обоснования принимаемых решений по выходу на внешний рынок
95. Использование количественных методов анализа для принятия управленческих решений
97. Методы планирования управленческих решений