Вычислительная сложность
Вычисли́тельная сло́жность — понятие в информатике и теории алгоритмов, обозначающее функцию зависимости объёма работы, которая выполняется некоторым алгоритмом, от размера входных данных. Раздел, изучающий вычислительную сложность, называется теорией сложности вычислений. Объём работы обычно измеряется абстрактными понятиями времени и пространства, называемыми . Время определяется количеством элементарных шагов, необходимых для решения задачи, тогда как пространство определяется объёмом памяти или места на носителе данных. Таким образом, в этой области предпринимается попытка ответить на центральный вопрос разработки алгоритмов: «как изменится время исполнения и объём занятой памяти в зависимости от размера входа?». Здесь под размером входа понимается длина описания данных задачи в битах (например, в задаче коммивояжёра длина входа почти пропорциональна количеству городов и дорог между ними), а под размером выхода — длина описания решения задачи (наилучшего маршрута в задаче коммивояжёра).
В частности, теория сложности вычислений определяет NP-полные задачи, которые недетерминированная машина Тьюринга может решить за полиномиальное время, тогда как для детерминированной машины Тьюринга полиномиальный алгоритм неизвестен. Обычно это сложные задачи оптимизации, например, задача коммивояжёра.
С теоретической информатикой тесно связаны такие области как анализ алгоритмов и теория вычислимости. Связующим звеном между теоретической информатикой и алгоритмическим анализом является тот факт, что их формирование посвящено анализу необходимого количества ресурсов определённых алгоритмов решения задач, тогда как более общим вопросом является возможность использования алгоритмов для подобных задач. Конкретизируясь, попытаемся классифицировать проблемы, которые могут или не могут быть решены при помощи ограниченных ресурсов. Сильное ограничение доступных ресурсов отличает теорию вычислительной сложности от вычислительной теории, последняя отвечает на вопрос, какие задачи, в принципе, могут быть решены алгоритмически.
Временная и пространственная сложности
Теория сложности вычислений возникла из потребности сравнивать быстродействие алгоритмов, чётко описывать их поведение (время исполнения и объём необходимой памяти) в зависимости от размера входа.
Количество элементарных операций, затраченных алгоритмом для решения конкретного экземпляра задачи, зависит не только от размера входных данных, но и от самих данных. Например, количество операций алгоритма сортировки вставками значительно меньше в случае, если входные данные уже отсортированы. Чтобы избежать подобных трудностей, рассматривают понятие временной сложности алгоритма в худшем случае.
Временная сложность алгоритма (в худшем случае) — это функция от размера входных данных, равная максимальному количеству элементарных операций, проделываемых алгоритмом для решения экземпляра задачи указанного размера.
Аналогично понятию временной сложности в худшем случае определяется понятие временная сложность алгоритма в наилучшем случае. Также рассматривают понятие среднее время работы алгоритма, то есть математическое ожидание времени работы алгоритма. Иногда говорят просто: «Временная сложность алгоритма» или «Время работы алгоритма», имея в виду временную сложность алгоритма в худшем, наилучшем или среднем случае (в зависимости от контекста).
По аналогии с временной сложностью, определяют пространственную сложность алгоритма, только здесь говорят не о количестве элементарных операций, а об объёме используемой памяти.
Асимптотическая сложность
Несмотря на то, что функция временной сложности алгоритма в некоторых случаях может быть определена точно, в большинстве случаев искать точное её значение бессмысленно. Дело в том, что во-первых, точное значение временной сложности зависит от определения элементарных операций (например, сложность можно измерять в количестве арифметических операций, битовых операций или операций на машине Тьюринга), а во-вторых, при увеличении размера входных данных вклад постоянных множителей и слагаемых низших порядков, фигурирующих в выражении для точного времени работы, становится крайне незначительным.
Рассмотрение входных данных большого размера и оценка порядка роста времени работы алгоритма приводят к понятию асимптотической сложности алгоритма. При этом алгоритм с меньшей асимптотической сложностью является более эффективным для всех входных данных, за исключением лишь, возможно, данных малого размера. Для записи асимптотической сложности алгоритмов используются асимптотические обозначения:
| Обозначение | Интуитивное объяснение | Определение |
|---|---|---|
Примеры
- «почистить ковёр пылесосом» требует время, линейно зависящее от его площади (
), то есть на ковёр, площадь которого больше в два раза, уйдет в два раза больше времени. Соответственно, при увеличении площади ковра в сто тысяч раз объём работы увеличивается строго пропорционально в сто тысяч раз, и т. п.
- «найти имя в телефонной книге» требует всего лишь времени, логарифмически зависящего от количества записей (
), так как, открыв книгу примерно в середине, мы уменьшаем размер «оставшейся проблемы» вдвое (за счет сортировки имен по алфавиту). Таким образом, в книге объёмом в 1000 страниц любое имя находится не больше, чем за
раз (открываний книги). При увеличении объёма страниц до ста тысяч проблема все ещё решается за
заходов. (См. Двоичный поиск.)
Замечания
Поскольку , в асимптотической оценке сложности часто пишут «логарифм» без упоминания основания — например,
.
Необходимо подчеркнуть, что степень роста наихудшего времени выполнения — не единственный или самый важный критерий оценки алгоритмов и программ. Приведем несколько соображений, позволяющих посмотреть на критерий времени выполнения с других точек зрения:
Если создаваемая программа будет использована только несколько раз, тогда стоимость написания и отладки программы будет доминировать в общей стоимости программы, то есть фактическое время выполнения не окажет существенного влияния на общую стоимость. В этом случае следует предпочесть алгоритм, наиболее простой для реализации.
Если программа будет работать только с «малыми» входными данными, то степень роста времени выполнения будет иметь меньшее значение, чем константа, присутствующая в формуле времени выполнения. Вместе с тем и понятие «малости» входных данных зависит от точного времени выполнения конкурирующих алгоритмов. Существуют алгоритмы, такие как , асимптотически самые эффективные, но которые никогда не используют на практике даже для больших задач, так как их константы пропорциональности значительно превосходят подобные константы других, более простых и менее «эффективных» алгоритмов. Другой пример — фибоначчиевы кучи, несмотря на асимптотическую эффективность, с практической точки зрения программная сложность реализации и большие значения констант в формулах времени работы делают их менее привлекательными, чем обычные бинарные деревья.
Если решение некоторой задачи для n-вершинного графа при одном алгоритме занимает время (число шагов) порядка nC, а при другом — порядка n+n!/C, где C — постоянное число, то согласно «полиномиальной идеологии» первый алгоритм практически эффективен, а второй — нет, хотя, например, при С=10(1010) дело обстоит как раз наоборот.А. А. Зыков
Известны случаи, когда эффективные алгоритмы требуют таких больших объёмов машинной памяти (без возможности использования внешних средств хранения), что этот фактор сводит на нет преимущество «эффективности» алгоритма. Таким образом, часто важна не только «сложность по времени», но и «сложность по памяти» (пространственная сложность).
В численных алгоритмах точность и устойчивость алгоритмов не менее важны, чем их временная эффективность.
Классы сложности
Класс сложности — это множество задач распознавания, для решения которых существуют алгоритмы, схожие по вычислительной сложности. Два важных представителя:
Класс P
Класс P вмещает все те проблемы, решение которых считается «быстрым», то есть время решения которых полиномиально зависит от размера входа. Сюда относится сортировка, поиск в массиве, выяснение связности графов и многие другие.
Класс NP
Класс NP содержит задачи, которые недетерминированная машина Тьюринга в состоянии решить за полиномиальное количество шагов от размера входных данных. Их решение может быть проверено детерминированной машиной Тьюринга за полиномиальное количество шагов. Следует заметить, что недетерминированная машина Тьюринга является лишь абстрактной моделью, в то время как современные компьютеры соответствуют детерминированной машине Тьюринга с ограниченной памятью. Поскольку детерминированная машина Тьюринга может рассматриваться как специальный случай недетерминированной машины Тьюринга, класс NP включает в себя класс P, а также некоторые проблемы, для решения которых известны лишь алгоритмы, экспоненциально зависящие от размера входа (то есть неэффективные для больших входов). В класс NP входят многие знаменитые проблемы, такие как задача коммивояжёра, задача выполнимости булевых формул, факторизация и др.
Проблема равенства классов P и NP
Вопрос о равенстве этих двух классов считается одной из самых сложных открытых проблем в области теоретической информатики. Математический институт Клэя включил эту проблему в список проблем тысячелетия, предложив награду размером в один миллион долларов США за её решение.
См. также
- Временная сложность алгоритма
- Класс сложности
- Алгебраическая сложность
- Скорость сходимости
- Алгоритм
- Аппроксимация
- Сведение
- «O» большое и «o» малое
- Пределы вычислений
Примечания
- Кормен, Томас Х.; Лейзерсон, Чарльз И.; Ривест, Рональд Л.; Штайн, Клифорд. Алгоритмы: построение и анализ, 2-е издание = Introduction to Algorithms second edition. — М.: , 2005. — ISBN 5-8459-0857-4.
- А. А. Зыков. Основы теории графов. — 3-е изд. — М.: Вузовская книга, 2004. — С. 10. — 664 с. — ISBN 5-9502-0057-8.
Ссылки
- Гирш Э. А. «Сложность вычислений и основы криптографии». Курс лекций описывающий основы сложности вычислений и криптографии.
- Юрий Лифшиц «Современные задачи теоретической информатики». Курс лекций по алгоритмам для NP-трудных задач.
- А. А. Разборов. Theoretical Computer Science: взгляд математика // Компьютерра. — 2001. — № 2. (недоступная ссылка) (альтернативная ссылка)
- А. А. Разборов. О сложности вычислений // Математическое просвещение. — МЦНМО, 1999. — № 3. — С. 127—141.
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Вычислительная сложность, Что такое Вычислительная сложность? Что означает Вычислительная сложность?
Vychisli telnaya slo zhnost ponyatie v informatike i teorii algoritmov oboznachayushee funkciyu zavisimosti obyoma raboty kotoraya vypolnyaetsya nekotorym algoritmom ot razmera vhodnyh dannyh Razdel izuchayushij vychislitelnuyu slozhnost nazyvaetsya teoriej slozhnosti vychislenij Obyom raboty obychno izmeryaetsya abstraktnymi ponyatiyami vremeni i prostranstva nazyvaemymi Vremya opredelyaetsya kolichestvom elementarnyh shagov neobhodimyh dlya resheniya zadachi togda kak prostranstvo opredelyaetsya obyomom pamyati ili mesta na nositele dannyh Takim obrazom v etoj oblasti predprinimaetsya popytka otvetit na centralnyj vopros razrabotki algoritmov kak izmenitsya vremya ispolneniya i obyom zanyatoj pamyati v zavisimosti ot razmera vhoda Zdes pod razmerom vhoda ponimaetsya dlina opisaniya dannyh zadachi v bitah naprimer v zadache kommivoyazhyora dlina vhoda pochti proporcionalna kolichestvu gorodov i dorog mezhdu nimi a pod razmerom vyhoda dlina opisaniya resheniya zadachi nailuchshego marshruta v zadache kommivoyazhyora V chastnosti teoriya slozhnosti vychislenij opredelyaet NP polnye zadachi kotorye nedeterminirovannaya mashina Tyuringa mozhet reshit za polinomialnoe vremya togda kak dlya determinirovannoj mashiny Tyuringa polinomialnyj algoritm neizvesten Obychno eto slozhnye zadachi optimizacii naprimer zadacha kommivoyazhyora S teoreticheskoj informatikoj tesno svyazany takie oblasti kak analiz algoritmov i teoriya vychislimosti Svyazuyushim zvenom mezhdu teoreticheskoj informatikoj i algoritmicheskim analizom yavlyaetsya tot fakt chto ih formirovanie posvyasheno analizu neobhodimogo kolichestva resursov opredelyonnyh algoritmov resheniya zadach togda kak bolee obshim voprosom yavlyaetsya vozmozhnost ispolzovaniya algoritmov dlya podobnyh zadach Konkretiziruyas popytaemsya klassificirovat problemy kotorye mogut ili ne mogut byt resheny pri pomoshi ogranichennyh resursov Silnoe ogranichenie dostupnyh resursov otlichaet teoriyu vychislitelnoj slozhnosti ot vychislitelnoj teorii poslednyaya otvechaet na vopros kakie zadachi v principe mogut byt resheny algoritmicheski Vremennaya i prostranstvennaya slozhnostiTeoriya slozhnosti vychislenij voznikla iz potrebnosti sravnivat bystrodejstvie algoritmov chyotko opisyvat ih povedenie vremya ispolneniya i obyom neobhodimoj pamyati v zavisimosti ot razmera vhoda Kolichestvo elementarnyh operacij zatrachennyh algoritmom dlya resheniya konkretnogo ekzemplyara zadachi zavisit ne tolko ot razmera vhodnyh dannyh no i ot samih dannyh Naprimer kolichestvo operacij algoritma sortirovki vstavkami znachitelno menshe v sluchae esli vhodnye dannye uzhe otsortirovany Chtoby izbezhat podobnyh trudnostej rassmatrivayut ponyatie vremennoj slozhnosti algoritma v hudshem sluchae Vremennaya slozhnost algoritma v hudshem sluchae eto funkciya ot razmera vhodnyh dannyh ravnaya maksimalnomu kolichestvu elementarnyh operacij prodelyvaemyh algoritmom dlya resheniya ekzemplyara zadachi ukazannogo razmera Analogichno ponyatiyu vremennoj slozhnosti v hudshem sluchae opredelyaetsya ponyatie vremennaya slozhnost algoritma v nailuchshem sluchae Takzhe rassmatrivayut ponyatie srednee vremya raboty algoritma to est matematicheskoe ozhidanie vremeni raboty algoritma Inogda govoryat prosto Vremennaya slozhnost algoritma ili Vremya raboty algoritma imeya v vidu vremennuyu slozhnost algoritma v hudshem nailuchshem ili srednem sluchae v zavisimosti ot konteksta Po analogii s vremennoj slozhnostyu opredelyayut prostranstvennuyu slozhnost algoritma tolko zdes govoryat ne o kolichestve elementarnyh operacij a ob obyome ispolzuemoj pamyati Asimptoticheskaya slozhnost Nesmotrya na to chto funkciya vremennoj slozhnosti algoritma v nekotoryh sluchayah mozhet byt opredelena tochno v bolshinstve sluchaev iskat tochnoe eyo znachenie bessmyslenno Delo v tom chto vo pervyh tochnoe znachenie vremennoj slozhnosti zavisit ot opredeleniya elementarnyh operacij naprimer slozhnost mozhno izmeryat v kolichestve arifmeticheskih operacij bitovyh operacij ili operacij na mashine Tyuringa a vo vtoryh pri uvelichenii razmera vhodnyh dannyh vklad postoyannyh mnozhitelej i slagaemyh nizshih poryadkov figuriruyushih v vyrazhenii dlya tochnogo vremeni raboty stanovitsya krajne neznachitelnym Rassmotrenie vhodnyh dannyh bolshogo razmera i ocenka poryadka rosta vremeni raboty algoritma privodyat k ponyatiyu asimptoticheskoj slozhnosti algoritma Pri etom algoritm s menshej asimptoticheskoj slozhnostyu yavlyaetsya bolee effektivnym dlya vseh vhodnyh dannyh za isklyucheniem lish vozmozhno dannyh malogo razmera Dlya zapisi asimptoticheskoj slozhnosti algoritmov ispolzuyutsya asimptoticheskie oboznacheniya Oboznachenie Intuitivnoe obyasnenie Opredelenief n O g n displaystyle f n in O g n f displaystyle f ogranichena sverhu funkciej g displaystyle g s tochnostyu do postoyannogo mnozhitelya asimptoticheski C gt 0 n0 n gt n0 f n Cg n displaystyle exists C gt 0 n 0 forall n gt n 0 f n leq Cg n ili C gt 0 n0 n gt n0 f n Cg n displaystyle exists C gt 0 n 0 forall n gt n 0 f n leq Cg n f n W g n displaystyle f n in Omega g n f displaystyle f ogranichena snizu funkciej g displaystyle g s tochnostyu do postoyannogo mnozhitelya asimptoticheski C gt 0 n0 n gt n0 Cg n f n displaystyle exists C gt 0 n 0 forall n gt n 0 Cg n leq f n f n 8 g n displaystyle f n in Theta g n f displaystyle f ogranichena snizu i sverhu funkciej g displaystyle g asimptoticheski C C gt 0 n0 n gt n0 Cg n f n C g n displaystyle exists C C gt 0 n 0 forall n gt n 0 Cg n leq f n leq C g n f n o g n displaystyle f n in o g n g displaystyle g dominiruet nad f displaystyle f asimptoticheski C gt 0 n0 n gt n0 f n lt Cg n displaystyle forall C gt 0 exists n 0 forall n gt n 0 f n lt Cg n f n w g n displaystyle f n in omega g n f displaystyle f dominiruet nad g displaystyle g asimptoticheski C gt 0 n0 n gt n0 Cg n lt f n displaystyle forall C gt 0 exists n 0 forall n gt n 0 Cg n lt f n f n g n displaystyle f n sim g n f displaystyle f ekvivalentna g displaystyle g asimptoticheski limn f n g n 1 displaystyle lim n to infty frac f n g n 1 Primery pochistit kovyor pylesosom trebuet vremya linejno zavisyashee ot ego ploshadi 8 A displaystyle Theta A to est na kovyor ploshad kotorogo bolshe v dva raza ujdet v dva raza bolshe vremeni Sootvetstvenno pri uvelichenii ploshadi kovra v sto tysyach raz obyom raboty uvelichivaetsya strogo proporcionalno v sto tysyach raz i t p najti imya v telefonnoj knige trebuet vsego lish vremeni logarifmicheski zavisyashego ot kolichestva zapisej O log2 n displaystyle O log 2 n tak kak otkryv knigu primerno v seredine my umenshaem razmer ostavshejsya problemy vdvoe za schet sortirovki imen po alfavitu Takim obrazom v knige obyomom v 1000 stranic lyuboe imya nahoditsya ne bolshe chem za log2 1000 10 displaystyle log 2 1000 approx 10 raz otkryvanij knigi Pri uvelichenii obyoma stranic do sta tysyach problema vse eshyo reshaetsya za log2 100000 17 displaystyle log 2 100000 approx 17 zahodov Sm Dvoichnyj poisk Zamechaniya Poskolku loga b logc blogc a displaystyle log a b frac log c b log c a v asimptoticheskoj ocenke slozhnosti chasto pishut logarifm bez upominaniya osnovaniya naprimer O nlog n displaystyle O n log n Neobhodimo podcherknut chto stepen rosta naihudshego vremeni vypolneniya ne edinstvennyj ili samyj vazhnyj kriterij ocenki algoritmov i programm Privedem neskolko soobrazhenij pozvolyayushih posmotret na kriterij vremeni vypolneniya s drugih tochek zreniya Esli sozdavaemaya programma budet ispolzovana tolko neskolko raz togda stoimost napisaniya i otladki programmy budet dominirovat v obshej stoimosti programmy to est fakticheskoe vremya vypolneniya ne okazhet sushestvennogo vliyaniya na obshuyu stoimost V etom sluchae sleduet predpochest algoritm naibolee prostoj dlya realizacii Esli programma budet rabotat tolko s malymi vhodnymi dannymi to stepen rosta vremeni vypolneniya budet imet menshee znachenie chem konstanta prisutstvuyushaya v formule vremeni vypolneniya Vmeste s tem i ponyatie malosti vhodnyh dannyh zavisit ot tochnogo vremeni vypolneniya konkuriruyushih algoritmov Sushestvuyut algoritmy takie kak asimptoticheski samye effektivnye no kotorye nikogda ne ispolzuyut na praktike dazhe dlya bolshih zadach tak kak ih konstanty proporcionalnosti znachitelno prevoshodyat podobnye konstanty drugih bolee prostyh i menee effektivnyh algoritmov Drugoj primer fibonachchievy kuchi nesmotrya na asimptoticheskuyu effektivnost s prakticheskoj tochki zreniya programmnaya slozhnost realizacii i bolshie znacheniya konstant v formulah vremeni raboty delayut ih menee privlekatelnymi chem obychnye binarnye derevya Esli reshenie nekotoroj zadachi dlya n vershinnogo grafa pri odnom algoritme zanimaet vremya chislo shagov poryadka nC a pri drugom poryadka n n C gde C postoyannoe chislo to soglasno polinomialnoj ideologii pervyj algoritm prakticheski effektiven a vtoroj net hotya naprimer pri S 10 1010 delo obstoit kak raz naoborot A A Zykov Izvestny sluchai kogda effektivnye algoritmy trebuyut takih bolshih obyomov mashinnoj pamyati bez vozmozhnosti ispolzovaniya vneshnih sredstv hraneniya chto etot faktor svodit na net preimushestvo effektivnosti algoritma Takim obrazom chasto vazhna ne tolko slozhnost po vremeni no i slozhnost po pamyati prostranstvennaya slozhnost V chislennyh algoritmah tochnost i ustojchivost algoritmov ne menee vazhny chem ih vremennaya effektivnost Klassy slozhnostiOsnovnaya statya Klass slozhnosti Klass slozhnosti eto mnozhestvo zadach raspoznavaniya dlya resheniya kotoryh sushestvuyut algoritmy shozhie po vychislitelnoj slozhnosti Dva vazhnyh predstavitelya Klass P Osnovnaya statya Klass P Klass P vmeshaet vse te problemy reshenie kotoryh schitaetsya bystrym to est vremya resheniya kotoryh polinomialno zavisit ot razmera vhoda Syuda otnositsya sortirovka poisk v massive vyyasnenie svyaznosti grafov i mnogie drugie Klass NP Osnovnaya statya Klass NP Klass NP soderzhit zadachi kotorye nedeterminirovannaya mashina Tyuringa v sostoyanii reshit za polinomialnoe kolichestvo shagov ot razmera vhodnyh dannyh Ih reshenie mozhet byt provereno determinirovannoj mashinoj Tyuringa za polinomialnoe kolichestvo shagov Sleduet zametit chto nedeterminirovannaya mashina Tyuringa yavlyaetsya lish abstraktnoj modelyu v to vremya kak sovremennye kompyutery sootvetstvuyut determinirovannoj mashine Tyuringa s ogranichennoj pamyatyu Poskolku determinirovannaya mashina Tyuringa mozhet rassmatrivatsya kak specialnyj sluchaj nedeterminirovannoj mashiny Tyuringa klass NP vklyuchaet v sebya klass P a takzhe nekotorye problemy dlya resheniya kotoryh izvestny lish algoritmy eksponencialno zavisyashie ot razmera vhoda to est neeffektivnye dlya bolshih vhodov V klass NP vhodyat mnogie znamenitye problemy takie kak zadacha kommivoyazhyora zadacha vypolnimosti bulevyh formul faktorizaciya i dr Problema ravenstva klassov P i NP Osnovnaya statya Ravenstvo klassov P i NP Vopros o ravenstve etih dvuh klassov schitaetsya odnoj iz samyh slozhnyh otkrytyh problem v oblasti teoreticheskoj informatiki Matematicheskij institut Kleya vklyuchil etu problemu v spisok problem tysyacheletiya predlozhiv nagradu razmerom v odin million dollarov SShA za eyo reshenie Sm takzheVremennaya slozhnost algoritma Klass slozhnosti Algebraicheskaya slozhnost Skorost shodimosti Algoritm Approksimaciya Svedenie O bolshoe i o maloe Predely vychislenijPrimechaniyaKormen Tomas H Lejzerson Charlz I Rivest Ronald L Shtajn Kliford Algoritmy postroenie i analiz 2 e izdanie Introduction to Algorithms second edition M 2005 ISBN 5 8459 0857 4 A A Zykov Osnovy teorii grafov 3 e izd M Vuzovskaya kniga 2004 S 10 664 s ISBN 5 9502 0057 8 SsylkiGirsh E A Slozhnost vychislenij i osnovy kriptografii Kurs lekcij opisyvayushij osnovy slozhnosti vychislenij i kriptografii Yurij Lifshic Sovremennye zadachi teoreticheskoj informatiki Kurs lekcij po algoritmam dlya NP trudnyh zadach A A Razborov Theoretical Computer Science vzglyad matematika Kompyuterra 2001 2 nedostupnaya ssylka alternativnaya ssylka A A Razborov O slozhnosti vychislenij Matematicheskoe prosveshenie MCNMO 1999 3 S 127 141
