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

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

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

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

Предположим, что в начале каждой итерации цикла тепйе для всех с е В выполняется соотношение 6, > О, и покажем, что эти неравенства остаются верными после вызова процедуры Рсчот в строке 12. Поскольку изменения в переменные Ь, и множество В вносятся только в этой строке, достаточно показать, что она сохраняет данную часть инварианта. Пусть Ьс, ас н В обозначают значения перед вызовом процедуры Рсчот, а Ь, — значения, возвращаемые процедурой Р! чот. Во-первых, заметим, что Ь, > О, поскольку Ьс > О согласно инварианту цикла, ас, > О согласно строкам 6 и 9 процедуры эсмгьнх, а Ь, = Ьс/ас, согласно строке 3 процедуры Рсчот.

Для остальных индексов с е  — Я имеем 9!5 Глана гя Пинейное ноограиннроеание Теперь докажем, что это базисное решение является допустимым, т.е. что все переменные имеют неотрицательные значения. Небазисные переменные устанавливаются равными нулю и, следовательно, являются неотрицательными. Каждая базисная переменная х; задается уравнением х;=6; — ~~~ а,х ген В базисном решении х, = Ьь Используя вторую часть инварианта цикла, мож- но сделать вывод, что все базисные переменные х, неотрицательны. Завершение. Цикл невйе может завершиться одним из двух способов. Если его завершение связано с выполнением условия в строке 3, то текущее базисное решение является допустимым и это решение возвращается строкой 17.

Второй способ завершения связан с возвращением сообщения "задача неограниченная" строкой 11. В этом случае в каждой итерации цикла Гвг (строки 5-8) при выполнении строки б оказывается, что ем < О. Рассмотрим решение х, определяемое следующим образом: 00, если)= е, О, если 1 Е М вЂ” 1е), 6; — т,т абхг, если 1 б В . Покажем, что данное решение является допустимым, т.е. что все переменные являются неотрицательными. Небазисные переменные, отличные от х„равны нулю, а значение х, = 00 > О, следовательно, все небазисные переменные неотрицательны. Для каждой базисной переменной х, имеем х; = Ь; — ~~~ а„ху уегг = Ь, — ае,хе Из инварианта цикла вытекает, что Ь, > О, и мы имеем гце < О и х, = 00 > О. Таким образом, х, > О.

Теперь покажем, что целевое значение этого решения х является неограниченным. Из уравнения (29.42) целевое значение равно г = о+ ~сзху зев — о + сехе Поскольку с, > О (согласно строке 4 процедуры 81МРЫХ) и х, = 00, целевое значение бесконечно, а значит, задача линейного программирования неограниченная.

9!б Часть РИ. Избранные тены Остается показать, что процедура 81МИ.ВХ завершается и что после ее завершения возвращаемое решение является оптимальным. Оптимальность будет рассмотрена в разделе 29.4. Сейчас же мы рассмотрим завершение процедуры. Завершение В приведенном в начале данного раздела примере каждая итерация симплекс-алгорнтма увеличивала целевое значение, связанное с базисным решением. В упр.

29.3.2 предлагается показать, что ни одна итерация процедуры 81мвьвх не может уменьшить целевое значение, связанное с базисным решением. К сожалению, может оказаться, что итерация оставляет целевое значение неизменным. Это явление называется выраждеиноетвю, и сейчас мы рассмотрим его более подробно. Целевое значение изменяется в строке 14 процедуры Р1чот в результате присваивания В = с+с,Ь,. Поскольку вызов процедуры Р[ЧОт в процедуре 81МИ.ВХ происходит только при с, > О, целевое значение может остаться неизменным (т.е. В = с) только в том случае, когда Ь, будет равно нулю. Это значение вычисляется как Ь, = Ь~/ам в строке 3 процедуры Р1чот. Поскольку процедура Р[чот вызывается только при ам ,-б О, для того, чтобы Ь, было равно нулю н, как следствие, целевое значение осталось неизменным, должно выполняться условие Ь| = О.

Такая ситуация действительно может возникнуть. Рассмотрим следуквцую задачу линейного программирования: Э = Х1 + Х2 + Хэ х4 = 8 — хг — хэ хг — хз. Предположим, что в качестве вводимой переменной выбрана переменная хп а в качестве выводимой — х4. После замещения получим следующую задачу: 2=8 +хз — х4 хз=8 — хг — х4 Х5 = Х2 — ХЗ .

В этой ситуации единственная возможность замещения — когда вводимой переменной является хэ, а выводимой переменной — хб. Поскольку Ьз = О, после замещения целевое значение 8 останется неизменным: г = 8 + хэ — х4 — хз Х1 = 8 — Хэ — Х4 ХЗ = Х2 — Х5 Целевое значение осталось неизменным, но представление задачи изменилось. К счастью, если мы продолжим замещение, выбрав в качестве вводимой переменной хэ, а в качестве выводимой — хм целевое значение увеличится (до 16) и симплекс-алгоритм сможет продолжить свою работу. Глава 29. Линейное врограммирование 977 Вырожленность является единственным возможным препятствием для окончания симплекс-алгоритма, так как может привести к явлению, именуемому зацикливанием, когда канонические формы на двух разных итерациях одинаковы.

Из-за вырожденности процедура б~мрьвх может выбирать последовательность замещающих операций, которые оставляют целевое значение неизменным, но при этом повторяют последовательность из одних и тех же канонических форм. Поскольку алгоритм Б~мрых детерминированный, в случае зацикливания он бесконечно проходит по одной и той же последовательности канонических форм, никогда не заканчивая свою работу. Зацикливание — единственная причина, по которой процедура Б!МРеех может не завершить свою работу.

Чтобы показать это, сначала разработаем некоторую дополнительную технику. На каждой итерации процедура 81МРЬВХ в дополнение к множествам Х и В поддерживает А, 6, с и е. Хотя для эффективной реализации симплекс-алгоритма требуется явная поддержка А, 6, с и о, можно обойтись и без нее. Другими словами, множества базисных и небазисных переменных достаточно для того, чтобы единственным образом определить каноническую форму.

Перед тем как доказать этот факт, докажем одну полезную алгебраическую лемму. Лемма 29З Пусть 1 представляет собой множество индексов и пусть для каждого 7 Е 1 а и )7 — действительные числа, ах — действительная переменная. Пусть также 7— некоторое действительное число. Предположим, что для любых х выполняется следующее условие: (29.78) 7Е7 Тогда о = ДЗ для каждого 7 Е 1, и 7 = О. Доказашельслюво.

Поскольку уравнение (29.78) выполняется для любых значений х, можно выбрать для них определенные значения, чтобы сделать заключения об о, ~3 и у. Выбрав х = О для всех 7' Е 1, можно сделать вывод, что 7 = О. Теперь выберем произвольный индекс 7' Е 1 и зададим ху — — 1 и хь = О для всех к ~ 7. В таком случае должно выполняться равенство а = ~3 . Поскольку индекс 7 выбирался из множества 1 произвольным образом, можно заключить, что ае = )31 для всех 7' ~ 1. Конкретная задача линейного программирования может иметь много различных канонических форм; вспомним, что любая каноническая форма имеет то же самое множество допустимых и оптимальных решений, что и исходная задача.

