Чего не могут вычислительные машины?

Размер: px
Начинать показ со страницы:

Download "Чего не могут вычислительные машины?"

Транскрипт

1 Чего не могут вычислительные машины? Непейвода Н. Н. С точки зрения системного анализа в нашей жизни происходит не компьютерная революция, а компьютерная контрреволюция. (Г. Вейценбаум. «Возможности вычислительных машин и человеческий разум» Прежде чем пробовать чтото запрограммировать, полезно хотя бы оценить реалистиченость и разумность задачи. Чтобы оценивать, нужно понимать. Понимание невозможно без знания. Знание же не всегда дает понимание. Понимания можно достичь лишь тогда, когда знаешь также и ограничения своего знания. Поэтому первая статья в серии «Наука программирования» посвящается принципиальным ограничениям алгоритмического подхода. 1 Машина Тьюринга Вы часто можете встретить в литературе утверждение, что некоторый алгоритмический язык либо система универсальные, то есть позволяют запрограммировать все, что угодно. Конечно же, в обыденной жизни слишком часто слово «универсальный» употребляется неточно, скорее как реклама либо самореклама 1. Но в программировании это слово имеет точный смысл. Как известно, программирование появилось раньше вычислительных машин. Первой программистской была леди Августа Ада Лавлейс, писавшая программы для проектировавшейся машины Беббиджа. Точно так же теория программирования в самой своей основе появилась раньше первой программно-управляемой машины Конрада Цузе (1938 г., Германия). Более того, Цузе прекрасно знал теорию, и поэтому строимл свои системы отнюдь не на пустом месте. Из философских побуждений (неудовлетворенность квазирелигиозной верой в истинность математических утверждений, необоснованность которой 1 Служит ли универсальность системы на самом деле рекламой для сколько-нибудь знающего специалиста, а не для возомнившего себя крутым чайника либо хакера, это другой вопрос, к которому стоит вернуться позднее. 1

2 стала очевидна к началу XX века) в течение почти всего XX века интенсивно разрабатывалась метаматематика, то есть исследование математики средствами самой математики. Одним из ее результатов стала математическая логика, а другим теория алгоритмов. Самые различные понятия вычислимости и определимости были исследованы с той поры, когда в 20-х гг. появились первые уточнения понятия алгоритма. Они выглядят зачастую так, что внешне в них ничего общего. Например, знаменитая машина Тьюринга была построена Аланом Тьюрингом исходя из общих философских соображений как формализация работы человека по точно определенному предписанию над точно заданной исходной информацией. Алан Тьюринг сделал несколько весьма общих предположений. Перечислим их в несколько вольном изложении. Во-первых, если информация точная, то ее элементарные единицы должны быть четко различимы между собой. Во-вторых, человек даже в принципе может распознать лишь конечное число единиц элементарной информации (даже если восприятие его столь мощно, что он единым взором охватывает целый лист, все равно на этом листе может поместиться лишь конечное число символов). В-третьих, все замены, которые он делает в качестве элементарного шага, могут рассматриваться как замены одной единицы информации на другую (написал новый лист вместо старого). В-четвертых, хотя в хранилище информации может храниться сколько угодно единиц информации, прямой переход возможен лишь к соседней единице 2. И, наконец, сам ум человека может принимать лишь конечное число состояний, поскольку иначе некоторые из них были бы неразличимы между собой. В итоге получается следующая условная модель. Память представляет собой потенциально бесконечную ленту, разбитую на ячейки. В каждой ячейке может храниться символ из заранее ограниченного конечного набора символов (алфавита). Если, скажем, рассматривать в качестве такой ячейки машинное слово, то символов будет штук. Процессор представляет собой головку, передвигающуюся по ленте. В процессоре записана матрица из конечного числа команд, каждая из которых по отдельности обрабатывает все возможные символы (так что для рассмотренного нами случая ширина такой матрицы команд будет Опознав символ, машина может записать на его место другой символ, сдвинуться на одну ячейку в любую из сторон и перейти к другой команде. Данная модель и называется машиной Тьюринга. 2 Это предположение наименее тривиально на первый взгляд и поэтом оказалось наиболее содержательным. 2

3 Например, следующая матрица дает машину для весьма нетривиальной задачи добавление единицы к двоичному числу, записанному на ленте, начиная со старшего разряда. Обозреваемый символ 0 1 B Начало a cr0 br1 arb Перенос b cr0 br1 dlb Нет переноса c cr0 cr1 elb Назад с переносом d el1 dl0 0S1 Назад без переноса e el0 el1 0SB В каждой клетке таблицы первый символ задает новое состояние машины, R L, S помечают, в какую сторону движется головка по ленте (вправо, влево, стоит), третий символ новый символ, который будет записан. Когда машина переходит в состояние 0, она останавливается. А следующая простенькая машина (взятая у М. Минского) является универсальной, моделирует любую другую машину Тьюринга y 0L1 0L1 yl3 yl4 yr5 yr6 0R7 0 0L1 yr2 0S0 yr5 yl3 AL3 yr6 1 1L2 AR2 AL3 1L7 AR5 AR6 1R7 A 1L1 yr6 1L4 1L4 1R5 1R6 0R2 Разобраться в том, как она это делает, может лишь законченный хакер высокого класса. Есть и более простые конструкции универсальной машины, но они намного длиннее. Оказалось, что достаточно рассмотреть лишь машины Тьюринга, у которых ленты двоичные (на них записаны лишь нули и единицы). Для программиста это очевидно: символ конечного алфавита кодируется конечным числом битов. Далее, оказалось, что во многих случаях модификация машин Тьюринга в принципе не изменяет их выразительной силы. Например, если рассматривать многомерные ленты (машина движется по плоскости либо в пространстве, разбитом на кубики, либо, скажем, даже в десятимерном пространстве), то такие машины можно смоделировать на одномерной. При этом вначале строится какая либо простая змейка в пространстве, проходящая через все его «кубики», подобно тому, как изображенная на рисунке спираль обходит все клетки плоскости, а дальше машина Тьюринга ходит по одномерной ленте, но понимает ее как эту змейку.конечно же, число 3

if ($this->show_pages_images && $page_num < DocShare_Docs::PAGES_IMAGES_LIMIT) { if (! $this->doc['images_node_id']) { continue; } // $snip = Library::get_smart_snippet($text, DocShare_Docs::CHARS_LIMIT_PAGE_IMAGE_TITLE); $snips = Library::get_text_chunks($text, 4); ?>

4 шагов и сложность самой машины при этом возрастают, но с теоретической точки зрения это неважно 3. Вставить рисунок, изображающий спираль, проходящую через все квадратики плоскости!! Точно так же можно иметь несколько одновременно работающих головок. Если разрешить вставлять и удалять ячейки под головкой, то и это моделируется обычной машиной. А обычная машина может быть смоделирована такой, у которой всего две головки, лента пустая, за исключение маркера начала ленты, головки могут лишь двигаться, но не писать, и не могут передвигаться левее маркера начала, либо такой машиной с одной головкой, которая может лишь записывать 1 вместо 0, но не может стирать однажды написанную единицу. Результатом при этом считается номер клетки, на которой остановилась первая головка. Но, конечно же, можно ослабить и так, что понятие на самом деле ослабится. Для этого достаточно, скажем, превратить рабочую ленту в магазин, стирая прочитанный символ, если мы сдвигаемся левее его. Так что в этом случае все рабочее пространство заключено между началом ленты и текущим положением головки, и доступен лишь последний из записанных в этом пространстве символов. Далее, если ввести две различные ленты: одну лишь для чтения, а другую лишь для записи, причем чтение и запись необратимы (после такой операции мы принудительно сдвигаемся вправо), то получается понятие конечного автомата, существенно более слабое, чем машина Тьюринга. В частности, наша первая сложная машина делает то, что не может сделать конечный автомат. Конечный автомат может прибавить 1 к двоичному числу лишь в том случае, если число подается, начиная с младшего разряда. Это замечание показывает принципиальную разницу общего и частного понятия алгоритма: машина Тьюринга в теории независима от конкретного кодирования входных данных, а автомат зависит от него исключительно сильно 4. 3 Так что когда теоретик Вам говорит, что нечто в принципе можно сделать, почти всегда нужно понимать его «В теории можно, а на практике вряд ли!» 4 Здесь стоит сделать важное методологическое замечание. Если теоретик утверждает, что нечто не зависит от какой-то характеристики либо что несколько понятий эквивалентны, то программисту надо здесь существенно задуматься. Если в теории, например, выбор конкретного члена преобразуемой формулы неважен, то на практике хороший выбор является решающей частью хорошей программы аналитических преобразований. Если в теории нечто может быть представлено и графом, и отношением, и автоматом, то на практике вопрос, представить это булевой матрицей (отношение), ссылочной структурой (граф) или подпрограммой (автомат) может оказаться решающим. В общем, это один из многочисленных случаев, когда практик зачастую слишком тупо понимает теоретика, а потом обвиняет его в своей глупости. Чуть-чуть подумав, можно по- 4

5 2 Тезис Черча Другие системы представления алгоритмов чаще всего принципиально отличаются от машин Тьюринга. Например, гениальная до безумия система комбинаторной логики петербургского математика Л. Шейнфинкеля (исторически первое точное понятие алгоритма) имеет две элементарных операции S и K с мистически выглядящим определением 5 : Kxy = x Sxyz = xz(yz) Рекурсивные схемы Маккарти полностью отказываются от локальности действий, переходя к системе функциональных описаний, подобных f(x) if P (x) then x else f(f(h(x))) fi. Алгоритмы Колмогорова-Успенского работают над графовыми структурами, машины Поста выглядят как до передела упрощенная система команд компьютера, и так далее. Уже к концу 30-х годов выяснилось, что столь разные понятия приводят к одному и тому же множеству определимых функций, и был сформулирован тезис Черча (Алонзо Черч американский логик, один из основателей, в частности, теории алгоритмов). Все понятия алгоритма эквивалентны между собой с точностью до вычислимой кодировки и, в конечном счете, эквивалентны машинам Тьюринга. Уровень подтвержденности тезиса Черча к настоящему времени гораздо выше уровня подтвержденности любого т. н. «естественнонаучного закона», но математики скромно называют его «тезисом», потому что он в принципе не может быть строго доказан. По-прежнему тезис проверяется для всех вновь появляющихся понятий алгоритма. Сбоев нет и не предвидится. нять, что теоретическая эквивалентность означает свободу выбора конкретного представления для практика, а не безразличие к выбору представление. Ответственность за выбранное конкретное представление лежит, конечно же, целиком на практике. А ответственность за то, чтобы предоставить ему как можно более широкий и разнообразный выбор, в идеальной системе взаимодействия теории и практики должна была бы лежать на теоретике, прежде всего, на профессоре, обучающем студентов. Именно обогащение набора различных представлений данных является причиной, по которой хороший курс алгебры дает программисту намного больше, чем 100 курсов по конкретным система представления данных. 5 В данной статье мы воздержимся от комментариев; в дальнейшем планируется статья, посвященная системе Шейнфинкеля. Впрочем, в 1920 г. и сам Шейнфинкель не мог объяснить, что же он имел в виду! 5

6 Тезис Черча перестает, вообще говоря, работать, если мы рассматриваем относительную вычислимость (наш алгоритм может пользоваться некоторой данной нам библиотекой стандартных функций). В этом случае рекурсивные схемы одно из самых мощных средств программирования (как и можно было предполагать содержательно), а машина Тьюринга одно из самых строгих. Это уже известное ограничение области действия тезиса Черча еще повышает степень его достоверности. 3 Неразрешимость Раз в принципе все можно сделать на машине Тьюринга, то эта машина служит удобным инструментом для того, чтобы показать, что на ней сделать нельзя. Тогда это нельзя сделать и на самом навороченном языке типа С++ (но представьте себе безумца, который пытался бы показать, что нечто нельзя сделать на этом монстре, не пользуясь теретическими понятиями!) Но прежде всего нужно уточнить термины. Машина применима к исходным данным, если она на них останавливается. Разрешимым свойством называется такое, для которого можно построить программу, его проверяющую. Формализуя данное определение, мы получаем следующее: Разрешимое свойство такое, для которого есть всегда останавливающаяся машина Тьюринга, выдающая в качестве конечного результата либо 0, либо 1. В теории алгоритмов устанавливается, что существует универсальный алгоритм, перерабатывающий пару (программа, входные данные) в результат работы соответствующей программы (один из его вариантов приведен выше). Более того, реализациями идеи универсального алгоритма вы все время пользуетесь. Это транслятор с С++, интерпретатор Java и даже сама по себе система команд машины. Мы подошли к важнейшему достижению науки ХХ века: понятию неразрешимой задачи, которое проиллюстрируем сейчас на примере понятия неразрешимого свойства. Теорема 1. Свойство Машина Тьюринга M останавливается, будучи запущенной на данных X неразрешимо (1) 6

7 Доказательство. Предположим противное, что данное свойство разрешимо. Тогда имеется машина A, которая всегда останавливается и дает на ленте BBBMAXEEE результат 1, если машина с программой M останавливается на входных данных BBBXEEE. Заметим, что конкретные детали кодирования здесь абсолютно несущественны, лишь бы кодирование было достаточно простое. Теперь построим машину B, которая, получив на вход BBBMEEE, применяет A к данным вида BBBMAMEEE, а затем, в случае, если результат равен 1, запускает зацикливающуюся машину. Таким образом, B определена на BBBMEEE тогда и только тогда, когда M не определена на BBBMEEE, то есть когда машина M некорректно работает на собственной программе. Что же получается, если применить B к BBBBEEE? Если результат определен, то, по построению, машина A на BBBBABEEE дает 0, и, значит, по определению A, B на BBBBEEE не определена. Если же результат не определен, то A дает 1, и, значит, он определен. Противоречие. Итак, сделанное нами предположение о существовании машины, распознающей применимость, опровергнуто. Следствие 1. Есть машина, непродолжимая до всюду определенной. Таковой является, в частности, любая универсальная машина. Заметим, что существование неразрешимых проблем и непополнимых частичных функций не зависит от частностей теории алгоритмов. Оно следует из фундаментальнейшего факта наличия универсальной машины, и практически лишь из него. Отсюда следует важнейший практический вывод: понятие ошибки в программе не устранимо даже в принципе. С ними необходимо бороться (как и с бесами в душе), но победить их до конца невозможно (как и Дьявола). Теперь приведем список известных классических неразрешимых проблем, который может служить ориентиром при рассмотрении других проблем (в частности, если задачу удается алгоритмическим преобразованием свести к неразрешимой, то она тоже неразрешима). 1. Равенство функций, вычисляемых двумя программами. 7

8 2. Равенство 0 результата данной программы в данной точке, а тем более, на некотором множестве. 3. Пустота (соответственно, и непустота) разрешимого множества. 4. Определение количества шагов, которое сделает программа до завершения. 5. Определение количества памяти, которое может понадобиться программе с динамическим выделением памяти. 6. Определение, зависит или не зависит одно значение от другого в программе. 7. Определение, пройдет ли когда-нибудь программа по данной ветви. 8. Определение, являются ли два функциональных выражения частными случаями одного итого же. 9. Существование положительного натурального решения уравнения P (x 1,..., x n ) = 0, где P многочлен с целыми коэффициентами. 10. Существование решения произвольной системы уравнений в словах. 11. Равенство либо неравенство (, <, >) двух действительных чисел. 12. Доказуемость логического утверждения с кванторами или же утверждения некоторой общепринятой формальной теории (арифметики, анализа и т. д.). 13. Переходит ли когда-нибудь двухголовочный автомат в состояние 0 (поскольку иначе можно было бы разрешить проблему остановки для машин Тьюринга). Этот список можно продолжать очень долго. Есть и критерии, которые позволяют ответить на вопрос о неразрешимости сразу для некоторого класса свойств. Приведем самый известный и одновременно самый практически полезный из них. Определение 2. Свойство P программ называется функциональным, если для любых двух программ a, b, вычисляющих одну и ту же функцию, P (a) P (b). 8

9 Теорема 3 (Теорема Райса-Успенского). Есть лишь два разрешимых функциональных свойства программ: тождественно истинное и тождественно ложное. Доказательство. Пусть P функциональное разрешимое свойство, не являющееся тривиальным. Тогда есть такие программы a, b, что P (a) истинно, а P (b) ложно. Поскольку P всюду определено, оно либо истинно, либо ложно на программе для нигде не определенной функции( т. н. функции ошибка). Заменим ту из программ, значение которой совпадает с функцией ошибка, на программу для функции ошибка. Пусть это будет a (второй случай рассматривается абсолютно симметрично). P (a ) истинно также для любой программы a, вычисляющей ту же функцию, что и a, и ложно для любой программы b, вычисляющей ту же функцию, что и b. Рассмотрим теперь произвольную программу f и построим алгоритм (машину, функцию, комбинатор: конкретное понятие алгоритма здесь безразлично, слишком простое построение) if f(0) = 0 then b(x) else b(x). Она будет вычислять b(x), если f(0) выдаст какое-то значение, и нигде не определенную функцию, если f(0) не определено. А теперь, применив P, решим неразрешимую проблему применимости. Многие из перечисленных выше разрешимых проблем являются перечислимыми. Например, можно построить машину, которая будет перебирать всевозможные последовательности формул, и тогда она обязательно найдет доказательство теоремы формальной теории, если только это доказательство существует. Этот исключительно неэффективный алгоритм называется методом Британского музея. Но не все неразрешимые проблемы перечислимы. Для установления неперечислимости есть один важный результат, который заодно демонстрирует исключительно неэффективный метод программирования разрешимых задач (такие методы порой полезны для установления принципиальной разрешимости задачи, после чего можно спокойно искать лучший). Предложение 2 (Метод Маркова). Если и само множество, и его дополнение перечислимы, то множество разрешимо. Доказательство. Пусть M 1 и M 2 две машины, перечисляющие множество и его дополнение. Построим машину N, разрешающую множество. С помощью универсальной машины промоделируем один шаг M 1, если она не остановилась и не выдала результата, то один шаг M 2, и так далее, пока одна из машин не остановится. Как говорят, мы запускаем две машины квазипараллельно. 9

10 Таким образом, в частности, если нетривиальное функциональное свойство программ перечислимо, то его дополнение не перечислимо. В частности, не перечислимо множество машин, не заканчивающих работу при фиксированных исходных данных. 4 Практическая разрешимость Чисто теоретически (в принципе, как говорят) для разрешимой задачи можно построить программу. Но будет ли эта программа работать, зависит отнюдь не только от теоретических алгоритмов, положенных в ее основу. Программа должна не просто давать приемлемый ответ, а давать его за приемлемое время и с приемлемой затратой ресурсов. Поэтому каждый раз, когда решается практическая задача, нужно думать о ее практической разрешимости. А это вопрос очень сложный, и успешно отвечать на него могут лишь те, кто одновременно владеет и мощными теоретическими методами, и высокой практической техникой. Второго и первого по отдельности недостаточно, более того, мнение исключительно высококвалифицированного специалиста в одной из этих областей, не владеющего другой стороной, на практике автора, его учеников и консультировавшихся им фирм неоднократно приводило к тем более печальным последствиям, чем выше был ранг и авторитет соответствующего специалиста. Единого понятия практической вычислимости нет и быть не может. Приведем пример. Пример 4. В теоретических работах обычно подчеркивается, что так называемые экспоненциально трудные задачи (требующие числа шагов машины Тьюринга, экспоненциально растущего по мере роста длины исходных данных) практически неразрешимы. Примером такой задачи служит задача проверки тавтологичности формулы булевой логики высказываний. Тем не менее, если алгоритм достаточно хорошо написан, то на современных машинах проверка формулы с переменными может производиться за реалистическое время. Другое дело, что, если алгоритм начал отказывать, то никакое тупое увеличение мощностей либо распараллеливание не поможет нам выиграть больше 5 7 переменных (но и это иногда спасает, правда, гораздо реже, чем хотелось бы). В качестве инструмента решения таких задач сейчас предлагается очередная псевдонаука квантовые компьютеры. К ней можно смело применить такой эпитет, поскольку вся теория работает здесь лишь в принципе 6, 6 Если глянуть чуть поглубже, воспользовавшись известными уже более 50 лет, но игнорируемыми физиками, понятиями теории некорректных задач, то видно, что даже в принципе 10

11 а рекламируется как способ решать реальные задачи. Таким образом, если данные небольшие, то часто реалистично решать экспоненциально сложные задачи. Если данные становятся побольше (например, массивы хотя бы в несколько сотен элементов), то нужно искать алгоритмы полиномиальной сложности (число шагов машины Тьюринга ограничено некоторым многочленом). Здесь почти любой способ снизить степень полинома, оценивающего число шагов, позволяет значительно расширить класс решаемых задач. К данному классу относятся задачи так называемого линейного или динамического программирования, используемые для оптимизации планов действий, или (если попроще) перемножение матриц. Если данные становятся еще больше (порядка миллионов данных), то даже квадратичные алгоритмы становятся неприемлемыми. Так что в типичной базе данных стремятся к тому, чтобы язык запросов содержал лишь предложения. требующие для своей обработки некоторого заранее фиксированного для данного запроса числа проходов по базе данных. Моделями таких алгоримов служат машины Тьюринга, работающие линейное время, либо конечные автоматы. Например, реалистичным запросом является сначала найти самого недисциплинированного работника на фирме, а затем всех его родственников в базе VIP-персон, чтобы начальник, выгоняя его, не натолкнулся, не дай Бог, на мохнатую лапу. Запрос же найти двух дальше всего живущих друг от друга сотрудников является чаще всего нереалистичным, если в базе данных заранее не предусмотрено упорядочение данных по географическому принципу. Особняком стоит сортировка данных. Она нелинейна, но чуть сложнее линейной. Поэтому базы данных стремятся все время поддерживать в отсортированном состоянии (дешевле каждый раз ставить данные на место, чем полностью пересортировывать их время от времени). Когда же сортировку все-таки приходится делать, Вы получаете от системного администратора неприятное предупреждение, что несколько часов пользоваться базой нельзя. поскольку идет сервисное обслуживание. Если же мы работаем с большими базами данных (миллиарды и триллионы записей), то даже два прохода по базе чаще всего становятся слишком дорогим удовольствием, а один допустим лишь в экстренных случаях, и поэтому методы поиска используют ссылки, чтобы не заниматься сплошным теория квантовых компьютеров не работает, если учесть неизбежные в реальной жизни погрешности данных и вычислительных элементов. Но объяснять это безнадежно, поскольку под нее дают большие деньги. А не писать об этом нельзя, поскольку провал данного направления в очередной раз будет использован болтунами и фундаменталистами как аргумент против науки и научного подхода в целом. 11

12 перебором. Именно так действуют ведущие поисковые системы в Интернете. Рассмотрев все предыдущее, мы видим, что, как ни странно, сложность задач чаще всего оценивают в терминах машин Тьюринга. Да, это именно так. При переходе от машины Тьюринга к «более современным» архитектурам можно выигрывать 1 2 степени полинома на не слишком больших данных (одну частенько, две порою), но зато резко затрудняется теоретический анализ, а более адекватным он не становится. Но, конечно же, на машине Тьюринга никто реальные алгоритмы не пишет, и программы типа Turing s World (Корнелл, США) служат лишь для обучения. А учиться нужно не столько тому, что нужно сейчас, сколько тому, что не устареет за всю Вашу жизнь (особенно это имеет смысл для русских, которые умеют учиться сами и думают менее прямо и зачастую более эффективно, чем некоторые другие; как видите, и ведущие 7 американские университеты придерживаются того же принципа). Теперь можно сделать еще одно замечания. Тезис Черча противоречит общей теории относительности 8. Если оставить машину Тьюринга в нашем мире (прикрепив к ней неслабую водородную бомбу, взрывающуюся, если она кончит вычисления), а самому отправиться в путешествие через вращающуюся черную дыру, то за конечное время Вы, согласно Эйнштейну, увидите все будущее нашей Вселенной и узнаете, кончила ли машина работу (был взрыв или нет?) Далее, аргумент типа: «Это можно запрограммировать и на С++» с логической точки зрения имеет тот же статус, что и утверждение A A, то есть содержательного смысла не несет, поскольку является тавтологией. Вопрос не в том, можно ли, а будет ли лучше, красивее, переносимее, и просто реалистичнее. Так что слушать такие аргументы нельзя, а говорить такие вещи самому тем более. Но не стоит спорить с тем, кто так говорит: просто игнорируйте его в данном отношении, поскольку убежденному невежде хоть кол на голове теши... А напоследок заметим, что знание границ знания подразумевает (в идеале) и знание границ границ. Поэтому следующей статьей в серии будет «Методы Кристобаля Хунты», в которой мы разберем, как решать нерешаемые задачи. Для тех, кто интересуется понятием алгоритма, можно посоветовать две книги: великолепный учебник лауреата Нобелевской премии М. Минского (Нобелевскую премию он получил за то, за что его нужно было бы скорее 7 То есть не те, на которые ориентируются наши верхи при перестройке нашего образования. 8 Для автора вопрос о том, что в данном случае предпочесть, не стоит: конечно же, более подтвержденное положение! 12

13 публично выпороть: за научную демагогию, связанную с применением теории алгоритмов к психологии; но эта книга показывает, что получил ее в данном случае действительно выдающийся человек) и отличную, но более серьезную книгу Успенского и Семенова. М. Минский. Вычисления и автоматы. М. Радио и связь, 1970 (готовится переиздание в издательстве РХД: классика не стареет!) В. А. Успенский, А. Л. Семенов. Теория алгоритмов: основные открытия и приложения. М.: Наука,

1 Общий обзор теории алгоритмов

1 Общий обзор теории алгоритмов 1 Общий обзор теории алгоритмов Уже на самых ранних этапах развития математики (Древний Египет, Вавилон, Греция) в ней стали возникать различные вычислительные процессы чисто механического характера; с

Подробнее

Глава 4. Задача коммивояжера

Глава 4. Задача коммивояжера Глава 4. Задача коммивояжера В задаче коммивояжера рассматривается городов и матрица попарных расстояний между ними. Требуется найти такой порядок посещения городов, чтобы суммарное пройденное расстояние

Подробнее

Принятие решений при многих критериях

Принятие решений при многих критериях ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ- ВЫСШАЯ ШКОЛА ЭКОНОМИКИ САНКТ-ПЕТЕРБУРГСКИЙ ФИЛИАЛ В.Д. Ногин Принятие решений при многих критериях Учебно-методическое пособие Санкт-Петербург 2007 УДК 658.012.41 В.Д. Ногин.

Подробнее

ПЛАНИРОВАНИЕ И ОРГАНИЗАЦИЯ ЭКСПЕРИМЕНТА Часть 1

ПЛАНИРОВАНИЕ И ОРГАНИЗАЦИЯ ЭКСПЕРИМЕНТА Часть 1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ТИХООКЕАНСКИЙ ГОСУДАРСТВЕННЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ Е.А. Любченко, О.А. Чуднова ПЛАНИРОВАНИЕ И ОРГАНИЗАЦИЯ

Подробнее

Векторная алгебра и ее приложения

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

Подробнее

Д. В. Аносов. Дифференциальные уравнения: то решаем, то рисуем

Д. В. Аносов. Дифференциальные уравнения: то решаем, то рисуем Д. В. Аносов Дифференциальные уравнения: то решаем, то рисуем Москва Издательство МЦНМО 2008 УДК 22.161.6 ББК 517.91 А69 А69 Аносов Д. В. Дифференциальные уравнения: то решаем, то рисуем М.: МЦНМО, 2008.

Подробнее

МОЖЕТ ЛИ (ИНДИВИДУАЛЬНАЯ) ПОСЛЕДОВАТЕЛЬНОСТЬ НУЛЕЙ И ЕДИНИЦ БЫТЬ СЛУЧАЙНОЙ? В. А. Успенский, А. Л. Семенов, А. X. Шень

МОЖЕТ ЛИ (ИНДИВИДУАЛЬНАЯ) ПОСЛЕДОВАТЕЛЬНОСТЬ НУЛЕЙ И ЕДИНИЦ БЫТЬ СЛУЧАЙНОЙ? В. А. Успенский, А. Л. Семенов, А. X. Шень 1990 г. январь февраль т. 45, вып. 1 (271) УСПЕХИ МАТЕМАТИЧЕСКИХ НАУК УДК 517.11 МОЖЕТ ЛИ (ИНДИВИДУАЛЬНАЯ) ПОСЛЕДОВАТЕЛЬНОСТЬ НУЛЕЙ И ЕДИНИЦ БЫТЬ СЛУЧАЙНОЙ? В. А. Успенский, А. Л. Семенов, А. X. Шень СОДЕРЖАНИЕ

Подробнее

Цель работы. Содержание работы. 1. Установление наличия корреляционной зависимости между случайными

Цель работы. Содержание работы. 1. Установление наличия корреляционной зависимости между случайными Цель работы Часто на практике необходимо исследовать, как изменение одной переменной величины X влияет на другую величину Y Например, как количество цемента X влияет на прочность бетона Y Такое влияние

Подробнее

Носов Валентин Александрович ОСНОВЫ ТЕОРИИ АЛГОРИТМОВ И АНАЛИЗА ИХ СЛОЖНОСТИ

Носов Валентин Александрович ОСНОВЫ ТЕОРИИ АЛГОРИТМОВ И АНАЛИЗА ИХ СЛОЖНОСТИ Носов Валентин Александрович ОСНОВЫ ТЕОРИИ АЛГОРИТМОВ И АНАЛИЗА ИХ СЛОЖНОСТИ К у р с л е к ц и й Москва 99 Настоящее пособие возникло на основе курса лекций, читаемых слушателям, обучающимся по специальности

Подробнее

Д. В. АНОСОВ. Отображения окружности, векторные поля и их применения

Д. В. АНОСОВ. Отображения окружности, векторные поля и их применения Д. В. АНОСОВ Отображения окружности, векторные поля и их применения МЦНМО Москва 2003 УДК 515.12 ББК 22.152 А69 Аносов Д. В. А69 Отображения окружности, векторные поля и их применения. М.: МЦНМО, 2003.

Подробнее

http://profbeckman.narod.ru/informlekc.htm Лекция 1. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ИНФОРМАТИКА

http://profbeckman.narod.ru/informlekc.htm Лекция 1. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ИНФОРМАТИКА Профессор Игорь Н. Бекман ИНФОРМАТИКА Курс лекций Лекция 1. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ИНФОРМАТИКА Наука информатика возникла сравнительно недавно, так что ни её определение, ни цели, ни задачи до сих

Подробнее

КАК РЕШАТЬ ЗАДАЧИ ПО ТЕОРЕТИЧЕСКОЙ МЕХАНИКЕ

КАК РЕШАТЬ ЗАДАЧИ ПО ТЕОРЕТИЧЕСКОЙ МЕХАНИКЕ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет им. Н.И. Лобачевского»

Подробнее

Что такое Онтология, для чего она нужна и чем отличается от Метафизики? Всеобщая система Онтологии и Метафизики.

Что такое Онтология, для чего она нужна и чем отличается от Метафизики? Всеобщая система Онтологии и Метафизики. Что такое Онтология, для чего она нужна и чем отличается от Метафизики? Всеобщая система Онтологии и Метафизики. Терехович Владислав Эрикович Кафедра философии науки и техники, Философский факультет, Санкт-Петербургский

Подробнее

Как устроен блочный шифр? Содержание

Как устроен блочный шифр? Содержание Как устроен блочный шифр? Андрей Винокуров (avin@chat.ru). В настоящей статье вы найдете описание традиционной архитектуры построения блочных шифров, лежащей в основе наиболее известных современных несекретных

Подробнее

Формирующее оценивание: оценивание для обучения

Формирующее оценивание: оценивание для обучения Формирующее оценивание: оценивание для обучения Практическое руководство для учителей Часть 1 Как сделать оценивание оцениванием для обучения Продекларированный Дж. Дьюи и реализуемый в разнообразных инновационных

Подробнее

Задача С6 на ЕГЭ по математике

Задача С6 на ЕГЭ по математике И. В. Яковлев Материалы по математике MathUs.ru Содержание Задача С6 на ЕГЭ по математике 1 Необходимая теория 2 1.1 Числовые множества................................... 2 1.2 Делимость.........................................

Подробнее

Редакционный совет: В.И Бахмин, Я.М. Бергер, Е.Ю. Гениева, Г.Г. Дилигенский, В.Д. Шадриков

Редакционный совет: В.И Бахмин, Я.М. Бергер, Е.Ю. Гениева, Г.Г. Дилигенский, В.Д. Шадриков 1 Учебная литература по гуманитарным и социальным дисциплинам для высшей школы и средних специальных учебных заведений готовится и издается при содействии Института "Открытое общество" (Фонд Сороса) в

Подробнее

Критическая работа на тему "Диагностики Кармы" Лазарева С. Н.

Критическая работа на тему Диагностики Кармы Лазарева С. Н. Критическая работа на тему "Диагностики Кармы" Лазарева С. Н. 0. Вступление Книги "Диагностика Кармы" С. Н. Лазарева занимают важное место в эзотерической литературе России. Для многих людей деятельность

Подробнее

Тензорное исчисление для «чайников»

Тензорное исчисление для «чайников» Сергей Гаврилов Тензорное исчисление для «чайников» - Инварианты Введение в тему Начнем с вектора 4 Компоненты вектора 4 Матричное представление 5 Переходим к другим координатам 5 Длина вектора в прямоугольных

Подробнее

Тензорное исчисление для «чайников»

Тензорное исчисление для «чайников» Сергей Гаврилов Тензорное исчисление для «чайников» - Инварианты Понятие тензора Вектор Компоненты вектора4 Матричное представление4 Переход к другим координатам4 Длина вектора в прямоугольных координатах5

Подробнее

О ЗНАЧЕНИИ СОЮЗА ЕСЛИ

О ЗНАЧЕНИИ СОЮЗА ЕСЛИ А. В. Гладкий О ЗНАЧЕНИИ СОЮЗА ЕСЛИ В заметке [1] автор высказал мысль, что взаимоотношение естественного языка и языка математической логики следует изучать со стороны первого, а не второго, и что, в

Подробнее

Владимир Вовк, Глен Шафер. Вероятность и финансы. Ведь это только игра! О. Б. Шейнин, перевод главы 1

Владимир Вовк, Глен Шафер. Вероятность и финансы. Ведь это только игра! О. Б. Шейнин, перевод главы 1 Владимир Вовк, Глен Шафер Вероятность и финансы. Ведь это только игра! Glenn Shafer, Vladimir Vovk Probability and Finance. It s Only a game! New York, John Wiley & Son, 2001 О. Б. Шейнин, перевод главы

Подробнее

К.А.ТОМИЛИН ФУНДАМЕНТАЛЬНЫЕ ПОСТОЯННЫЕ И "ПИФАГОРЕЙСКИЕ" ПОПЫТКИ ИХ ОБОСНОВАНИЯ

К.А.ТОМИЛИН ФУНДАМЕНТАЛЬНЫЕ ПОСТОЯННЫЕ И ПИФАГОРЕЙСКИЕ ПОПЫТКИ ИХ ОБОСНОВАНИЯ Исследования по истории физики и механики, 2003. М.: Наука, 2003, с.314-342. К.А.ТОМИЛИН Институт истории естествознания и техники им. С.И.Вавилова ФУНДАМЕНТАЛЬНЫЕ ПОСТОЯННЫЕ И "ПИФАГОРЕЙСКИЕ" ПОПЫТКИ

Подробнее

НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМ.Н.И.ЛОБАЧЕВСКОГО НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ УЧЕБНО-НАУЧНЫЙ И ИННОВАЦИОННЫЙ КОМПЛЕКС "НОВЫЕ МНОГОФУНКЦИОНАЛЬНЫЕ МАТЕРИАЛЫ И НАНОТЕХ- НОЛОГИИ"

Подробнее

ВЫПУСКНАЯ АЛИФИКАЦИОННАЯ РАБОТА: ПОДГОТОВКА, ОФОРМЛЕНИЕ, ЗАЩИТА

ВЫПУСКНАЯ АЛИФИКАЦИОННАЯ РАБОТА: ПОДГОТОВКА, ОФОРМЛЕНИЕ, ЗАЩИТА бм^&/&*/ Е.П. Врублевский, О.Е.Лихачева, Л.Г. В рублевская ВЫПУСКНАЯ АЛИФИКАЦИОННАЯ РАБОТА: ПОДГОТОВКА, ОФОРМЛЕНИЕ, ЗАЩИТА «Физкультура и Спорт» ЕМ. Врублевский, О.В. Лихачева, А.Г. Врублевская ВЫПУСКНАЯ

Подробнее

1. С чего начать. Начинающему автору. Уважаемый читатель!

1. С чего начать. Начинающему автору. Уважаемый читатель! Уважаемый читатель! С этого номера мы открываем новую рубрику «Начинающему автору». Она посвящена тем, кто стоит у истоков своего творческого пути студентам старших курсов, молодым инженерам и ученым.

Подробнее

Устойчивость супружеских пар и другие комбинаторные задачи

Устойчивость супружеских пар и другие комбинаторные задачи Устойчивость супружеских пар и другие комбинаторные задачи Введение в математический анализ алгоритмов Дональд Э. Кнут Содержание От переводчиков русского издания 5 От переводчика английского издания 5

Подробнее

КАК УЛУЧШИТЬ РАБОТУ УМА

КАК УЛУЧШИТЬ РАБОТУ УМА Владимир ПАРОНДЖАНОВ КАК УЛУЧШИТЬ РАБОТУ УМА Алгоритмы без программистов это очень просто! НОВЫЕ СРЕДСТВА ДЛЯ ОБРАЗНОГО ПРЕДСТАВЛЕНИЯ ЗНАНИЙ, РАЗВИТИЯ ИНТЕЛЛЕКТА И ВЗАИМОПОНИМАНИЯ Академия народного хозяйства

Подробнее