Зачем нужен функциональный анализ будущим специалистам по прикладной математике и информатике

Программист факультета информационных технологий и программирования Денис Антипов рассказал, зачем нужен функциональный анализ будущим специалистам по прикладной математике и информатике.

Если Вам учиться легко, то Вы либо очень способны, либо Вас ничему не учат.

Татьяна Толстая

Меня недавно попросили написать текст о том, зачем на факультете информационных технологий и программирования Университета ИТМО нужен такой предмет, как функциональный анализ (как говорят студенты, функан), так как этот вопрос возникает не только среди студентов, но даже преподавателей. Существует и противоположная точка зрения: один наш выдающийся выпускник сказал, что никогда не стеснялся того, что окончил наш вуз, так как в программу, когда он учился, входили такие предметы, как функан и теория функций комплексной переменной. Другой незаурядный выпускник сказал, что после изучения функана, он лучше понял матан (математический анализ).

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

Вопрос студентов удивил меня также и тем, что он задается, несмотря на то, что в наше время у всех есть доступ в Интернет. Если погуглить, то легко найти обсуждение этой темы. Например, по запросу «Why learn functional analysis» сразу можно выйти на [1], где приведены примеры применения и причины необходимости функционального анализа в учебной программе по прикладной математике. Указанное обсуждение является далеко не единственным в сети на эту тему. Если же вопрос ставить не только про функциональный анализ, а более общий: зачем вообще нужна чистая математика в учебных программах для обучающихся прикладной математике, то опять по запросу «Why we learn pure math» можно найти обсуждение и этого вопроса, например, в [2].

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

Далее меня удивило то, что студенты в течение многих лет не задавали этот вопрос (у них, по крайней мере, «не поворачивался язык» говорить об этом), и только в последние годы они не стесняются его задавать, причем в такой, например, форме: «Если я собираюсь делать сайты, то зачем мне нужны функан и диффуры?» Возникает вопрос, а туда ли они поступили, и мне кажется, что с такой мотивацией они скоро из вуза исчезнут.

Меня удивило также и то, что люди не задали этот вопрос много лет преподающему функан Николаю Юрьевичу Додонову, который преподает его не только у нас, но и на матмехе СПбГУ, или хотя бы мне, так как многие знают, что я имею отношение к преподаванию математики на кафедре. Мы могли бы объяснить или хотя бы посоветовать посмотреть, например, книгу [3], которая хотя и была издана давно, но приведенные в ней примеры актуальны до сих пор.

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

На самом деле вопрос необходимости функана куда более глубокий, чем кажется, и уходит корнями в философские вопросы о методах познания. Для начала вспомним, что в Новое время (в XVII веке) появились два основных направления в философии науки — эмпиризм и рационализм, которые во многом противопоставляли себя друг другу [4]. В основе классического рационализма, главные принципы которого были сформулированы Декартом [5], лежит идея возможности логического познания мира. Она берет свое начало еще из «Аналитик» Аристотеля [6]. Эмпиризм, основателем которого принято считать Бэкона [7], напротив, считает возможным только чувственное восприятие мира и ставит единственным критерием истинности эксперимент.

В наше время большинство ученых сходится в том, что ни экспериментальная, ни теоретическая наука не самодостаточны, а дополняют друг друга, и потому они обе необходимы для расширения человеческих знаний. Более подробное рассуждение на эту тему в области эволюционных вычислений можно найти в первой части [8].

Разумеется, стоит признать, что до сих пор даже среди ученых встречаются люди, не признающие чисто теоретические или чисто практические работы (первые встречаются чаще). В этом я убедился на недавней International Conference on Parallel Problem Solving from Nature (PPSN 2018), где потратил минут десять своего доклада на то, чтобы объяснить одному китайцу необходимость теории в области эволюционных вычислений. Однако десяти минут было недостаточно, чтобы изменить мнение убежденного эмпирика, так как, повторюсь, данные вопросы являются философскими.

Функциональный анализ, как это следует из его названия, является теоретической наукой, как и многие другие ветви математики, такие как топология, теория чисел, теория игр и другие. Однако, несмотря на то, что они все являются неприкладными по своей сути, каждая из них нашла применение при решении практических задач. Топология используется в анализе данных (TDA — Topological Data Analysis) [9], теория чисел — в криптографии [10], теория игр — в экономике [11]. Функциональному анализу также было найдено практическое применение. Самым ярким примером является его применение в квантовой механике [12]. Однако сегодня многие студенты нашей кафедры не считают нужным изучать квантовую механику (и, как ни грустно, физику в целом), поэтому более близкий пример для КТ-шников — применение функана для оценки погрешности вычислений численных методов при решении различных задач, в том числе нелинейных, что описано в [3]. Отмечу, что в этой книге содержится много ссылок на другие работы, посвященные практическому применению функционального анализа.

В случае если читателю недостаточно примеров применения функана, отмечу, что он широко используется в теории вероятностей для анализа стохастических процессов [13]. В своей работе я пользуюсь функаном именно в этом контексте. Например, в моей последней публикации с Бенжамином Доерром [14] знания функционального анализа очень помогли осознавать особенности анализируемого стохастического процесса и получить новые научные результаты, например, разработать оригинальный метод анализа эволюционных алгоритмов.

