Вычислительная сложность
- 1 year ago
- 0
- 0
Сложность — характеристика, отражающая степень трудности для понимания, создания и верификации системы или элемента системы ; степень трудности понимания и решения проблемы , задачи . Сложность системы или элемента системы может быть выражена через сложность соответствующих проблем и задач их понимания, создания и верификации.
Согласно энциклопедии Британника , научная теория сложности направлена на изучение таких поведенческих явлений некоторых систем , которые невозможно объяснить посредством анализа элементов этих систем. «Сложность» обычно используется для характеристики эмерджентного поведения систем . При этом сложность поведения системы может значительно, полиномиально с высокой степенью и выше, превосходить сумму сложностей поведения входящих в систему элементов .
По состоянию на 2010 год используются несколько подходов к характеристике понятия сложности . утверждает, что «даже среди ученых нет единого определения сложности — и это научное понятие традиционно объяснялось на конкретных примерах». В конечном итоге Джонсон принимает определение «науки о сложности», как науки, «изучающей явления, возникающие в результате взаимодействия совокупности объектов» .
В 1948 году провёл различие между двумя формами сложности: неупорядоченной сложностью и упорядоченной сложностью . Явления неупорядоченной сложности рассматриваются с использованием теории вероятностей и статистической механики , в то время как упорядоченная сложность имеет дело с явлениями, которые требуют одновременного рассмотрения значительного числа факторов, взаимосвязанных в единое целое. Работа Уивера 1948 года повлияла на последующие исследования сложности .
Одна из проблем при решении вопроса о сложности заключается в формализации интуитивного различия между системами с большим количеством случайных взаимодействий и системами, в которых количество взаимодействий хотя и велико, но сами взаимодействия происходят в рамках некоторых ограничений и связаны с корреляцией между элементами. Уивер решал эту проблему тем, что проводил различие между неупорядоченной и упорядоченной сложностью.
По мнению Уивера, неупорядоченная сложность возникает из-за того, что конкретная система имеет очень большое количество частей. Хотя взаимодействия частей в ситуации неупорядоченной сложности можно рассматривать как в значительной степени случайные, свойства системы в целом можно понять с помощью вероятностных и статистических методов.
Ярким примером неупорядоченной сложности являются молекулы газа в контейнере. Некоторые предполагают, что систему неупорядоченной сложности можно сравнить с (относительной) простотой планетных орбит — последние можно предсказать, применив законы движения Ньютона . Конечно, большинство реальных систем, включая планетные орбиты, в конечном итоге становятся теоретически непредсказуемыми даже с использованием ньютоновской динамики, как обнаружено современной теорией хаоса .
Упорядоченная сложность, с точки зрения Уивера, заключается в неслучайном или коррелированном взаимодействии между частями. Эти коррелированные взаимодействия создают скоординированную структуру, которая как система может взаимодействовать с другими системами. Скоординированная система проявляет свойства, не характерные для её частей. Можно сказать, что упорядоченный аспект этой системы «возникает» без какой-либо «направляющей руки».
Количество частей не должно быть очень большим, чтобы конкретная система имела эмерджентные свойства. Систему упорядоченной сложности можно понять по её свойствам (поведению) посредством моделирования и симуляции , в частности, компьютерного моделирования . Примером упорядоченной сложности является городской квартал как живой механизм, с его жителями как частями системы .
Обычно существуют принципы, которые можно использовать для объяснения происхождения сложности в данной системе.
Источником неупорядоченной сложности является большое количество частей в системе и отсутствие корреляции между её элементами.
В случае самоорганизующихся живых систем полезная упорядоченная сложность возникает из-за того, что мутировавшие организмы отбираются для выживания своей средой из-за их дифференциальной репродуктивной способности или, по крайней мере, преимуществ перед менее упорядоченными сложными организмами .
Сложность объекта или системы — свойство относительное. Например, для многих функций (задач) такая вычислительная сложность, как время вычислений, меньше, когда используются многоленточные машины Тьюринга , чем когда используются машины Тьюринга с одной лентой. Машины с произвольным доступом к памяти позволяют ещё больше уменьшить временную сложность (Greenlaw and Hoover 1998: 226), в то время как индуктивные машины Тьюринга могут снизить даже класс сложности функции, языка или множества (Burgin 2005). Это показывает, что инструменты деятельности могут быть важным фактором сложности.
В различных областях науки применяются специализированные, более узкие определения сложности:
Другие области науки вводят менее точно определённые понятия сложности:
Сложность всегда была частью нашей окружающей среды, и поэтому многие области науки имеют дело со сложными системами и явлениями. С одной стороны, то, что в какой-то степени сложно — отображение вариаций без случайности — представляет наибольший интерес, учитывая результаты, найденные в ходе исследований.
Термин «сложный» часто путают с термином «запутанный». В теории систем разница между запутанным и сложным — это разница между бесчисленными соединительными «ходами» и эффективными «интегрированными» решениями, то есть «сложное» противоположно «независимому», а «запутанное» противоположно «простому».
Хотя в некоторых областях науки были предложены конкретные определения сложности, в последнее время наблюдается движение по перегруппировке наблюдений из разных областей для изучения сложности как единого явления, будь то муравейники , человеческий мозг , фондовые рынки или социальные системы . Одна из таких междисциплинарных групп областей — .
Часто говорят, что поведение сложной системы связано с возникновением и самоорганизацией . Теория хаоса исследовала чувствительность систем к изменениям начальных условий как одну из причин сложного поведения.
Последние разработки в области искусственной жизни , эволюционных вычислений и генетических алгоритмов привели к тому, что всё большее внимание уделяется сложности и сложным адаптивным системам .
В социальных науках — исследование возникновения макро-свойств из микро-свойств, также известное в социологии как макро-микровидение. Этой темой обычно называют социальную сложность , которая часто связана с использованием компьютерного моделирования в социальных науках, например с .
Теория систем давно занимается изучением сложных систем (в последнее время теория сложности и сложные системы также используются в качестве названия области). Эти системы используются в исследованиях различных дисциплин, включая биологию , экономику , социальные науки и технологии . В последнее время сложность стала естественным предметом интереса социо-когнитивных систем реального мира и новых исследований в области . Сложные системы, как правило, имеют много измерений , нелинейны , и трудно моделируемы. В определённых обстоятельствах они могут демонстрировать низкоразмерное поведение.
В теории информации алгоритмическая теория информации занимается сложностью строк данных.
Сложные строки сложнее сжать. Хотя интуиция подсказывает нам, что это может зависеть от кодека , используемого для сжатия строки (кодек теоретически может быть создан на любом произвольном языке, включая тот, в котором очень маленькая команда «X» может заставить компьютер выводить очень сложную строку, например «18995316»), любые два полных по Тьюрингу языка могут быть реализованы друг в друге, а это означает, что длина двух кодировок на разных языках будет варьироваться не более чем на длину «языка перевода», что в конечном итоге будет незначительным для достаточно длинных строк данных.
Эти алгоритмические меры сложности обычно присваивают высокие значения . Однако те, кто изучает сложные системы, не рассматривают случайность как сложность.
Информационная энтропия также иногда используется в теории информации как показатель сложности, но энтропия также высока, когда речь идёт не о сложности, а о случайности. В теории информации случайность не рассматривается как вид сложности и её определение сложности полезно во многих приложениях.
Недавняя работа в области машинного обучения исследовала сложность данных, поскольку она влияет на производительность контролируемых алгоритмов классификации. Хо и Басу представляют набор мер сложности для задач бинарной классификации .
Меры сложности в целом охватывают:
Анализ трудных случаев ( англ. instance hardness ) — это новый подход, который в первую очередь направлен на выявление случаев, которые могли быть неправильно классифицированы (или, другими словами, на выявление случаев, которые могут быть наиболее сложными). Характеристики случаев, которые могли быть классифицированы неправильно, затем измеряются на основе «показателей трудности». «Меры трудности» основаны на нескольких методах обучения с учителем, таких как измерение количества несовместимых соседей или вероятности правильного присвоения метки класса с учётом входных характеристик. Информация, предоставляемая мерами трудности, исследуется на предмет использования в , чтобы определить, для каких наборов данных фильтрация (или удаление подозрительных зашумленных случаев из обучающей выборки) является наиболее перспективной и может быть распространена на другие области.
Недавнее исследование, основанное на молекулярном моделировании и константах соответствия, описывает молекулярное распознавание как явление организации . Даже для небольших молекул, таких как углеводы , процесс распознавания невозможно предсказать или спроектировать, в том числе если предположить, что сила каждой отдельной водородной связи точно известна.
Теория вычислительной сложности занимается исследованием сложности решения проблем. К вычислительной сложности можно подходить с разных точек зрения. Такая сложность проблемы может быть оценена по затратам времени, памяти или других ресурсов, необходимых для ее решения. Время и пространство — два наиболее важных и часто используемых параметра при анализе проблем сложности.
Проблемы классифицируются по классу сложности в зависимости от времени, которое необходимо алгоритму — обычно компьютерной программе — для решения в зависимости от размера проблемы. Одни проблемы решаются трудно, другие — легко. Так, существуют задачи, решение которых в соответствии с алгоритмом не может быть выполнено за время, менее, чем экспоненциально зависящее от размера задачи. Примером такой задачи, является задача коммивояжера , которая решается за время (где n — размер сети, которую необходимо посетить — количество городов, которые коммивояжер должен посетить ровно один раз). По мере роста размера сети время, необходимое для поиска маршрута, увеличивается (более чем) в геометрической прогрессии.
Хотя, теоретически проблема может быть решена с помощью вычислений, однако из-за чрезмерно большого времени или потребности в пространстве ее решение практически становится невозможным. Такие проблемы называются практически неразрешимыми .
Существует ещё одна форма сложности, которая называется . Эта форма сложности отражает иерархический аспект систем, задач и проблем и ортогональна обсуждаемым ранее формам сложности, которые, соответственно, могут быть названы, горизонтальными формами сложности.