Главная » Просмотр файлов » Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)

Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189), страница 201

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 201 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 2012019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 201)

Исходная задача содержит только переменные хы хг и хз, поэтому оптимальное решение имеет вид х4 = 8, хг = 4 и хз = 0 с целевым значением (3 8) +(1 4) +(2 0) = 28. Заметим, что значения вспомогательных переменных в окончательном решении показывают, насколько велик резерв в каждом неравенстве. Вспомогательная переменная х4 равна 18, а значение левой части в неравенстве (29.54) равно 8+ 4+ 0 = 12, что на 18 меньше, чем значение правой части этого неравенства— 30. Вспомогательные переменные хб и хб равны нулю, и действительно, в неравенствах (29.55) и (29.56) левые и правые части равны. Обратите внимание на то, Часть ГИ. Иэбрааиые темы что, даже если коэффициенты исходной канонической формы являются целочисленными, коэффициенты последующих эквивалентных задач не обязательно целочисленны, как не обязательно целочисленны и промежуточные решения. Более того, окончательное решение задачи линейного программирования также не обязательно будет целочисленным; в данном примере это не более чем совпадение.

Замещение Формализуем процедуру замещения. Процедура Рвот получает в качестве входных данных каноническую форму задачи линейною программирования, заданную кортежем (Ю, В, А, 6, с, с), индекс 1 выводимой переменной х~ и индекс е вводимой переменной х,. Она возвращает кортеж (М, В, А, 6, с, В), описывающий новую каноническую форму. (Еще раз напомним, что элементы матриц А и А, имеющих размер иэ х и, являются числами, обратными коэффициентам канонической формы.) Р1чот(Х, В, А,6, с, с,1, е) 1 // Вычисление коэффициентов уравнения для новой // базисной переменной х,.

2 Пусть А — новая матрица размером т х п 3 Ь, = Ь!/ам 4 гвг каждого .1 6 ээ' — те) 5 аез = аб/аде 6 ае~ = 1/ам 7 // Вычисление коэффициентов остальных ограничений. 8 1вг каждого э Š — 11) 9 6э = Ьэ — аэеЬе 10 гвг каждого з е М вЂ” (е) !1 а; = а; — аеаэ 12 аа = — аэеае[ 13 // Вычисление целевой функции.

