Составленная из нулей и единиц цепочка 100010111011110100000111 выглядит более случайной, чем цепочка 010101010101010101010101. Возможно ли разделить все цепочки нулей и единиц на случайный и не случайные? Для конечных цепочек эта задача вряд ли осуществима. Однако можно пытаться решать её для бесконечных цепочек, т.е. для последовательностей. Иными словами, можно пытаться найти строгое математическое определение для понятия «случайная последовательностей нулей и единиц».
Традиционная теория вероятностей не только не приближается к решению этой задачи, но даже не может её сформулировать в своих терминах. На помощь приходит теория алгоритмов. Может показаться парадоксальным, что понятие случайности уточняется на основе такого чуждого случайности понятия, как алгоритм, — тем не менее, это так: все известные до сих пор определения случайности индивидуального объекта (в нашем примере — индивидуальной последовательности нулей и единиц) опираются на понятие алгоритма.
Чтобы найти требуемое определение, поступают так. Формулируют некое характеристическое свойство, которым обладают случайные (в неформальном, интуитивном смысле) последовательности. А затем последовательности, обладающие этим свойством, и объявляют, по определению, случайными.
Какими же свойствами обладает случайная последовательность нулей и единиц?
Во-первых, она частотноустойчива. Вот что это означает для того простейшего случая, когда нули и единицы равновероятны — а только такой случай мы и будем рассматривать: частота нулей, как и частота единиц, стремится к одной второй. При этом указанная устойчивость частот выполняется не только для последовательности в целом, но и для любой её законной, разумной подпоследовательности.
Во-вторых, она хаотична. Это означает, что чередование нулей и единиц не может быть описано никаким разумным правилом.
В-третьих, она типична. Это означает, что она принадлежит любому разумному большинству.
В-четвёртых, она непредсказуема. Это означает, что играя против неё на деньги (то есть пытаясь угадать члены последовательности и делая ставки), последовательность невозможно обыграть, какой бы разумной стратегией не пользоваться.
Слово «разумный», встречающееся в описаниях перечисленных четырёх свойств, разумеется, нуждается в уточнении. Теория алгоритмов как раз и предлагает такие уточнения, наполняя это слово точным смыслом — своим для каждого из наших четырёх свойств. Тем самым возникают четыре алгоритмических свойства: частотная устойчивость, хаотичность, типичность, непредсказуемость. Каждое из них представляет своё собственное алгоритмическое лицо случайности, и каждое из них с большими или меньшими основаниями может претендовать на роль строгого математического определения для понятия случайности. Можно сказать и так: возникают четыре точно очерченных класса последовательностей, каждый из которых претендует на то, чтобы служить истинным классом случайных последовательностей; некоторые из этих претензий более оправданы, чем другие.
Для понимания лекции требуются следующие знания: общие элементарные представления о множествах и функциях; понимание термина «алгоритм»; для отдельного фрагмента лекции — понимание того, что такое сумма ряда с положительными членами.
Природа статистических законов вызывала споры с самого рождения теории вероятностей и продолжает их вызывать. Эти философские споры привели к рождению интересной математической теории: алгоритмической теории вероятностей и информации, которая — в отличие от классической — пытается дать определение индивидуального случайного объекта. Мы обсудим основные понятия этой теории и их связь с основаниями и парадоксами теории вероятностей. Об этом в публичной лекции математика Александра Шеня, кандидата физико-математических наук, старшего научный сотрудник Лаборатории теории передачи информации и управления ИППИ РАН.
В отличие от метрической теории алгоритмов, дескриптивная теория не занимается измерением ресурсов (таких как время, объём памяти), затрачиваемых при применении алгоритма к его возможным исходным данным (в другой терминологии — к его входам). Её интересует лишь, возможен алгоритм для решения данной задачи или нет. Начальные понятия дескриптивной теории алгоритмов суть: конструктивный обьект, алгоритм, число шагов алгоритма, вычислимая функция, перечислимое множество, разрешимое множество, сводимость нумераций, главная вычислимая нумерация, вычислимая операция.
Целые числа, рациональные, алгебраические… Что дальше (оставаясь в пределах действительных чисел)? Дальше идут вычислимые действительные числа, т.е. такие действительные числа, которые можно в разумном смысле вычислить. «Можно вычислить» означает, что вычисление можно запрограммировать. Мыслимы различные подходы к тому, что именно надо программировать.
Как грамотно вычислить значение полинома от многих переменных? Можно, конечно, посчитать по отдельности каждый входящий в него моном и результаты сложить, но нельзя ли придумать способ сэкономить на числе используемых операций хотя бы для некоторых наиболее важных и часто встречающихся полиномов? Изучением таких вопросов как раз и занимается теория алгебраической сложности вычислений. Оказывается, что для некоторых классов полиномов ответ отрицателен, для других он положителен, а в подавляющем большинстве случаев ответ неизвестен. Соответствующие вопросы, открытые в течении нескольких десятилетий, по праву числятся среди наиболее важных, интересных и трудных проблем современной теории сложности.
Какова история создания машины Тьюринга? Как она повлияла на развитие идей, лежащих в основе ряда современных технологий? Какие проблемы существуют в теории вычислительной сложности? И как математика рассматривает понятие случайность? Об идее универсальной машины, проблеме перебора и случайности рассказывает кандидат физико-математических наук Александр Шень.
Знаменитая Теорема Гёделя о неполноте имеет две версии — синтаксическую (объявленную и доказанную самим Гёделем) и семантическую (чаще всего фигурирующую в популярных рассуждениях о великой Теореме). Семантическая версия утверждает, что какую бы систему формальных доказательств ни придумать, в языке найдутся истинные утверждения, не доказуемые в рамках предложенной системы. Таким образом, семантическая версия исходит из того, что некоторые выражения языка выражают осмысленные утверждения, являющиеся истинными или ложными. Синтаксическая версия не опирается на то, что какие бы то ни было выражения языка имеют какой-то смысл, она смотрит на выражения как на синтаксические конструкции, то есть как на цепочки символов, организованные по определённым правилам.
«Качественная» теория алгоритмов (не касающаяся понятия сложности вычислений) может быть построена на интуитивном представлении о том, что такое алгоритм. Такого представления, при некотором его уточнении, оказывается достаточно для того, чтобы доказать первые базовые теоремы теории алгоритмов. В лекции будет приведено указанное уточнение, определено понятие вычислимости и понятие породимости («выводимости в формальной системе»), доказано несколько теорем, другие теоремы — предложены в качестве задач. Будут приведены и примеры т.н. «уточнения понятия алгоритма». Для понимания лекции желательно умение читать по-русски, знание латинского алфавита и представление о натуральном ряде.
Вероника сидит в комнате. На улице дождь. Вероника ставит ТеХ и смотрит фехтование. Ей многое интересно. Когда закончится дождь? Не повисла ли установка ТеХа? Будет ли следующая атака по корпусу или по маске? Конечно, чтобы узнать ответ наверняка, Веронике придётся подождать. Двое физиков порождают случайный шум. Один ищет радиочастоту, где сигнал не портит помехи, его соседка водит счётчиком Гейгера. Есть много ситуаций, когда знание, происходящего не позволяет нам предсказывать дальнейшее. Я постараюсь объяснить, откуда (и как по-разному) они берутся.
Сколько нужно вопросов (с ответом “да” и “нет”), чтобы заведомо отгадать задуманное число от 1 до 1000? Можно ли обойтись меньшим числом вопросов? Если нет, то как это доказать? Сколько нужно взвешиваний на чашечных весах без гирь, чтобы наверняка выделить более лёгкую монету среди 1000 одинаковых на вид? С такого рода вопросов начинается наука о сложности алгоритмов, и очень скоро доходит до важных, но до сих пор не решённых задач.
Энтропия — мера неопределённости, мера хаоса. В естественных науках это мера беспорядка системы, состоящей из многих элементов; в теории информации — мера неопределённости какого-либо опыта, процесса или испытания, которые могут иметь разные исходы (а значит, мера количества информации); в математике — мера сложности объекта или процесса. Понятие энтропии было впервые введено в 1865 году Р. Клаузиусом в термодинамике, К. Шенноном в теории информации в 1949 г., в теории стохастичпеских процессов Колмогоровым, Гельфандом и Яглом в 1956 г., в функциональном анализе и теории динамических систем Колмогоровым в 1956–1958 гг. Между мирами полной детерминированности, изучаемой классическим анализом и миром хаоса, изучаемым теорией вероятностей, ныне перекидывается мост, который связан с понятием энтропии.