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

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

Файл №1123758 Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.) (Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.)) 181 страницаТ. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.) (1123758) страница 1812019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

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

Начнем с двух уже рассмотренных ранее задач: задачи поиска кратчайших путей из одной вершины (з1п8!е зоигсе зЬоПез1 раПз ргоЫеш) (см. главу 24) и задачи максимального потока (шах1шпш-1(ои ргоЫеш) (см. главу 26). После этого мы опишем задачу поиска потока с минимальными затратами (ш(п(ппип-соз1-йо~ч). Для данной задачи существует алгоритм с полиномиальными затратами времени, не основанный на линейном программировании, однако мы не будем его рассматривать. И наконец, мы опишем задачу многопродуктового потока (шп111сошой1упоч ргоЫеш), единственный известный полиномиальный по времени алгоритм решения которой базируется на линейном программировании. Глава 29. Линейное программирование 887 Кратчайшие пути Максимизировать Н [г] при условиях И [с] < и'[и] + и (и, е) для всех (и, о) е Е, И[а] = О. (29.44) (29.45) (29.46) В этой задаче [У[ переменных Н [с], по одной для каждой вершины и е Е, и [Е[+ + 1 ограничение, по одному для каждой дуги плюс дополнительное ограничение, состоящее в том, что исходной вершине всегда соответствует значение О.

Максимальный поток Задачу максимального потока также можно сформулировать в виде задачи линейного программирования. Напомним, что нам задан ориентированный граф С = ()г, Е) в котором каждая дуга (и, с) Е Е имеет неотрицательную пропускную способность с(и,и) > О, и две различные вершины, источник а и сток 1. Согласно определению из раздела 26.1, поток — это действительная функция г': Ъ" х У вЂ” В., обладающая тремя свойствами: она удовлетворяет ограничениям пропускной способности; меняет знак при изменении направления; обеспечивает сохранение потока. Максимальный поток — это поток, который удовлетворяет Задачу поиска кратчайших путей из одной вершины-источника, описанную в главе 24, можно сформулировать в виде задачи линейного программирования. В данном разделе мы остановимся на формулировании задачи кратчайшего пути для одной пары источник-адресат, а более общий случай задачи поиска кратчайших путей из одного источника предлагается рассмотреть в качестве упражнения 29.2-3.

В задаче поиска кратчайшего пути для одной пары источник-адресат нам дан взвешенный ориентированный граф С = (г',Е), весовая функция ю: Е - хь, ставящая в соответствие дугам графа действительные веса, исходная вершина а и конечная вершина ~. Мы хотим вычислить значение д[г], которое является весом кратчайшего пути из з в г.

Чтобы записать эту задачу в виде задачи линейного программирования, необходимо определить множество переменных и ограничения, которые позволят определить, какой путь из з в 1 является кратчайшим. К счастью, алгоритм Беллмана-Форда именно для этого и предназначен. Когда алгоритм Беллмана-Форда завершает свою работу, для каждой вершины е оказывается вычисленным значение 0 [и], такое что для каждой дуги (и, е) Е Е выполняется условие Н [е] < Н [и] + и (и, с). Исходная вершина первоначально получает значение И [а] = О, которое никогда не изменяется. Таким образом, мы получаем следующую задачу линейного программирования для вычисления веса кратчайшего пути из з в г: Часть ЧП.

Избранные темы 888 данным ограничениям и максимизирует величину потока, представляющую собой суммарный поток, выходящий из источника. Таким образом, поток удовлетворяет линейным ограничениям, а величина потока является линейной функцией. Напомним также, что мы предполагаем, что с(и,и) = О, если (и,с) ф Е. Теперь можно записать задачу максимизации потока в виде задачи линейного программирования: г (з,с) ьеи ,г (и,с) < с(и,п) У (и, с) = -г" (и, и) ,) (и, о) = 0 (29.47) Максимизировать при условиях для всех и, о Е У, (29.48) для всех и, с Е У, (29.49) для всех и е У вЂ” (з, г) . (29.50) ьеи Эта задача линейного программирования содержит ~Ц переменных, соответствующих потоку между каждой парой вершин, и 2 Щ~ + ٠— 2 ограничений.

Обычно более удобно решать задачу линейного программирования меньшей размерности. Запись задачи (29.47)-(29.50), например, можно упростить, если учесть, что поток и пропускная способность каждой пары вершин и, о, таких что (и, и) ф Е, равны О.

Но более эффективно было бы переписать задачу так, чтобы в ней содержалось 0(У+ Е) ограничений, что и предлагается сделать в упражнении 29.2-5. Поиск потока с минимальными затратами До сих пор в данном разделе мы использовали линейное программирование для решения задач, для которых нам уже известны эффективные алгоритмы. Фактически, хороший алгоритм, разработанный специально для некой задачи, как, например, алгоритм Дейкстры (РОкз1га) для задачи поиска кратчайшего пути из одной вершины или метод проталкивания для задачи максимального потока, обычно более эффективен, чем линейное программирование, — как в теории, так и на практике. Истинная ценность линейного программирования состоит в возможности решения новых задач. Вспомним задачу выработки предвыборной политики, описанную в начале данной главы.

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

Глава 29. Линейное программирование 889 а (и, с) .г (и, о) = (2 . 2) + (5 2) + (3 . 1) + (7 . 1) + (1 . 3) = 27. Существуют алгоритмы с полиномиальными затратами времени, специально разработанные для задачи поиска потока с минимальными затратами, но в книге мы не будем их рассматривать. Запишем данную задачу в виде задачи линейного программирования. Эта задача линейного программирования напоминает задачу, записанную для максимизации потока, однако она содержит дополнительное ограничение, состоящее в том, что величина потока составляет ровно д единиц, и новую целевую функцию минимизации затрат: а (и, о) г" (и, и) (ь,и)ед г (и,с) < с(и, и) г" (и,о) = — г" (с,и) У(и,о) = О иеи ,'~ У(а,о)= с1. (29.5!) Минимизировать при условиях для всех и, с Е У, (29.52) для всех и,о Е 1г, (29.53) для всех и Е У вЂ” (з, й), (29.54) (29.55) иЕЕ Мпогопродуктовый поток В качестве последнего примера рассмотрим еще одну задачу поиска потоков.

Предположим, что компания 1лс1су Риск из раздела 26.1 приняла решение о расширении ассортимента продукции и отгружает не только хоккейные шайбы, по Рассмотрим, например, следующее обобщение задачи максимального потока. Предположим, что каждой дуге (и, с), помимо пропускной способности с(и, о), соответствует некая стоимость а (и, с), принимающая действительные значения. По техническим причинам мы требуем, чтобы в случае а (и, о) ) О выполнялось соотношение а(с,и) = О. Если по дуге (и,с) послано г'(и,с) единиц потока, это приводит к затратам а(и,п) . Г" (и, с).

Нам также задано целевое значение потока Н. Мы хотим переправить Н единиц потока из а в 1 таким образом, чтобы общая стоимость, связанная с передачей потока, ~ („„~ на(и,и) У(и,о), была минимальной. Эта задача называется задачей поиска потока с минимальными затратами (пшшпшп-созыйои). На рис. 29.2а представлен пример задачи поиска потока с минимальными затратами.

Нам нужно переслать 4 единицы потока из в в 1, минимизировав суммарные затраты (пропускная способность каждого ребра обозначена как с, а затраты передачи — как а). С любым допустимым потоком, т.е. функцией 7', удовлетворяющей ограничениям (29.48К29.50), связаны затраты 2;(„„1 и а (и, о) з (и, о). Мы хотим найти такой поток, который минимизирует эти затраты. Оптимальное решение показано на рис. 29.2б; ему соответствуют суммарные затраты 890 Часть Ч!!.

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

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

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