Теперь покажем, что каноническая форма любой задачи линейного программирования уникальным образом определяется множеством базисных переменных, т.е, что с заданным набором базисных переменных связана единственная каноническая форма (с однозначно определяемым множеством коэффициентов в правой части). Часть 9?Ь Иэбранные тены 9?а Лемма 29.4 Пусть (А, 6, с) представляет собой задачу линейного программирования в стан- дартной форме.

Задание множества базисных переменных В однозначно опреде- ляет соответствующую каноническую форму. 2=С+~~ СХ ?еи х;=6; — ~~~ а;х дляеЕВ ?ЕУ (29.?9) (29.80) а вторую как 2=С + Схэ э эеФ х,=Ь; — ~~~ а, х? длягеВ зем (29.81) (29.82) Рассмотрим систему уравнений, образованную путем вычитания каждого уравнения строки (29.82) из соответствующего уравнения строки (29.80). Полученная система имеет вид 0 = (6; — 6~) — Я(а, — а~ )х.

для ! Е В тек или, что эквивалентно, абхэ=(6,— Ь;)+ ) а,"х дла!бВ. эеМ ?ем Теперь для всех ( е В применим лемму 29,3, где а = аб, Д = а';, т = 6; — 6;' и 1 = Ю. Поскольку сн, = !3;э имеем а; = а,' для всех ! б М, а поскольку у = О, то Ь; = 6',. Таким образом, в этих двух канонических формах матрицы А и А' и векторы 6 и Ь' идентичны.

С помощью аналогичных рассуждений в упр. 29.3.1 показано, что в этом случае также справедливо с = с' и с = и', следовательно, рассматриваемые канонические формы должны быть идентичны. Теперь можно показать, что зацикливание — единственная возможная причина, по которой процедура 8!мр!.нх может не завершиться. Доказательство. Будем проводить доказательство от противного. Предположим, что существуют две различные канонические формы с одинаковым множеством базисных переменных В. Эти канонические формы должны также иметь одинаковые множества небазисных переменных )н' = !1,2,..., и+ т) — В. Запишем первую каноническую форму как Глава 29.

Линейное нрвгриммирование 919 Лемма 29.5 Если процедура Б!М9ЬЕХ не завершается не более чем за ("+™) итераций, она зацикливается. Доказаллельство. Согласно лемме 29.4 множество базисных переменных В однозначно определяет каноническую форму. Всего имеется и + т переменных, а ~В~ = т, так что существует не более чем ("+~) способов выбрать В. Следовательно, всего имеется не более чем ("+ ) различных канонических форм.

Поэтому, если процедура Б|М9ЬНХ совершает более чем ("+ ) итераций, она должна зациклиться. Зацикливание теоретически возможно, но встречается чрезвычайно редко. Его можно избежать путем несколько более аккуратного выбора вводимых и выводимых переменных. Один из способов состоит в подаче на вход слабого возмущения, что приводит к невозможности получить два решения с одинаковым целевым значением. Второй способ заключается в том, чтобы всегда выбирать переменную с наименьшим индексом. Эта стратегия известна как правило Бленда 1В1апй'з гп1е). Мы не будем приводить доказательства, что эти стратегии позволяют избежать зацикливания.

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

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

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