Приведу еще одну причину, почему стоит изучать функан. Известно, что большинство известных математических результатов было получено просто потому, что математикам это было интересно, а не потому, что они знали про какое-либо их практическое применение заранее, которое, тем не менее, было найдено позже (иногда сразу же, а иногда и через много десятилетий): «ищите и обрящете».

Здесь можно вновь привести примеры топологии, теории чисел и теории игр, так как сначала появились эти ветви математики, а только потом люди нашли им практическое применение. Однако наиболее интересным мне кажется пример Джорджа Буля.

Он одним из первых пришел к идее, что математик должен оперировать символами, представляющими некоторые объекты, а не самими объектами. Буль утверждал, что математика не должна привязываться к чему-то реальному и должна быть абстрактной. Это привело его к разработке матлогики и булевой алгебры в 1847 году [15]. И хотя Буль очень хотел, чтобы его алгебра была примером чистой, неприкладной математики, все мы знаем, что после развития вычислительной техники работы Буля стали настолько прикладными, что современный мир просто не мог бы без них обойтись.

Продолжатель дела Буля — Клод Элвуд Шеннон окончил MIT по специальности «электротехника и математика». Это позволило ему приложить теорию Буля к релейно-контактным схемам. Однако мне рассказывали о выдающемся математике, который долго расспрашивал, существенно ли, что диод проводит только в одну сторону.

Таким образом, одной математики тоже может быть недостаточно, и именно поэтому в направлении подготовки или специальности нашей «кафедры» и есть слово «прикладная». Но прикладная математика, а еще и информатика. Последнее слово еще больше усугубляет необходимость изучения математики, так как оно является переводом c английского термина Computer Science — компьютерная наука. Тот, кто этого не понимает или не хочет понимать и учить, как говорится, свободен … от обучения у нас.

Кстати, если это так, то для познания компьютерной науки очень неплохо начать ей заниматься уже в студенческие годы, так, во-первых, выдающийся российский хирург Н. И. Пирогов говорил: «Отделить учебное от научного нельзя. Но научное без учебного все-таки светит и греет, а учебное без научного — только блестит», а, во-вторых, без получения хотя бы каких-то научных результатов магистерскую выпускную работу у нас не защитить. И еще. Не путайте национальный исследовательский университет, куда вы поступили, с профессионально-техническим училищем, курсами или даже институтом повышения квалификации, а также богодельней…

Возвращаясь к функциональному анализу, заметим, что он так же, как и булева алгебра, развивался не столько с целью практического применения, сколько ради расширения математических знаний. Хоть он и берет свое начало примерно в одно время, что квантовая механика, после получения основных результатов функана в квантовой механике произошел значительный прорыв [12]. Оказалось, что самосопряженные операторы как нельзя лучше подходят для описания изменений в квантовой системе. Более того, понятие «спектр оператора» оказалось тесно связанным с физическим спектром. Применение функционального анализа для оценки погрешностей было предложено только после того, как вычислительная техника достаточно развилась — с конца 40-х годов XX века. Если же говорить про применение функана к стохастическим процессам, то оно началось с квантовой механики. Кроме того, с развитием вычислителей появилось множество вероятностных алгоритмов, для анализа которых также были необходимы средства из функционального анализа.

Таким образом, математику и, в частности, функциональный анализ стоит изучать не только ради собственного интереса, но и для практической пользы, которая может быть получена позже, а, может быть, и не получена…

Три выдающихся математика имели результаты и в области функционального анализа. Это им не помешало, а, возможно, помогло, получить выдающиеся практические результаты. Первый из них — Джон фон Нейман (он считается основоположником современного функционального анализа), создавший структуру ЭВМ, которая повсеместно применялась до последнего времени. Второй — Норберт Винер (в функане известна теорема Пэли-Винера-Шварца) — создатель кибернетики, а еще известны фильтры Винера, которые совершенствовались сначала Хопфом, а потом — почетным доктором Университета ИТМО Рудольфом Калманом. Третий — Андрей Колмогоров (известна книга Колмогоров А. Н., Фомин С. В. Элементы теории функций и функционального анализа. МГУ, 2006). Полученные им результаты в разных областях математики нашли многообразные применения в теории информации, теории вероятностей и теории алгоритмов.
И, наконец, даже если вы не хотите иметь ничего общего с квантовой физикой, численными методами и вероятностями, вам все равно целесообразно изучать функциональный анализ. Доктор физ-мат. наук, профессор Юрий Шполянский, выпускник Университета ИТМО 2000 года, сказал, что функциональный анализ был самым сложным предметом из всей учебной программы на кафедре, и что, хотя он сам не применяет его на практике, этот предмет, по мнению Юрия, является очень полезным для мозга.

