Ректор ЮФУ побеседовала с кандидатом физико-математических наук о «семействах» в математике, древовидных структурах в программировании и будущем искусственного интеллекта.
В новой беседе цикла «Науки о семье» ректор Южного федерального университета, доктор экономических наук Инна Константиновна Шевченко обсуждает термин «семейственность» и связанные с ним элементы в математике и программировании с завкафедрой информатики и вычислительного эксперимента ЮФУ, кандидатом физико-математических наук, руководителем детской компьютерной школы Станиславом Станиславовичем Михалковичем.
- Сегодня мы снова поговорим о семье, но на этот раз в необычном ключе, а именно о семье в математике. Станислав Станиславович, подтверждается ли наша гипотеза, что в математике есть понятие «семья» или родственные, однокоренные слова? – уточняет ректор ЮФУ Инна Константиновна Шевченко.
- Да, есть семейство функций. Но также в математике и компьютерных науках есть объекты, которые имеют связь с «семьей» скорее по своей логике. Здесь я имею в виду «деревья», это термин из теории графов, - объясняет завкафедрой информатики и вычислительного эксперимента ЮФУ Станислав Михалкович.
Математическое дерево состоит из элементов. Есть главный элемент — корень, как бы прародитель. У него есть дочерние элементы, с которыми он соединяется ветвями — братья и сестры. У них есть свои дочерние элементы, у них — свои. И вот у самых последних дочерних пока никого нет. Они называются листьями и образуют «крону» этого математического дерева.
Интересно, что связи здесь похожи на те, которые мы привыкли видеть в семьях — есть братья и сестры, папы, мамы, дедушки, есть двоюродные братья и сестры, есть дяди, тети, племянники. Все как у людей.
- Как это проявляется в программировании, компьютерных науках?
- Первый пример, который приходит в голову – деревья в информатике, то есть это дерево папочек или каталогов в компьютере. В компьютере «диск» – это корень, у которого есть дочерние элементы, то есть папки. В папках есть другие папки и файлы. Возникает такая иерархическая структура, которая называется деревом.
Но математические деревья окружают нас всюду. Скажем, когда мы просматриваем в браузере интернет-страничку, она тоже является деревом элементов. Есть главный элемент, содержащий всю страницу, есть подэлементы – определенные области интернет-странички, в них – свои подэлементы. Если проводить бытовую аналогию, то комната – корневой элемент, затем есть дочерние элементы верхнего уровня, допустим шкафы, столы и так далее. У каждого из них есть свои дочерние элементы, например, на столе расположены различные предметы. Так возникает иерархия объектов.
- В чем различие с понятийным аппаратом «семья», «семейственность» в обыденном понимании и математическими знаниями, которые вы приводите в пример? – интересуется ректор ЮФУ Инна Шевченко.
- Ключевое различие, что каждый элемент семьи дерева имеет только один родительский элемент, хотя мы привыкли, что у нас два родительских элемента. И у «корня», прародителя всех элементов, своих родительских элементов нет. Он создает всю структуру, тогда как его создают математики.
- Я помню из курса математики и математической статистики в Университете, что после теории графов мы изучали объектно-ориентированное программирование, где в основе лежали как раз древовидные структуры. Можете ли рассказать об этом подробнее?
- В объектно-ориентированном программировании действительно есть иерархии класса объектов. Вся большая компьютерная система состоит из объектов разных типов, то есть классов объектов. Поясню на примере: возьмем всех работников университета. Работник – это тип, у которого есть родительский элемент, родительский класс – все люди. И есть те, кто работает и учатся в Университете, от них отходят подклассы: это научные работники, преподаватели, ректор, административный персонал, наши студенты. Потом у каждого из этих классов есть свои дочерние подклассы, свои разновидности. Например, среди студентов есть хорошие, плохие студенты или бакалавры, магистры и так далее. Так возникает целая иерархия классов и у каждого могут быть объекты. И в этом случае мы тоже говорим, что это – предок или «базовый класс», а это – потомок или «дочерний элемент».
Если проводить параллели с семейственностью дальше, то у классов и объектов есть так называемые методы – действия, которые можно выполнять. Логично, что любой работник имеет свою функцию, умеет что-то делать, но оказывается эти действия и свойства передаются вниз по иерархии, то есть дочерние классы наследуют от родительского все свойства и при этом могут добавлять свои. И это свойство в объектно-ориентированном программировании, когда разные классы семейства объектов могут выполнять одно и то же действие немножко по-разному, называется полиморфизмом. Это свойство обеспечивает многообразие проявлений дочерних объектов. Кроме того, в этом многообразии объектов, когда они начинают взаимодействовать друг с другом, и возникает огромное количество задач, которые они могут решить, - рассказал кандидат физико-математических наук Станислав Михалкович.
- А что такое наследование в программировании?
- Это и есть иерархия классов, когда есть класс «предок» и у него есть «наследники». Что важно – класс наследует все свойства и действия своего базового класса. Да, он может добавить свои, тем самым расширив спектр свойств и методов, может какие-то изменить. Допустим, мой отец умел играть на музыкальном инструменте, что в переложении на язык объектно-ориентированного программирования есть некий «метод». Мне это умение, этот «метод» обязательно достанется по наследству, но есть возможность его немного изменить, например, играть на баяне, а не трубе. Также строится программа и ее объекты.
- А можно ли говорить о семействе языков программирования?
- Да, семейство языков, бесспорно, существует. Например, язык Си породил семейство языков с синтаксисом языка Си – это С++, Java и другие. Есть другие семейства, например, семейство скриптовых – это Python и Ruby. Есть семейство функциональных языков программирования, которые, кстати, основаны на очень серьезной математике.
- В предыдущей беседе в рамках нашего цикла, которая была о биологии, мы упомянули, что создание устойчивой модели семьи подтолкнуло человеческий интеллект к эволюции. Сейчас же у всех на слуху искусственный интеллект и его развитие. Что происходит с точки зрения математики в этой сфере?
- Неспециалистам кажется, что искусственный интеллект – некое волшебство. Однако искусственный интеллект – это в первую очередь алгоритмы из области математики и компьютерных наук. Причем эти алгоритмы развиваются подолгу и скачками, то есть пока не накопится некоторая критическая масса – результата не будет, пока алгоритмы не становятся очень хорошими, мы не переходим к следующей ступеньке развития в этой области. Машинное обучение, которое есть уже везде, начиналось с исследований в шестидесятые годы в кибернетике. Но тогда разработки потерпели фиаско, потому что алгоритмы и компьютеры были слабые, не успевали считать сложные задачи. Но пришло время, ученые создали хорошие алгоритмы и компьютеры, которые могут обсчитывать данные достаточно быстро, и мы видим этот скачкообразный прогресс, случившийся в последнее время. Но интересно, что все и дальше будет развиваться скачками: вскоре наступит насыщение, и мы будем копить ресурсы для следующего скачка, то есть работать над еще более мощными компьютерами, еще более совершенными алгоритмами до нового рывка, - рассказал Станислав Михалкович.
- Резюмируя нашу беседу, скажу, что изучение математики – такое же фундаментальное основание для многих научных направлений как изучение своего рода для человека, а также отмечу, что следующая беседа цикла состоится примерно через месяц и будет посвящена экономике семейного счастья, - подвела итог встречи ректор ЮФУ Инна Шевченко.
Текст: Радио КП Ростов-на-Дону, ред. Молоткова О.А.
Краткая ссылка на новость sfedu.ru/news/75729