14 В= и+с,Ь, 15 1вг каждого 7' 6 Ж вЂ” 1е) 16 ст — — сэ — сеает !7 с! = — сеае~ 18 // Вычисление новых множеств базисных // и небазисных переменных. 19 Х = )э' — (е) 01Ц 20 В =  — Я 'ь.э 1е1 21 ге1пгп ()э', В, А, Ь, сс В) Процедура Р[чот работает следующим образом. В строках 3-6 вычисляются коэффициенты нового уравнения для х,; для этого уравнение, в левой части которого стоит хь переписывается так, чтобы в левой части оказалась х,.

В строках 7 — 11 оставшиеся уравнения обновляются путем подстановки правой части 9В Гнева 29. Линейное лрограчиироеание полученного нового уравнения вместо всех вхождений хе. В строках 8-12 такая же подстановка выполняется для целевой функции, а в строках 14 — 17 обновляются множества небазисных и базисных переменных. Строка 21 возвращает новую каноническую форму. Если ам = О, вызов процедуры Р[уот приведет к ошибке (деление на нуль)„однако, как будет показано в ходе доказательства лемм 29.2 и 29.12, данная процедура вызывается только тогда, югда ам ф О. Рассмотрим, как процедура Р!чот действует на значения переменных базисного решения. Лемма 29Л Рассмотрим вызов Р!чот(Аг, В, А, 6, с, с,1, е), в котором аы зй О.

Пусть значения, возвращаемые вызовом, представляют собой (М, В, А, Ь, с, В) и пусть х обозначает базисное решение после выполнения вызова. Тогда !. х = О для каждого З Е У; 2. хе = 6!/а~е,' 3. х; = 6, — а„Ь, для каждого 1 Š — (е). Доказвшельсягво. Первое утверждение верно, поскольку в базисном решении все небазисные переменные задаются равными нулю. Если мы приравняем нулю все небазисные переменные в ограничении х, = 6, — ~~~ абхз, зер? то получим, что х, = Ь; для каждого 1 е В.

Поскольку е Е В, строка 3 процедуры Р1уОТ дает хе = Ье = Ь!/а!е ~ что доказывает второе утверждение. Аналогично, используя строку 9 для каждого!1 Š — (е), мы имеем х,=Ь,=Ьй — аееЬе ~ что доказывает третье утверждение. Формальный симплекс-алгоритм Теперь мы готовы формализовать симплекс-алгоритм, юторый уже продемонстрировали на примере. Этот пример был очень удачным, однаю еще необходимо ответить на следующие вопросы. Как определить, что задача линейного программирования является разреши- мой? Что делать, если задача линейного программирования является разрешимой, однако начальное базисное решение не является допустимым? 9!е Часть еП.

Иедеанаые темы Как определить, что задача линейного программирования является неограни- ченной? ° Как выбирать вводимую и выводимую переменные? В разделе 29.5 мы покажем, как определить, является ли задача разрешимой и, в случае положительного ответа, как найти каноническую форму, в которой начальное базисное решение является допустимым. На данном этапе предположим, что имеется процедура 1М1т1АЕ1ЕЕ-Я1МРЕЕХ(А, Ь, с), которая получает на входе задачу линейного программирования в стандартной форме, т.е. матрицу А = (аб) размером т х п, т-мерный вектор 6 = (6;) и и-мерный вектор с = (с ).

Если задача неразрешима, процедура возвращает соответствующее сообщение и завершается. В противном случае она возвращает каноническую форму, начальное базисное решение которой является допустимым. Процедура 81МРеех получает на входе задачу линейного программирования в стандартной форме, описанной выше. Она возвращает и-мерный вектор х = (х ), который является оптимальным решением задачи линейного программирования, заданной формулами (29.19)-(29.21).

81МРЕЕХ(А, Ь, с) 1 (Л,В,А,Ь,с,с) = 1т!Т1АЕ1ЕЕ-Б1МРЕЕХ(А,Ь,с) 2 Пусть Ь вЂ” новый вектор длиной т 3 этййе с; > О для некоторого индекса 9 е 1Ч 4 Выбрать индекс е Е 1Ч, для которого с, > О 5 1ог каждого индекса 1 Е В 6 Иаье >О 7 сь, = 6,/а„ 8 е1яе сз, = оо 9 Выбрать индекс 1 е В, который минимизирует Ь| 10 ИЬ| == оо 11 гетцгп "задача неограниченная" 12 е1ае (1Ч,В,А,Ь,с,с) = Р1чот(?Ч,В,А,Ь,с,и,1,е) 13 Еогз = 1топ 14 юг ЕВ 15 х;=6; 16 е1зех; = О 17 ГЕтцГП (ХЫ Хг,..., Ха) Процедура 31МРЕЕХ работает следующим образом.

В строке 1 выполняется вызов упомянутой выше процедуры 1ьпт1Аиее-б~мгеех(А, Ь, с), которая нли определяет„что предложенная задача неразрешима, илн возвращает каноническую форму, базисное решение которой является допустимым. Главная часть алгоритма содержится в цикле эчЫ!е в строках 3 — 12. Если все коэффициенты целевой функции отрицательны, цикл иЫ1е завершается. В противном случае в строке 4 мы выбираем в качестве вводимой переменной некоторую переменную х„коэффициент при которой в целевой функции положителен. Хотя в качестве вводимой можно выбирать любую такую переменную, предполагается, что 913 Глава 2д Лииейиое ороерамиироеаиие используется неюе предварительно заданное детерминистическое правило. Затем, в строках 5-9, выполняется проверка каждого ограничения и выбирается то, которое более всего лимитирует величину увеличения к„не приводящего к нарушению ограничений неотрицательности; базисная переменная, связанная с этим ограничением, выбирается в качестве выводимой переменной хь Если таких переменных несколько, можно выбрать любую из них, однако предполагается, что и здесь мы используем некое предварительно заданное детерминистическое правило.

Если ни одно из ограничений не лимитирует возможносп увеличения вводимой переменной, алгоритм выдает сообщение "задача неограниченная'* (строка 11). В противном случае в строке 12 роли вводимой и выводимой переменных меняются путем вызова описанной выше процедуры Р!тот(Ь1, В, А, Ь, с, и, 1, е). В строках ! 3-16 вычисляется решение йы йз,..., кв исходной задачи линейного программирования путем присваивания всем небазисным переменным нулевого значения, всем базисным переменным й, — соответствующих значений Ь;, а строка 17 возвращает эти значения. Чтобы показать, что процедура Б!мреех работает юрректно, сначала покажем, что если в процедуре задано начальное допустимое значение и она завершилась, то при этом или возвращается допустимое решение, или сообщается, что данная задача является неограниченной.

Затем мы покажем, что процедура Я!мреех завершается; н наконец, в разделе 294 (теорема 29.10), будет показано, что возвращаемое процедурой решение является оптимальным. Лемма 29.2 Пусть задана задача линейного программирования (А, Ь, с); предположим, что вызываемая в строке 1 процедуры б!мреех процедура 1н!т!ле!ее-Б!мреех возвращает каноническую форму, базисное решение которой является допустимым.

Тогда если процедура Б!мреех возвращает решение в строке 17, это решение является допустимым решением задачи линейного программирования. Если процедура Б!мреех выводит сообщение о неограниченности в строке 11, данная задача линейного программирования является неограниченной. Доказааеельсгава. Воспользуемся следующим тройным ннварнантом цикла: в начаче каждой итерации цикла иеййе в строках 3-12 1. имеющаяся каноническая форма эквивалентна канонической форме, полученной в результате вызова процедуры 1и!т!ле!ге-Я!мреех; 2. для всех 1 Е В выполняется Ь, ) 0; 3. базисное решение, связанное с данной канонической формой, является допустимым. Инициализации. Эквивалентность канонических форм для первой итерации очевидна. В формулировке леммы предполагается, что вызов процедуры 1м!т!ле!ге-Я[мреех в строке 1 процедуры Б!МРеех возвращает каноническую форму, базисное решение которой является допустимым. Следовательно, третье утверждение справедливо.

Далее, поскольку в базисном решении каж- Чаеесь 971. Избранные есемы 914 дой базисной переменной х, присваивается значение Ьь а допустимость базисного решения предполагает неотрицательность всех базисных переменных хс, то Ь, > О. Таким образом, второе утверждение инварианта также справедливо. Ь; = Ьс — ас,Ь, (согласно строке 9 процедуры Рсчот) = Ьс — а;,(Ьс/ас,) (согласно строке 3 процедуры Рсчот) (29.76) Необходимо рассмотреть два случая; ас, > О и а„< О. Если ам > О, то, поскольку 1 выбирается так, что Ьс/ас, < Ь,/ас, для всех с' е В, (29.77) мы имеем Ь, = Ь1 — асе(Ьс/асе) > Ь, — а;,(Ь,/ас,) =Ь; — Ь, =О, (согласно (29.76)) (согласно (29.77)) и, таким образом, Ь, > О.

Если ас, < О, то, поскольку ас„Ь, и Ьс неотри- цательны, из уравнения (29.76) вытекает, что неотрицательным должно быть и значение Ь,. Сохранение. Покажем, что данный инвариант цикла сохраняется при условии, что оператор геснгп в строке 11 не выполняется. Случай выполнения этой строки мы рассмотрим при обсуждении завершения цикла. Каждая итерация цикла ьтййе меняет ролями некоторую базисную и небазисную переменные с помощью выюва процедуры Рсчот. Согласно упр. 29.3.3 новая каноническая форма эквивалентна канонической форме из предыдущей итерации, которая, согласно инварианту цикла, эквивалентна исходной канонической форме. Теперь покажем, что сохраняется вторая часть инварианта цикла.

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

Список файлов книги

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