Главная » Просмотр файлов » 1626435694-d107b4090667f8488e7fa1ea1b3d0faa

1626435694-d107b4090667f8488e7fa1ea1b3d0faa (844295), страница 26

Файл №844295 1626435694-d107b4090667f8488e7fa1ea1b3d0faa (Ершов 1977 - Введение в теоретическое программирование) 26 страница1626435694-d107b4090667f8488e7fa1ea1b3d0faa (844295) страница 262021-07-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

ОБщее исследование 1Р5 результата оптимального упорядочения: один — для дерева формулы вычисления лм, другой — более сложный (римскими цифрами указаны значения функции ширины, арабскими — оптимальный порядок в обратной нумерации)*). Оценки числа шагов. Для основной нити нашего нале»кения этот пример поучителен формой алгоритма, решающего поставленную комбинаторную задачу. Наиболее важным свойством этого алгоритма является его направленность.

С одной стороны, мы по существу испольауем информацию, заложенную в дереве формулы, являющуюся «материалом» нашей задачи. Нам надо «пройти» каждую вершину и «обработать» каждое бинарное отношение, образующее ту или иную дугу дерева. Мы'замечаем разницу между висячими и прочими вершинами. С другой стороны, в работе алгоритма можно усмотреть некоторое единое направление его развития: сначала от висячих верп3ин к корню при построении функции ширины, а затем — наоборот, при упорядочивании. Если мы н откладываем некоторые вершины «про запас» (запоминание вершин с ббльшим значением функции ширины), то и это мы делаем систематически: мы пе рыскаем произвольно среди них, а берем всегда вершину, запомненную последней.

Для математического рассмотрения нам, однако, недостаточно такого интуитивного представления об эффективности алгоритма, которое мы выра>каем только словами: переборный алгоритм, направленный алгоритм и т. и. Роль критериев эффективности алгоритмов играют уже упоминавшиеся оценки сложности алгоритма. Мы уже знаем, что каждая программа характериауется числом команд и объемом расходуемой памяти.

Заметим, что число команд можно понимать двояко: как число команд в программе, так и число выполнившихся команд при выполнении программы. В ряде разделов математики и программирования первая характеристика тоже важна, однако эффективность программы лучше характеризуется вторым показателем. Аналогичные характеристики рассматривают и для алгоритмов. Если зафиксировать способ описания алгоритма (алгоритмический язык), точно описать, как данные размещаются в памяти, то тогда, выполняя алгоритм для некоторых исходных данных, можно точно посчитать или оценить как число элементарных шагов выполнения алгоритма, так и число единиц информации, которое надо одновременно размещать в памяти. Если исходные данные имеют некоторый характеризукнций их параметр (норядок матрицы, число вершин,нли дуг в графе, количество независимых переменных и т. п.), то тогда н подсчнтываемое нлн *) Для читателей, которые заинтересовались алгоритмом оптимального упорядочения самиы по себе, заметим, что нопыткн его обобщения на лнйейные программы с более сложными, чем деревья, информационными связями наталкиваются на большие трудности.

гл. 3. Алгогитмизлцип оцениваемое число шагов н объем памяти становятся функциями этого параметра. Эти функции и называют показателями иля оценками сложности алгоритма (или программы). Оценки числа шагов называют «ременными оценками, оценки числа требуемых ячеек памяти так и называются оценками памяти, яли емкостны.ни оценками. Обычно в качестве параметра, характеризующего исходные данные алгоритма, берут некоторое натуральное число п, как-то <вязанное о их объемом.

Тогда эффективность алгоритмов по времени их работы сопоставляют со скоростью роста временной оцении как функции г'(п). В этой градации скоростей роста различают лгрежде всего следующие функции: г"(п) = и — линейная оценка, Р(п) = и 1ои, и — логарифмическая оценка, г"(п) = и' — квадратичная оценка, Г(п) = а,п" +а,п" '+... '- ໠— полиномиальная оценка, г"(и) = а" — экспоненциальная оцеяка, г'(п) = и! — факториальная оценка, 1(а) = и" — гиперэкспоненциальная оценка.

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

Прил«ером алгоритма с логариф.мической оценкой являются некоторые алгоритмы упорядочемия п чисел. Алгоритмы с полиномиальной (в частном случае квадратичной) оценкой считаются крайним случаем «практичных» алгоритмов, тогда как алгоритмы с более высокими оценками .применяются только для малых значений п, а для больших значений заменяются «приближенными» алгоритмами, дающими з какомгто смысле приблнаительное решение задачи с приемлемой временнбй оценкой (по возможности не более чем квадратичной). Особая роль квадратичной оценки выясняется яз следующего интуитивного рассуждения. Линейная временная оценка означает, что в таком алгоритме каждая входная переменгая вносит свой вклад в результат независимо от других.