Я полностью согласен с этими словами: в IT-индустрии, безусловно, много направлений, не требующих от программистов знаний в области функционального анализа, однако как можно добиться существенных успехов в этой области без хорошо развитого математического мышления? Павел Дуров наверняка не знает функана, но зато его брат Николай изучал функан точно, так как учился и защитил в свое время PhD по чистой математике [16]. Именно такая комбинация предпринимательского и математического талантов помогла братьям подняться до нынешних высот.

Если у Вас есть таланты Гейтса или Джобса, то вы, как и они, можете не учить математику, но в их компании на работу вас без знания математики вряд ли возьмут. Кстати, одно из часовых (!) собеседований Ивана Белоногова, когда он поступал на работу в компанию OpenAI [17], было посвящено теории вероятностей и линейной алгебре, и он нормально прошел это испытание, как, впрочем, и все остальные.

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

Надо признать, что в последнее время в связи с развитием технологий, растет объем и число предметов, которые следует преподавать студентам нашего направления (в том числе факультативно). Однако это не значит, что нужно уменьшать объем математических дисциплин в учебной программе, а надо повышать требования к студентам. К нам идут одни из самых талантливых школьников России в надежде получить лучшее образование, и вуз должен отвечать ожиданиям не только самих студентов, но и их родителей. Не все поступающие могут справиться с нагрузкой, которую предполагает трудное обучение, однако это не является поводом подстраивать программу под них. В стране существует множество других программ, на которых обучают программированию, но с более простыми учебными планами. Я говорю не только об Университете ИТМО: в стране 450 вузов, в которых готовят IT-специалистов, которые могут составить народное IT-ополчение, в то время как мы готовим спецназ.

Подведем итоги:

1. У функана есть множество практических применений [3, 12, 13].

2. Функан является сложным предметом, но это не причина не изучать его, хотя бы как предмет по выбору.

3. Функан, как и любая другая математическая дисциплина, может оказаться полезным в самых неожиданных областях.

4. Функан вносит неоценимый вклад в развитие математического мышления.

Я очень надеюсь, что данный текст поможет тем, кто учится на нашей кафедре, лучше понять, почему им нужен функан.
Текст написан мною при участии Анатолия Абрамовича Шалыто, который был также инициатором его написания. Мы благодарны коллегам за рецензирование текста.


P. S. Прочтя этот текст, Федор Царев спросил: «Есть краткий ответ на этот вопрос?». Шалыто ответил: «Специальность, по которой обучаются наши студенты называется „Прикладная, но математика“, а еще и „информатика“ (по-английски — Computer Science), а науки без математики не бывает. В Японии в настоящее время гуманитарные предметы не считают наукой, если там нет математики, программирования, моделирования и т. д. А математики, в свою очередь, не бывает без функана. Как сказал наш молодой fellowship Никита Алексеев: „Если человек не учил функан, то о чем с ним разговаривать?“ Пока вы молоды, надо глубоко учить математику, а параллельно с этим и после — все то, что предлагается здесь». Федя продолжил: «Вот это хороший ответ! Не ясно только, зачем весь остальной текст нужен)))».

Список литературы

[1] What is the main purpose of learning about different spaces, like Hilbert, Banach, etc?

[2] What is the «purpose» of pure mathematics?

[3] Коллатц Л. Функциональный анализ и вычислительная математика. Мир, М. 1969.

[4] Львов А.А. Курс лекций по дисциплине «История и философия науки». Лекция 5. Эксперимент и классическая наука Нового времени.

[5] Декарт Р. Рассуждение о методе, с приложениями: Диоптрика, Метеоры, Геометрия. Классики науки. Изд-во Академии наук СССР, 1953.

[6] Аристотель. Аналитики. Госполитиздат, Ленинград, 1952.

[7] Klein J., Bacon F. In The Stanford Encyclopedia of Philosophy. Metaphysics Research Lab, Stanford University, 2016.

[8] Doerr B., Doerr C. Theory for non-theoreticians / Proceedings of the 2016 on Genetic and Evolutionary Computation Conference Companion (GECCO '16 Companion), p. 463−482, NY, USA, 2016.

[9] Appliedtopology — source material for topological data analysis.

[10] Goodrich M., Tamassia R. Algorithm design: Foundations, analysis, and Internet examples. 2002.

[11] Neumann J. Theory of games and economic behavior. Princeton University Press, Princeton, 2007.

[12] Neumann J., Beyer R. Mathematical Foundations of Quantum Mechanics. Investigations in physics. Princeton University Press, 1996.

[13] Bobrowski A. Functional Analysis for Probability and Stochastic Processes: An Introduction. Cambridge University Press, 2005.

[14] Antipov D., Doerr B. Precise runtime analysis for plateaus. CoRR, abs/1806.1 331, 2018.

[15] Boole G. The Mathematical Analysis of Logic: Being an Essay Towards a Calculus of Deductive Reasoning. Cambridge Library Collection — Mathematics. Cambridge University Press, 2009.

[16] Nikolay Durov in nLab.

[17] OpenAI.

Программист факультета информационных технологий и программирования,  сотрудник международная лаборатория «Компьютерные технологии»

Персоны
  • Анатолий Шалыто

    Профессор факультета информационных технологий и программирования Университета ИТМО