49889 (609361)

Файл №609361 49889 (Применение симплекс-метода)49889 (609361)2016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Содержание:

Введение …………………………………………………..

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

Описание метода

Математическая постановка задачи …………………….

Листинг программы………………………………………..

Блок-схема………………………………………………….

Заключение…………………………………………………

Список литературы………………………………………..

Введение

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

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

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

На основе изученного алгоритма симплекс-метода разработать программу по следующему заданию: Исходная матрица коэффициентов заносится в память как матрица А, правые части ограничений заносятся в столбец 0. Таким образом, в матрицу входят М+2 строк, М ограничений, целевая функция и искусственная целевая функция. Она имеет P строк помимо строки 0, которые содержат исходные, новые и искусственные переменные. Матрица B состоит из столбцов значений переменных и значений целевой функции, матрицы обращения размерностью m x m, двух строк симплекс - множителей и последнего столбца, в котором все элементы, кроме последних двух, равны 0, а последние два равны – 1:

b́1 β11 β 1m 0

b΄2 β21 β 2m 0

B= b́m βm1 β mm 0

-z΄0 π1 πm 1

-ẃ0 ơ1 ơ m 1

Необходимо перевести данную программу с помощью языка Turbo Pascal.

Для проверки работоспособности программы необходимо ввести данные из следующего задания:

Найти такие неотрицательные x1, x2, что

1 – х2 ≤ 4,

x1 – 2x2 ≤ 2,

x1 + x2 ≤ 5,

и минимизировать функцию -3x1 + x2 = z.

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

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

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

Описание метода

Для решения задач линейного программирования существует множество методов. Рассмотрим один из них.

Улучшенный (модифицированный) симплекс-метод

Для начала расскажем, что такое симплекс-метод. Слово SIMPLEX в обычном смысле означает простой, несоставной, в противоположность слову COMPLEX.

Данный метод получил несколько различных форм (модификаций) и был разработан в 1947 году Г. Данцигом.

Сущность симплекс-метода заключается в том, что если число неизвестных больше числа уравнений, то данная система неопределенная с бесчисленным множеством решений. Для решения системы все неизвестные произвольно подразделяют на базисные и свободные. Число базисных переменных определяется числом линейно-независимых уравнений. Остальные неизвестные свободные. Им придают произвольные значения и подставляют в систему. Любому набору свободных неизвестных можно придать бесчисленное множество произвольных значений, которые дадут бесчисленное множество решений. Если все свободные неизвестные приравнять к нулю, то решение будет состоять из значений базисных неизвестных. Такое решение называется базисным.

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

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

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

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

В улучшенном симплекс-методе реализуется та же основная идея, что и в обычном симплекс-методе, но здесь на каждой итерации пересчитывается не вся матрица A-1, обратная матрице ограничений A, а лишь та часть, которая относится к текущему базису Ax.

Рассмотрим поэтапно шаги решения задачи линейного программирования улучшенным симплекс-методом:

1.В начале первого цикла нам известны обратная матрица (единичная матрица), базисное решение xb = b.

2.Образуем для каждой небазисной переменной характеристическую разность j, используя уравнение:

j = cj — = cj — Pj ,



Где - двойственные переменные, которые можно найти следующим образом:



= cx * ,



Где cx - вектор коэффициентов целевой функции при базисных переменных.

3.Предполагая, что используется стандартное правило выбора вводимого столбца, находим:

.

4.Если s 0 - процедура останавливается. Текущее базисное решение является оптимальным.

5.Если s 0, вычисляем преобразованный столбец:

P;— = Ps

6.Пусть

P;—= (a;-, a;-, ..., a;-) .

Если все a;- 0 - процедура останавливается: оптимум неограничен.

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

= .

8.Строим увеличенную матрицу:

и трансформируем ее с ведущим элементом a;-. Первые m столбцов результат дают матрицу, обратную новому базису. Преобразуем базисное решение:

xb i xb i* a;-, i r,

