![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Глава 22. Потоки в сетях. шин, а потом обращаться к ним по мере необходимости, мы вызываем функцию phiR, чтобы получить каждое значение потенциала; она проходит вверх по дереву с тем
Подобные изменения никак не отражаются на производительности алгоритма в худшем случае, но они несомненно повышают его быстродействие в практических приложениях. Несколько других соображений по повышению производительности сетевого симплексного алгоритма исследуются в упражнениях (см. упражнения 22.126-22.130), и они представляют только незначительную часть того, что было предложено. Как мы неоднократно подчеркивали на протяжении всей этой книги, задача анализа и сравнения алгоритмов на графа сложна сама по себе. С появлением сетевого симплексного алгоритма эта задача еще больше усложняется за счет различных подходов к реализации и широкому разнообразию приложений, с которыми нам приходится сталкиваться (см. раздел 22.5). Какая из реализаций наилучшая? Имеем ли мы право сравнивать реализации, в основу которых положены доказуемые границы для худших случаев? Насколько точно мы можем выразить в конкретных числах различие в производительности различных реализаций применительно к конкретным приложениям? Должны ли мы использовать различные реализации, приспособленные под конкретное приложение? Мы рекомендуем читателям набраться большего опыта решения вычислительных задач с использованием различных реализаций сетевого симплексного алгоритма и найти ответ на некоторые из предложенных вопросов, проведя эмпирические исследования, подобные тем, которые мы неоднократно и настоятельно рекомендовали на протяжении всей книги. В стремлении отыскать решение задач о потоке минимальной стоимости, мы сталкиваемся со знакомыми труднорешаемыми проблемами, тем не менее, опыт, который мы приобрели при решении задач с возрастающей трудностью на протяжении этой книги, формирует у вас солидный фундамент для разработки эффективных реализаций, которые способны эффективно решать широкие классы важных практических задач. Некоторые из этих исследований описаны в упражнениях в конце этого и следующего разделов, однако, эти упражнения следует рассматривать только в качестве отправной точки. Каждый читатель может провести новые эмпирические исследования, которые способны пролить свет на те или иные реализации и приложения, представляющие интерес в научном плане. Возможность кардинально повысить производительность приложений, которые остро в этом нуждаются, за счет правильного развертывания классических структур данных и алгоритмов (либо разработки новых) для базовых задач, делает изучение реализаций сетевого симплексного алгоритма благодатной областью исследований, к тому же существует обширная литература по реализациям этого алгоритма. В прошлом прогресс в этой области имел решающее значение, ибо он помог уменьшить огромные затраты на решение сетевых симплексных задач. Исследователи предпочитают полагаться на тщательно подобранные библиотеки в своем стремлении решить эти задачи, что, собственно, и сегодня оправдывает себя во многих случаях. Тем не менее, таким библиотекам все труд- Часть 5. Алгоритмы на графах
|