Популярные услуги

Любая задача по линалу
Любая задача по математическому анализу и по интегралам и дифференциальным уравнениям
КМ-3 Важнейшие аспекты теории графов - любой вариант за 3 суток!
Решу любую задачу
НОМОТЕХ
Предельные теоремы и математическая статистика
Любая задача по Линейной алгебре и аналитической геометрии
Контрольная работа по рядам (КМ-3) ИДДО 2022
Повышение уникальности твоей работе
Сдам любой тест по дискретке в течение суток на положительную оценку!
Главная » Лекции » Математика » Теория графов и алгоритмы решения задач » Вычислительная сложность алгоритмов

Вычислительная сложность алгоритмов

2021-03-09СтудИзба

Вычислительная сложность алгоритмов

Методы решения многих задач мате­матики носят алгоритмический характер. Для задач, имею­щих практический интерес, ищут именно разрешающие алгорит­мы. Уточнение понятия алгоритма позволило выявить алгорит­мически неразрешимые проблемы.

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

Поиск эффективных алгоритмов для решения задач дискрет­ной математики привел к одной из важнейших ее проблем  -  к решению вопроса о возможности исключения перебора вариан­тов в комбинаторных алгоритмах.

В самом широком смысле эффективность алгоритма связана со всеми вычислительными ресурсами, необходимыми для его работы. Однако обычно под наиболее эффективным понимается наиболее «быстрый» алгоритм.

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

Оценка сложности алгоритмов и создание эффективных алго­ритмов -   одна из важнейших задач современной дискретной математики.

Существует много критериев оценки алгоритмов. Но можно сказать, что одним из самых важных критериев является его временная сложно­сть. Время ра­боты алгоритма можно выразить в виде функции от «размеров» входных данных, требуемых для описания задачи. Входные и вы­ходные данные можно кодировать некоторым «разумным» спо­собом в виде двоичных последовательностей из нулей и единиц. Тогда алгоритм можно рассматривать как последовательность двоичных операций, работающих с памятью из двоичных же символов.

Временная сложность алгоритма отражает затраты времени (число шагов), требуемые для его работы. Это  функция, которая каждой входной длине n ставит в соответствие мини­мальное время, затрачиваемое алгоритмом на решение всех од­нотипных индивидуальных задач этой длины.

Рекомендуемые материалы

Из курса математического анализа известно, что функция f(n) есть O(g(n)), если существует константа c, такая что |f(n)| <= c(g(n)) для всех n >= 0.

Полиномиальным алгоритмом (или алгоритмом полиномиаль­ной временной сложности) называется алгоритм, у которого вре­менная сложность равна О(Р(n)), где Р(n) — некоторая поли­номиальная функция от входной длины n. Алгоритмы, для вре­менной сложности которых не существует такой оценки, называ­ются экспоненциальными.

Задача считается труднорешаемой, если для нее не сущест­вует разрешающего полиномиального алгоритма.

Кажется, что по мере совершенствования вычислительной техники и роста ее быстродействия проблема оптимизации алгоритмов не должна стоять так остро. Но следующие табл. 2, 3 демонстрируют обратное. Из последней таблицы видно, что повышение быстродей­ствия машины не дает существенного роста размерности разре­шимых задач, если алгоритм имеет экспоненциальную слож­ность.

Таблица 2

Оценка зависи­мости времени работы алгоритмов сложности, равной n, n3, 2n, от размеров входной информации

Функция  временной  сложности

Размерность n

10

20

50

60

n

0,00001 секунд

0,00002 секунд

0,0005 секунд

0,0006 секунд

n3

0,001 секунд

0,008 секунд

0,125 секунд

0,216 секунд

2n

0.001 секунд

1,0 секунд

35,7 дней

366 столетий

Таблица 3

Оценка максимальной размерности задачи, решаемой за один час

Функция временной сложности

Современная ЭВМ

ЭВМ, в 100 раз более быстрая

ЭВМ, в 1000 раз более быстрая

n

N1

100 N1

1000 N1

n3

N2

4.64 N2

10 N2

2n

N3

N3 + 6.64

N3 + 9.97

Многие прикладные задачи могут быть сформулированы в терминах теории графов. Однако при решении реальных задач характеристики соответствующих графов (например, число вер­шин n и число ребер m) весьма велики, и их анализ возможен лишь с привлечением ЭВМ.

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

Задачи теории графов можно классифицировать следующим образом:

1) задачи, для которых имеются алгоритмы сложности O(n + m);

2) задачи, для которых известны алгоритмы сложности                      О (Р(n  + m)), где Р — нелинейный полином;

3) задачи, для которых известны только алгоритмы экспонен­циальной сложности, но про которые нельзя сказать, что для них нет алгоритмов полиномиальной сложности;

4) задачи, которые могут быть решены лишь с использовани­ем алгоритма экспоненциальной сложности.

Информация в лекции "1. Основные определения" поможет Вам.

Разбиение задач на первые три класса зависит от мастерства математика. Однако задачи четвертого класса принципиально нельзя отнести к первым трем классам, поскольку они включают в себя экспоненциальные процедуры, например, просмотр всех подграфов исходного графа.

К четвертому классу относятся задачи перечисления всех остовных деревьев графа и перечисления всех циклов графа. Это объясняется тем, что у полного n-вершинного графа число остовных деревьев равно nn-2 , число циклов дли­ны i равно Cin(i - 1)!, т. е. общее число циклов составляет


К первому классу относятся, например, следующие задачи: поиск остовного дерева графа; выделение компонен­ты связности графа и сильной связности орграфа; нахождение минимального пути в орграфе (или минимального маршрута в графе). Для решения этих задач построены алгоритмы, имеющие сложность О(n + m).

Второй класс в настоящее время включает в себя такие за­дачи: нахождение матрицы связности;  нахождение мини­мального пути в нагруженном графе (сложность алгоритма О(n3)); нахождение минимального ос­товного дерева в нагруженном графе (сложность алгоритма О (n2)).

Третий класс содержит следующие задачи: о существовании в графе гамильтонова цикла (задача коммивояжера); об определении изоморфизма данного графа G1 какому-нибудь подгра­фу графа G2, и многие другие задачи. Для решения этих задач не существует полиномиальных алго­ритмов, хотя не кажется безусловным, что их решение возможно лишь с помощью экспоненциальных алгоритмов. Для многих за­дач этого класса справедливо следующее свойство сводимости: существование полиномиального алгоритма для решения одной из них дало бы полиномиальный алгоритм для решения другой. В современной дискретной математике третий класс задач явля­ется предметом пристального изучения.

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