xb r

и переходим к этапу 2.

Этот вариант называют также модифицированным симплекс-методом, поскольку он уменьшает объем вычислений на каждом шаге. Идея заключается в том, что на каждом шаге конаническую форму задачи для текущего базиса можно получить независимо от других таких форм непосредственно из исходной записи стандартной задачи ЛП. Для этого нужно: (1) сохранять исходную запись задачи на протяжении всей работы метода, это та цена, которую приходится платить за больше быстродействие;

(2) использовать так называемые симплекс – множители π – коэффициенты для непосредственного перехода от исходной записи задачи к ее текущей конанической форме базиса; и (3) использовать обращенный базис В־¹ - матрицу размера m x m, позволяющую вычислять на каждом шаге ведущий столбец a΄s и обновлять симплекс – множители π.

    1. Преимущества метода

Улучшенный симплекс-метод, обладает значительными преимуществами по сравнению со стандартной формой. Это относится к точности, скорости и требованиям к памяти. Большая часть этих преимуществ определяется тем фактором, что, как правило, матрицы больших линейных задач (то есть с n>m>100) являются слабозаполненными, содержат малый процент ненулевых элементов.

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

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

Математическая постановка задачи

Задание: Найти такие неотрицательные x1, x2, что

1 – х2 ≤ 4,

x1 – 2x2 ≤ 2,

x1 + x2 ≤ 5,

и минимизировать функцию -3x1 + x2 = z.

Графическое решение (см. рисунок) показывает, что точка минимума – это точка (3,2), где z = -7. Вырожденность (при обращении нескольких переменных в 0, базис называют вырожденным) возникает, поскольку прямые, соответствующие ограничениям, пересекаются в одной точке (2,0). В нашей задаче в вершине пересекаются три прямые (обычно вершина является пересечением всего двух прямых).

Рисунок 1.

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

Таблица 1.

Итерация

Базис

Значение

Х1

Х2

Х3

Х4

Х5

0

Х3

Х4

Х5

4

2

5

2*

1*

1

-1

-2

1

1

.

.

.

1

.

.

.

1

-z

Целевая функция

-3

1

.

.

.

Переменная х1 входит в базис. В столбце х1 коэффициенты 2 и 1 пометим звездочкой, так как в точке минимума они имеют точку совпадения 4/2 = 2/1.

При выборе других переменных все равно итерация превращается в 0, следовательно, базис будет вырожден. Выберем переменную х3 и получим следующую таблицу:

Таблица 2.

Итерация

Базис

Значение

Х1

Х2

Х3

Х4

Х5

1

Х3

Х4

Х5

2

0

3

1

.

.

-1/2

-3/2

3/2*

1/2

-1/2

-1/2

.

1

.

.

.

1

-z

6

.

-1/2

3/2

.

.

2

Х1

Х4

Х2

3

3

2

1

.

.

.

.

1

1/3

-1

-1/3

.

1

.

1/3

1

2/3

-z

7

.

.

4/3

.

1/3

Из таблицы видно что минимум функции z равен -7 (при х1 = 3, х2 = 2).

Если выбрать переменную х4, то получим то же самое решение.

Для продолжения решения необходимо изменить ограничения, это позволит изменить положение точки А, а так же избежать вырожденности. Для это возьмем некоторую переменную ε – малая величина (т.к. ограничения в точке А не будут выполняться одновременно, см. рисунок 2).

Получим следующее:

1 – х2 ≤ 4+ ε

x1 – 2x2 ≤ 2+ ε2.

В окончательное решение будет входить ε. Затем ε следует обратить в 0.

Если вырожденности нет, то симплекс-методом задача линейного программирования решается за конечное число шагов (при условии что решение существует).

Таким образом, функция z убывает на каждом шаге. Поскольку имеется не более (n/m) допустимых решений, минимум будет равен не более чем за (n/m) итераций.

Характеристики

Тип файла
Документ
Размер
427,03 Kb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее