Косовский Николай Кириллович
ДИСКРЕТНОСТЬ В МАТЕМАТИКЕ
Первый вопрос традиционный: новые тенденции в математике и математических науках, их отражение в образовании.
Сейчас больше интересуются основаниями математики и информатики. Как следствие, те теоремы, которые раньше казались экзотическими, сейчас привлекают больше внимания. Например, первая теорема Геделя о неполноте арифметики, которая состоит в том, что не существует полной системы для доказательства утверждений о полиномах. Вторая теорема Геделя говорит о том, что если непротиворечивость арифметики можно доказать средствами самой арифметики, то арифметика противоречива. Из других интересных задач можно вспомнить теорему о независимости континуум-гипотезы от аксиом теории множеств Цермело-Френкеля, теорему Геделя о полноте исчисления предикатов, предложенного Гильбертом. Впоследствии стало ясно, что исчисление предикатов слишком богато, и нет алгоритмов проверки утверждения о доказуемости в исчислении предикатов, и, следовательно, в любой математической теории, которую можно аксиоматически сформулировать на основе этого аппарата.
Следующим этапом (60-70-е годы) стало широкое использование алгоритмов, включая решение вопроса о том, существует ли алгоритм для решения данной задачи. Потом выяснилось, что этого недостаточно. Для некоторых процессов есть алгоритмы, но они обладают слишком большой сложностью, чтобы реализовать их на современных компьютерах или компьютерах ближайших поколений. Возникла такая область исследований, как теория сложности алгоритмов, когда нас интересует не только существование алгоритма, но и существование алгоритма с заданной сложностью (например, с огра-
ниченным сверху количеством шагов). Удобнее и проще доказывать, что объем памяти, используемой в процессе работы алгоритма, не превосходит заданной функции от объема исходных данных.
Проблема в том, что не все алгоритмы, которые принципиально решают ту или иную задачу, могут быть реализованы на практике. Язык дискретной математики более точно подходит для описаний, которые может преобразовывать компьютер в тех или иных (даже достаточно больших) объемах исходных данных.
Как говорил Гаусс, «Математика -это язык». А раз это язык, то какие средства используются в языке дискретной математики? Если мы планируем использовать компьютер, это должен быть язык, который принадлежит сфере искусственного интеллекта. Искусственный интеллект сейчас активно развивается. Есть традиционные области применения искусственного интеллекта, например, экспертные системы.
На мой взгляд, в дальнейшем многие математические вопросы, многие вопросы физических, инженерных приложений будут решаться с применением пакетов компьютерной алгебры. Но при этом людей ждут некоторые сложности. Например, возникает вопрос: как дифференцировать условные выражения? В точке ветвления нужно дополнительно обращать внимание на гладкость и другие особенности. Но пакеты компьютерной алгебры иногда об этом не подозревают, и в результате разные пакеты по-разному дифференцируют одну и ту же функцию. Это один из примеров того, с чем приходится сталкиваться человеку, который вроде бы решил задачу с помощью компьютера, но выясняется, что языки человека и компьютера не очень хорошо согласованы. Поэтому на современном этапе использова-
ния компьютерной техники язык непрерывной математики следует преобразовать. Дискретность приобретает в математике большую важность, и, как следствие, должно быть больше исследований в этом направлении. Алгоритмов в непрерывной математике практически нет, поскольку точное математическое понятие алгоритма опирается на дискретную математику.
К тому же бывают разные взгляды в различных математических школах. Есть некоторая разница в том, в каких странах какие разделы математики изучают в большей степени, есть много разных других сложностей. Приведу пример из логики. Конечнозначная логика лучше соответствует работе в условиях неопределенности, когда наша точка зрения очень часто меняется и «черно-белую» логику (да/ нет) должна сменить конечнозначная логика. Например, возможные варианты ответа в социологическом опросе: да, нет, не знаю. Здесь применяется трехзначная логика.
Пока эти тенденции еще не захватили приложения, поэтому мне кажется, что в ближайшее столетие сделают много открытий и найдут оттенки, о которых мы сейчас и не догадываемся. Например, как должен быть устроен мобильный телефон, чтобы свести к минимуму потребление энергии? Это пример практической задачи, для которой теоретические вопросы раньше не разрабатывались. Есть много моментов, связанных со сложностью алгоритмов, с количеством потребляемой энергии, и я думаю, что у нас готовится еще много неожиданного.
Я наблюдал три революции вычислительной техники. Первая связана с появлением компьютеров, когда математики говорили: а что он может сделать? Только выполнить алгоритм, который я для него придумал.
..мЯспектор ^лирещсы. по&ому фе&и и &<ж
Потом люди осознали, что работа с компьютером требует значительных усилий. Затем появились персональные компьютеры. Теперь уже программисты говорили: у меня на компьютере реализован алгоритм. А что он сделал? Многие не могли объяснить, как и какие трудности они преодолели при решении задачи. Следующий этап - появились встроенные приложения. Выяснилось, что они должны укладываться в определенные временные рамки.
Я думаю, что общее впечатление по поводу новых тенденций второй половины нашего века я изложил. Основная идея в том, что язык должен быть дискретным, а задачи должны быть не более сложными, чем КР-полными или РБРАСБ-полны-ми. Другие задачи вы можете рассматривать в рамках тех или иных теоретических построений, но для практического использования на компьютере эти условия должны выполняться.
Второй вопрос - о влиянии информатики на преподавание математики. Вы сказали, что еще 100 лет можно ждать отклика на эти идеи. Но, может быть, какие-то тенденции в преподавании можно наблюдать уже сейчас?
Многое можно наблюдать уже сейчас. Например, первая теорема Геделя о неполноте арифметики с ее доказательством может быть включена в курс математики. Есть некоторые факты, недоказуемые в арифметике, и такие примеры можно демонстрировать. Кроме того, можно ввести ограничение -какими средствами при доказательстве мы можем пользоваться (например, разрешено ли применять ординальную индукцию).
Гильберт думал, что можно всю математику пред-
ставить в виде большой партии игры в шахматы, где играют по заранее оговоренным правилам. Но первая теорема Ге-деля о неполноте арифметики показала, что это невозможно.
Для практических целей мы должны формулировать арифметику для чисел, представимых в компьютере одинарной или двойной ячейкой. Возможно, использование очень больших чисел - это язык, который уходит в некоторые бесконечности, и, как следствие, алгоритмы получаются сложные или вообще не получаются. На мой взгляд, многие процессы можно описать на языке конечных чисел компьютерного типа «целый».
Вы считаете, что можно рассказать теорему Геделя всем студентам?
Даже всем школьникам.
Возможно, не быило такого прецедента, кроме физико-математических школ, и не было книги, где была бы сделана попытка не уходить в достаточно абстрактные понятия?
Что значит «абстрактное понятие»? Понятие числа тоже абстрактное, но школьники его запросто воспринимают. Здесь дело не в абстрактности, дело в привычке. Если школьника обучают только числовым алгоритмам, то, конечно, ему теорему Геделя не осилить. Но если ему рассказывают о трансляторах и интерпретаторах, о возможности рассматривать и обрабатывать строку, как программу, то он поймет гораздо больше. Если ученик в состоянии понять, что существует взаимно-однозначное соответствие между числами и алгоритмами, то доказательство теоремы Ге-деля проводится довольно просто. При этом математические доказательства построены на математической ло-
ОолфеЯ биЛл больший у
гике. Язык математической логики сложился к 1900 году, когда Гильберт сформулировал свои знаменитые проблемы и заложил основы исчисления предикатов. Далее осталось перечислить аксиомы арифметики, и это вполне понятно и доступно современным школьникам. Поскольку сейчас дети хорошо знакомы с работой на компьютере, они хорошо знакомы и с понятием алгоритма. Поэтому им можно более кратко излагать то, что для человека, незнакомого с компьютером, может вызвать существенные проблемы.
Я вспоминаю анекдотический случай про кванторы. Однажды я занимался с учителями, и выяснилось, что им инспектор запрещал использовать кванторы, потому что дети и так перегружены, и новые значки им становятся непонятными. Но школьники могут пользоваться этими знаками как стенографией. При использовании условного знака легче понять, о чем идет речь, когда вместо длинного слова используется один символ. Логика все-таки начинается не там, где булева алгебра, а там, где кванторы. Без кванторов мы мало что можем записать. Когда мы формулируем, например, закон коммутативности а'+)>=)>+а\ здесь неявно присутствует квантор всеобщности (для всех чисел).
Есть в логике и другие, совсем парадоксальные вещи. Например, университетский курс анализа можно сократить раза в два, используя нестандартный анализ, бесконечно малые и бесконечно большие числа. Эта идея восходит еще к Лейбницу. Если мы не выходим за пределы некоторого специального языка, то можем обращаться с бесконечно малыми так же, как с рациональными числами. Есть числа натуральные, а есть гипернатуральные - объединение натуральных с бесконечными числами. При этом если
мы обозначим бесконечно большое число, например, посредством «, то выполнено неравенство 2®>«. Это можно доказать. То есть получается немного другая арифметика с бесконечно большими числами. Имеет смысл рассматривать не все вещественные числа, а только гиперрациональные числа, то есть числа, которые входят в аксиоматику рациональных чисел, но являются нестандартным расширением рациональных чисел. И е и р являются как раз такими гиперрациональными числами.
Мне кажется, что в основе описаний мира лежит логико-математический язык, и, в первую очередь, конечно, алгоритмический. Но здесь есть один момент. В алгоритмическом языке ограниченной сверху сложности желательно использовать кванторы только по конечным множествам.
Какие изменения для существующих курсов вы1 могли бы1 предложить?
Должен быть больший вес у дискретной математики, информатики, математических основ информатики. Традиционно были сильны концепции, связанные с непрерывными объектами. Была концепция о том, что мир непрерывен, и его можно описать с помощью вещественных чисел. Но что такое вещественные числа? Вместо числа р предлагают алгоритм вычисления числа р, но это же алгоритм, а не число! Можно считать числом то, что задается с помощью алгоритма, можно считать числом то, что может быть результатом измерений.
Здесь есть такая опасность. В течение многих лет строится система образования, которая базируется на социальных механизмах, в том числе, учитывает и то,
,еели уАлафиЛ-ь гела^ека слишком мНагаа мышлений, у Нега мафеЛ НлсЛупиЛ^... пе^епалНеНие____
что изданы учебники, проведены педагогические исследования, обучены родители и пр.
Я приведу пример не из области математики. Возьмем то, что физики называют «термояд». Сколько лет обещают запустить реактор, вырабатывающий энергии больше, чем в нем тратится? Проинтегрируем сумму затраченных усилий -сколько людей над этим работало, сколько конференций прошло, сколько грантов получено, сколько книг было выпущено, сколько ученых с мировыми именами было выпущено, сколько кандидатов наук, сколько докторов, и мы почувствуем, что это направление само в себе. Такие разделы есть в любой науке - будь то физика, химия или математика. Единственный способ окончания этого - прекратить финансирование. Но это социальный вопрос.
Иногда мне хочется покритиковать какую-нибудь науку. Проще критиковать тех людей, которых я лучше знаю - например, тех, которые занимаются в области, близкой к прикладной математике. Но после того, как у меня возникает такое желание, я вдруг вспоминаю, что есть еще огромное количество юридических, филологических и разных других наук, которые используют математику в значительно меньшей степени, потому что в принципе не могут ее использовать, поскольку их наука находится на стадии, как сейчас принято говорить, гуманитарного оформления. Еще не выработаны, не очерчены понятия. Кроме этого, разные авторы под одним и тем же словом, например, под словом «революция», понимают разные вещи. И желание критиковать своих коллег сразу пропадает, когда я понимаю, что есть много других наук, которые в еще большей степени заслужива-
ют критики. Я не хочу сказать, что не нужно заниматься гуманитарными науками, но там удается получать результаты намного слабее, чем, скажем, в математических науках. Как правило, очень часто результаты оказываются такими: может быть, так, а может быть, не так. Получается, что наука заключается только в «собирательстве». Все-таки мне кажется, что должна быть логическая работа, должна быть предсказательная функция в науке.
В принципе, мышлений может быть много, и, если заложить в человека слишком много мышлений, у него может наступить, как раньше говорили, переполнение. Дело в том, что школьнику или студенту трудно выбрать, что правильно, а что неправильно. Часто студента привлекает какое-то понятие, хочется его изучить. А то, что это никакого практичес-
кого применения не находит и в ближайшем будущем не будет находить, его не интересует. Для них обучение - это своего рода игра, по ходу которой им рассказывают что-то новое. Но когда студент приходит в аспирантуру, игра кончается, поскольку ему ничего нового не рассказывают, а от него требуют что-то новое. А он уже не может что-то новое придумать.
Вопрос о том, чему учить студентов, всегда сложный. Я сторонник такой либерализации образования, чтобы студент мог выбрать курс между двумя преподавателями, а еще лучше - между тремя. Дело не в том, что один преподаватель лучше, а другой хуже. У каждого преподавателя и у каждого студента есть свои особенности, и надо дать студенту возможность почувствовать себя более комфортно.
Косовский Николай Кириллович, профессор, заведующий кафедрой информатики мат.-мех. факультета Санкт-Петербургского государственного университета.
НАШИ АВТОРЫ