Прикладна математика
Цю статтю я вирішив написати аби пролити світло на предметноорієнтованість математичних дисциплін через призму власного досвіду. Мені не пощастило (як я про це думав колись) у тому, що я опинився в світі, де математика уже існувала задовго до мене, проте значною мірою доля щастя була в тім, що комп'ютери змінювали математику на моїх очах.
При виборі фалькутету ПМ я керувався елітарним критерієм максимального конкурсу на місце, однак (як зрозумів згодом) стратегія немає такого значення, як має воля до всезбагнення. Саме вона мені дозволила пережити перші розчарування в моєму освітньому шляху і я почав усвідомлено мімікрувати під систему освіти та предмети західного аналітичного духу філософії, як і належить математикам.
Інститут формальної математики «Групоїд Інфініті»
Зараз, коли у мене є своя лабораторія, яка стабільно приносить плоди, як у вигляді публікацій так і у вигляді артефактів, я по-іншому уявляю кафедральну структуру факультету:
— КФ-033: Кафедра формальної філософії
— КМ-111: Кафедра чистої математики
— КМ-113: Кафедра прикладної математики
— КА-121: Кафедра мовного забезпечення
— КВ-123: Кафедра теоретичної інформатики
КФ-033 Формальна філософія (магістр)
Перш за все, всі основи математики (УДК 510) я би формальним чином засунув на спеціальну новостворену кафедру формальної аналітичної математичної філософії, яка би читала курси по математичній логіці та філософії для всіх інших кафедр та факультетів як базовий провайдер. Саме так це зроблено в CMU. Місце аналітичної філософії розкривається в курсі історії філософії.
— Теорія категорій (екзамен) КФ-033-01
— Формальні логіки (екзамен) КФ-033-02
— Категоріальна логіка (екзамен) КФ-033-03
— Лямбда-числення (екзамен) КФ-033-04
— Модальні логіки (екзамен) КФ-033-05
— Теорія типів Мартіна-Льофа (екзамен) КФ-033-06
— Формалізація штучних мов КФ-0133-07
— Формалізація людських мов КФ-033-08
Ці курси є основою для усіх кафедр інституту прикладної математики. Для інших спеціальностей друго наувого-освітнього рівня потрібно набрати мінімум три повноцінних курси (36 кредитів), які читаються на кафедрі філософії (КФ-033).
КФ-033 Формальна філософія (доктор)
— Мультимодальна гомотопічна теорія типів КФ-033-09
— Гіперграфові моделі фізики КФ-033-10
КМ-111 Чиста математика (магістр)
Кафедра чистої математики, яка на мій погляд обов'язково потрібна на факультеті прикладної математики, аби прикладна математика володіла усіма математичними інструментами які потрібно вміти використовувати для поліедральних та нелінійних оптимізацій. Цей провайдер повинен постачати курси, які могли би конкурувати з російськими школами алгебраїчної топології та геометрії та курсами університету Карнегі-Мелона.
— Алгебра (екзамен) КМ-111-01
— Геометрія (екзамен) КМ-111-02
— Теорія гомотопій (екзамен) КМ-111-03
— Теорія чисел КМ-111-04
— Теорія схем Гротендіка КМ-111-05
— p-адичний аналіз КМ-111-06
— Теорія Ходжа. Мотивне інтегрування (екзамен) КМ-111-07
— Алгебраїчна топологія (екзамен) КМ-111-08
— Диференціальна геометрія (екзамен) КМ-111-09
— Гомотопічна теорія типів КМ-111-10
— Теорія топосів КМ-111-11
— Модельні категорії Квілена КМ-111-12
Ці курси потрібні в основному для спеціалістів за спеціальностями 111 (чиста математика) та 113 (прикладна математика).
КМ-111 Чиста математика (доктор)
Деякі спеціальні теми для створення мотиваційної конкуренції з НАН України:
— Сімпліціальна гомотопічна теорія КМ-111-13
— Локальна гомотопічна теорія (екзамен) КМ-111-14
— К-теорія КМ-111-15
— Теорія інфініті-категорій КМ-111-16
КМ-113 Прикладна математика (магістр)
На початкових курсах своєї подорожі я керувався головним чином спадком радянської школи, тому як доступу до Інтернету, а тим більше до Шпрінгер видань не було, я зміг скласти на той час достатньо повну бібліотеку усього класифікатора УДК 51, яку мені вдалося відновити тільки відносно недавно. В умовах тотального розчарування в рядянській педагогічній школі я вимушений був сфокусуватися значним чином на програмуванні, а не на математиці. Вже тоді мені стало зрозуміло, що запорука якісного середовища математика полягає в якійсній основі. Хоча прикладна математика традиційно не фокусується на засобах програмування та операційних системах, це направлення мене цікавило з самого першого дня першого курсу університету і допомогло пережити складні части наукової зневіри.
Курси другого освітнього рівня, які читаються на кафедрі прикладної математики є обов'язковими для спеціальностей 111 (чиста математика) та 113 (прикладна математика).
— Дискретна математика (екзамен) КМ-113-01
— Математична статистика (екзамен) КМ-113-02
— Формальні логіки (екзамен) КМ-113-03
— Комплексний аналіз КМ-113-04
— Чисельні методи (екзамен) КМ-113-05
— Математичний аналіз (екзамен) КМ-113-06
— Функціональний аналіз (екзамен) КМ-113-07
— Звичайні диференційні рівняння (екзамен) КМ-113-08
— Диференційні рівняння в частинних похідних (екзамен) КМ-113-09
— Рівняння математичної фізики КМ-113-10
Рестроспективний погляд на мою дисоціативну освіту в минулому дозволяє зараз мені реігтегрувати цей досвід і виділити найсуттєвіші його частини. В дусі аналітичної філософії корені логіки, теорії типів та лямбда числення як основи для математики та програмування слід шукати в роботах Расела, Уайтгеда, Пеано, Черча, Карі. Пізніше варно збагнути основні технічні питання математики: робота з універсальними властивостями (теоремами), поняття нескінченності та принципи її декомпозиції (індексація натуральними числами), різні аксіоматичні геометрії, поняття дійсного числа, граничного переходу, класичного аналізу нескінченно-малих Ейлера та Лейбніца. Звичайні диференційні рівняння відкриють багато схованок у вигляді тензорного числення та лінійної алгебри, а рівняння в частинних похідних відкриють ворота у функціональний аналіз, гармонічний аналіз, алгебри Лі та покажуть трохи нелінійної фізики. Окрім рівнянь теоретичної фізики уся база прикладної маметатики зводиться до диференційних рівнянь, а усі інші аспекти математики, як аналіз чи тензорне числення уже випливають як необхідний апарат. З академічної точки зору традиційно виклад матеріалу ведеться з математичних теорій, які не містять залежностей і далі усладнюючи алгебраїчні структури переходять то теорій верхнього рівня. Важливо завжди бачити повну картину та намагатись утримати головну мотивацію математики — обчислення.
КМ-113 Прикладна математика (доктор)
Прикладна математика зараз сприймається як все, що я можу порахувати на комп'ютері, а особливо задачі які опимально обчислюють на границі сучасної точності за початковими та граничними умовами. За цей час спектр математичних моделей для мене розширився та доповнився новими дисциплінами. Наступні 10 років я провів більше займаючись формальною математикою та філософією і лише мріяв вернутися в часи базової вищої освіти повністю переглянувши усі математичні засоби та їх взаємодію. Для виконання своєї дисертаційної роботи мені довелося взяти такі додаткові курси на кафедрі чистої математики:
— Алгебраїчна топологія (екзамен) КМ-111-08
— Диференціальна геометрія (екзамен) КМ-111-09
— Гомотопічна теорія типів КМ-111-10
— Теорія топосів КМ-111-11
Як би я не хотів вирватися з лап прикладної математики в межі чистої та формальної математики чи формальної філософії думки завжди повертаються у прикладну математику. Прикладна математика в моєму розумінні це чиста математика сформульована формальними методами з метою точної (в таких випадках як логіка, чи символьні обчислення) чи наближеної калькуляції. Наближене обчислення у свою чергу передбачає додатковий апарат у вигляді теорем та теорій, який доводить збереження властивостей та корекність моделі при наближених обчисленнях. Таким чином чистий математик, який вирішив застосувати певну математичну теорію та порахувати в рамках її обчислювальної моделі певний клас формул, вже перетворюється на прикладного математика.
Хоча найабстрактніша чиста математика не оперує конкретними моделями, а лише їх сигнатурами і метамоделями сигнатур (та вище), у ній теж є обчислення — це точні обчислення логіки (доведення теорем), в даному випадку гомотопічної теорії типів, особливого виду логіки який підходять як основна мова для усієї математики. Цей предмет (який вивчає основну мову математики) як і усі логіки можна віднести до прикланої математики (логічні числення), а також і до теоретичної інформатики (яка необхідна для побудови математичної мови-інструменту). Також можна класифікувати цей предмет як формальну філософію, тому що для прикладного формального філософа ця мова є єдиним необхідним інструментом, на відміну відміну від інших прикладних математиків, які зазвичай використовують додатково потужні прикладні теорії (алгтоп та дифгеом) або їх частини.
Оскільки (математичний) твір написаний на (формальній) мові потребує форми, з давна математики використовували літературний жанр у її якості. Це певного роду напів-формальна напів-людська мова, базис якої зводиться до кванторів: "для всіх х, таких що ..." та "існує таке х, що ...". Математика як одна з філософських дисциплін (серед яких також музика, образотворче мистецтво, література, этика) це певна форма поезії яка працює виключно з простором на абсолютному рівні. Без проміжків, без узагальнень і апроксимацій нелінійних динамічних систем, лише абсолютна фібраційна тотальна логіка простору. Такі (математичні) вірші з давніх давен цінувалися (філософами) високо, а їх створення супроводжується не тільки майже езотеричною традицією але і інтегровано в те, що ми зараз називаємо науковим методом пізнання реальності (з метою отримання максимального задоволення максимальний проміжок часу). Велике мистецтво в таких творах показати сутність сприйняття та дати авторський коментар (відповідної глибини), хоча самі теореми теж є самостійним об'єктом творчості.
З появою формальної верифікованої математики (1968) літературна форма математики розширилися та доповнилася тим, що вивчає теоретична інформатика — програмним продуктом, який можна скачати та поставити, у якому є своє обчислювальне середовище, своя мова програмування, своя базова бібліотека та приклади програм (теореми). Але на відміну іншої філософської дисципліни, ігрової індустрії, культура верифікованої математики не набула таких масштабів стандартизації як ISO стандарти з урегулювання складних інформаційних систем включно з Інтернетом. Можна сказати, що сучасні чисті математики обмежують себе чисто філософськими інструментами — системами доведення теорем (Agda, Lean) і тішуться з того; у той час, як прикладі математики зосереджені або в математичних спеціалізованих пакетах Mathematica, Mapple, Mathlab, GAP або з підручних засобів на Github будують MVP моделі та оформляють це у вигляді Jupyter блокноту. Культура блокнотів достатньо непогане поєднання літературного жанру з образотворчим мистецтвом візуалізації даних (як це маніфестується у системі Processing). І чисті і прикладні сучасні математики використовують TeX як де-факто стандарт при класичній літературній публікації (творів мистецтва), а самі програмні продукти або MVP моделі є лише артефактами такої публікації. Лише ті твори (праці) знаходять певну стандартизацію, коли доходять до офіційних пакетів для публічних пакетних менежерів певних мов програмування (як Owlbarn). Певну культуру в сенсі цифрової публікації здобули формальні операційні системи та формальні мови програмування, вийшовши з теоретичної інформатики, однак культура прикладної математики досі не дозволяє говорити про замкнене середовище (наприклад Mirage юнікернел) у якому міститься достатня кількість мовних засобів для створення мов та систем (Menhir), для символьних обчислень (Axiom), для логік та систем доведення теорем (Coq), для програмування (OCaml), для тензорного числення (SPIRAL, Futhark), для паралельних та узгоджених систем (Multicore, LING), для імітаційного моделювання (Simulink) для публікації літературних математичних творів (TeX), для блокнотів (Jupyter). Екосистеми теоретичної інформатики французької та британської шкіл (OCaml, Haskell) які мають здатність вистояти перед викликами уніфікованого середовища прикладного математика.
◊ Видавнича система для верстки та графіків, яка нагадує TeX
◊ Лінійна алгебра на BLAS та LAPACK
◊ Тензорні обчислення на GPU/AVX
◊ Система вводу-виводу PCIe на NVMe 2.0
◊ CAS система для символьної математики та алгебраїчної топології
◊ Віконний менеджер та система рендерінгу на GPU
◊ Симулятор нейромереж у форматі ONNX
◊ Інтерфейс прикладного програмування для створення додатків
КВ-123 Теоретична інформатика (магістр)
Якщо коротко описати мій шлях після здобуття ступеня магістра то я би це визначив як 10 років укорінення та здобуття впевненості в професії програміста. За цей час вдалося зрозуміти вимоги до властивостей середовищ виконання на виробництві. Теоретична інформатика (комп'ютерна інженерія або комп'ютерні науки) дозволила мені глибше зазирнути у різні школи моделювання обчислень, що дало змогу спробувати виконати декілька вправ у написанні середовищ виконання. Паралельно гроші на життя приносила робота пов'язана з розвитком більше прикладних бібліотек.
Курси другого наувого-освітнього рівня, що читаються на кафедрі теоретичної інформатики є обов'язковими для спеціальностей 113 (прикладна математика), 121 (мовне забезпечення), 123 (теоретична інформатика).
— Лямбда-числення (екзамен) КВ-123-01
— Теорія графів (екзамен) КВ-123-02
— Теорія мов програмування (курсова, екзамен) КВ-123-03
— Теорія операційних системи (курсова, екзамен) КВ-123-04
— Теорія масового обслуговування (курсова, екзамен) КВ-123-05
— Теорія розподілених систем (HPC, Cluster, Cloud, OpenMPI) КВ-123-06
— Системи реального часу та телеметрія (РТС) КВ-123-07
— Інформаційно-пошукові системи (ІПС) (екзамен) КВ-123-08
— Моделювання складних систем (МСС) КВ-123-09
— Комп'ютерні сховища даних КВ-123-10
— Комп'ютерні обчислення КВ-123-11
— Комп'ютерна графіка КВ-123-12
— Комп'ютерні мережі КВ-123-13
— Веб-програмування (екзамен) КВ-123-14
— Функціональне програмування (екзамен) КВ-123-15
Фундаментальні поняття комп'ютерних наук, такі як обчислювальність, алгоритмічна розв'язність, тотальність, консистентність, категоріальна алгебраїчність, розширилися за цей час в моєму розумінні математичною лінгвістикою. Визріла впевненість в необхідності зафіксувати особливий набір мовних засобів, в рамках наступного 10-річного дослідження в області теоретичної інформатики, що дозволили би побудувати фундамент для моделей які вивчає прикладна математика. Зараз для мене теоретична інформатика і є математичною лінгвістикою, завдання якої конструювати формальні мови з необхідними властивостями для математичних обслатей. Цей продукт знайшов форму монографії та включає наступні мовні артефакти:
◊ Інтерпретатор віртуальної машини
◊ Система процесів та черг віртуальної машини без надлишкового копіювання
◊ Компілятор класу System Fω
◊ Гомотопічна система
Хоча вступ до ціє роботи вимагає повного занурення в основи роботи процесора та пошуку таких сніпетів які ефективно навантажуватимуть конвеєри фізичного процесору. Технологія побудови інтерпретаторів які разом з виконуваними программами повністю поміщаються у L1 кеш процесора може бути такою ж ефективною як повністю наперед скомпільований оптимізований код.
Що стосується початкової мови для програмування, то я рекомендую в програму для 10-11 класів ввести LISP у формі Racket, а також глибоко зануритися в роботи авторів цього мовного середовища. Їх книжка "Як проектувати програми" може повністю замінити більш класичну SICP книжку чи "On LISP" Пола Грема.