Типичный пример— суммирование чисел. Здесь то, что мы назвали направленностью алгоритма, выступает в своем чистом виде: выполнив несколько операций над входной переменной, мы к ней больше не возвраецаемся. Квадратичные оценки появляются тогда, когда вклад Э Э.Э. РАСКРАСКА ВЕРШЕН ГРАФА. ОВЩЕЕ ЕССЛЕДОВАНЕЕ 1гг каждой входной переменной в результат существенно зависиР от ее «взаимодействия» со всеми, или почти со всеми, другими переменными. Читателю может покаааться странным, но ему будеР не очень просто сразу придумать задачу, которая, по существу, требовала бы для своего решения алгоритма с квадратичной оценкой.

Первое, до чего додумался автор, размышляя над этими строками,— это построение многочлена, принимающего заданные и. значений (такие многочлееы называются интерполяционнымн, и кто-нибудь из читателей анает про многочлены Лагранжа„ удовлетворяющие такому требованию). Там, для заданных значений многочлена х„х„..., х„, нужно вычислить все возможныо их разности хэ — хг (э, у = 1, ..., п), что и даст квадратичную оценку. Вернемся теперь к нашей задаче. Для того чтобы связать ео с только что проведенными рассуждениями, нам надо договориться о том, что характеризует «независимые переменные» и их число в исходных данных и «единицу действия» в алгоритмах раскраски.

Мы уже оценив»ля комбинаторпый объем различных раскрасок как функцию числа и вершин графа. Мы можем полностью описать граф, если для каждой вершины указать множество ребер„ которым она принадлежит, ели, что то же самое, множество смежных ей вершин. Такое описание «ближайшего окружения» вершины или, как мы будем говорить, окрестности 1-го порядка мы к будем считать «единицей информации» в задании графа. Конечно, строго говоря, ее нелвзя по-настошцему считать единицей информации, так как ее объем весьма различен.

Изолированная вершина имеет пустую окрестность 1-го порядка, а «звезда», т. е. вершина графа, смежная со всеми остальными, содержит в этой окрестности вершины всего графа. Общий объем этой информации тоже весьма рааличен при фиксированном и: от нуля ребер в графе, состоящем из изолированных вершин, 'до п — 1 ребра в самом. простом связном графе (незамкнутая цепочка из п Ъершин) и, наконец, до п(п — 1) ребер в п-полпог«графе (в котором все и вершин попарно смежны). Тем не менее для прикидочных рассуждений об эффективности алгоритмов раскраски, когда мы ЕФ делаем никаких дополнительных предположений о способах представления графов, такая трактовка единицы информадии для нас пока достаточна.

Там же, где еам удастся вставить в рассуждение число р ребер графа, мы будем также иепольаовать его и качестве параметра задачи. При таком подходе естественно рассматривать в качестве «шага» алгоритма раскраски совокупность действий, относящихся к вершине и ее окрестности 1-го порядка. Если же нам требуется большая детальность, то тогда одним шагом может стать «отработка» одного ребра графа, например, проверка, какой краской. окрашена смежная вершина.

гл. 3. Алгоэитмизапия $3.4. Раскраска вершин графа. Поиск алгоритма Итак, мы приступаем к поискам практичного алгоритма раскраски вершин графа, сознавая, что минимальные раскраски в общем случае требуют экспоненциального числа шагов. Это означает, что нам придется подойти к построению алгоритма с другого конца: отказавшись от претензии на нахождение заведомо минимальных раскрасок, мы аадаемся некоторой общей организацией алгоритма, обеспечивающей приемлемую временную оценку, но з рамках атой органиаации постараемся действовать каким-то разумным способом, конкретнзирующим общий принцип здравого смысла: «поступай наилучшим образом в пределах возможногое.

Рамки возможного и то, что считается наилучшим, это и есть содержание того конкретного анализа нашей задачи, который мы пытаемся предпринять. Эвристические методы. Человеку в повседневной жизни постоянно приходится сталкиваться с ситуациями, которые в их математическом, выражении выглядят как комбинаторные задачи, требующие непомерных затрат на поиск абсолютно наилучшего решения и поэтому заставляющие вырабатывать какую-то ограниченную тактику поиска приемлемого решения. Вот примеры таких правил: — не отменяй принятых решений; — упаковывая вещи в чемодан, начинай с самых громоздких гредметов; — в поисках, максимума функции двигайся в направлении градиента; — лучше синица в руках,- чем журавль з небе; — не зная, как поступитть поступай как-нибудь.

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

Тип файла
DJVU-файл
Размер
5,24 Mb
Тип материала
Высшее учебное заведение

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

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