Все сферы computer science
ComputerScience-Map.png (1920×1352)
- Computational complexity
- Information theory
- Cryptography
- Hardware
- Turing machine
- Algorithms
- Computability theory
- Logic
- Data structures
- Formal methods
- Graph theory
- Automata theory
- Computational geometry
- Parallel programming
- Quantum computation
🧠 Theoretical Computer Science
Computational complexity
P (Polynomial time) - Это задачи, которые можно эффективно решить на обычном компьютере — то есть время решения растёт не слишком быстро при увеличении размера задачи.
NP (Nondeterministic Polynomial time) - Это задачи, для которых проверить решение легко, но найти его трудно. Если кто-то даст тебе ответ, ты сможешь проверить его за полиномиальное время.
NP-Complete - Это самые трудные задачи из NP. Если найдёшь эффективное решение хотя бы одной из них, можно будет эффективно решать все NP-задачи.
BQP (Bounded-error Quantum Polynomial time) - Это задачи, которые эффективно решаются на квантовом компьютере, но не обязательно на обычном.
PSPACE - Это задачи, которые можно решить, если у нас достаточно памяти (пространства), даже если времени нужно очень много.
Information theory
- Сколько информации содержится в этих данных?
- Насколько они случайны или предсказуемы?
- Энтропия — мера количества информации или неопределённости в сообщении.
Compression (сжатие) - идея уменьшить количество бит, необходимых для представления информации, без потери данных (lossless) или с допустимой потерей (lossy). Сжатие напрямую связано с энтропией.
Error Correction (коррекция ошибок) - Когда данные передаются по шумному каналу (например, по радио), могут появляться ошибки. Теория информации изучает, как кодировать данные так, чтобы можно было исправить ошибки.
- “Проверочные биты” (parity checking) - Мы добавляем избыточные биты к сообщению. При получении можно обнаружить и даже исправить ошибки.
- Примеры: Hamming code; Reed–Solomon; LDPC, Turbo Codes (используются в 4G/5G)
Coding Theory - это часть теории информации, но со своим направлением — она ближе к математике и коммуникациям. Теория кодирования занимается:
- построением кодов (способов записи информации),
- обеспечением надёжной передачи,
- минимизацией ошибок при передаче по каналам с шумом.
Дополнительно — что ещё включает теория информации
- Channel capacity (пропускная способность канала) - Максимальное количество информации, которое можно передать без ошибок. → Это знаменитая формула Шеннона.
- Source coding — оптимальное представление источника данных (сжатие).
- Channel coding — защита данных от ошибок (добавление избыточности).
- Mutual information — сколько информации один сигнал несёт о другом.
- Entropy rate — скорость поступления новой информации в потоке данных.
Cryptography
Symmetric Cryptography (симметричное шифрование) - Один и тот же ключ используется для шифрования и расшифрования. Быстро, но требует безопасного обмена ключами.
Asymmetric Cryptography (асимметричное шифрование) - Используются два ключа. Преимущество — не нужно передавать секретный ключ напрямую:
- Открытый ключ (public key) доступен всем. Им можно зашифровать сообщение.
- Закрытый ключ (private key) знает только владелец. Им можно расшифровать сообщение.
Hash Functions (хеш-функции) - Односторонние функции, которые превращают данные в короткий “отпечаток” (hash).
- Нельзя получить исходные данные из хеша.
- Используются для проверки целостности, паролей, цифровых подписей.
- Примеры:
SHA-256,SHA-3,MD5(устарел).
Digital Signatures (цифровые подписи) - Позволяют доказать подлинность сообщения.
- Отправитель подписывает данные своим закрытым ключом,
- Любой может проверить подпись его открытым ключом.
- Примеры: RSA-Signature, ECDSA, Ed25519.
Key Exchange (обмен ключами) - Механизмы, позволяющие двум сторонам безопасно договориться о ключе шифрования даже если злоумышленник слушает канал.
Cryptographic Protocols (криптографические протоколы) - Комбинируют разные методы шифрования и подписи в единые схемы защиты. Примеры:
- TLS/SSL — защищает соединения в интернете (HTTPS)
- PGP — для безопасной электронной почты
- Signal Protocol — используется в мессенджерах Signal, WhatsApp
Post-Quantum Cryptography (постквантовая криптография) - Раздел, разрабатывающий устойчивые к квантовым компьютерам алгоритмы.
Hardware
Важно понимать основные принципы работы и взаимодействия компонентов
Классификация физических устройств
- Входные устройства (Input Devices): Клавиатура, Мышь, Сенсорный экран, Микрофон, Сканер, Камера, Геймпад
- Выходные устройства (Output Devices): Монитор, Принтер, Колонки / наушники, Вибромотор, проектор и т. д.
- Внутренние компоненты компьютера: CPU (Central Processing Unit), GPU (Graphics Processing Unit), RAM (оперативная память), Storage (накопитель), Motherboard (материнская плата), Power Supply (блок питания)
- Периферийные устройства: Клавиатура, мышь, Принтер, Веб-камера, Внешний жёсткий диск, USB-флешка
- Сетевые устройства: Router (роутер), Modem (модем), Network card (сетевая карта), Wi-Fi адаптер
- Мобильное и встраиваемое "железо": Смартфоны, планшеты, Контроллеры (Arduino, Raspberry Pi), Сенсоры, камеры, микрочипы
Как данные перемещаются в системе
- Что такое шина (bus) — линии, по которым данные бегают между компонентами.
- Что делает операционная система — как она управляет вводом/выводом.
- Как работают прерывания (interrupts) — механизм, с помощью которого устройства “общаются” с процессором.
- Например: Клавиатура → CPU → RAM → GPU → монитор
Как работает процессор (в общих чертах)
- Что такое инструкция и машинный код
- Как выполняется программа (fetch–decode–execute cycle)
- Что такое регистры, кэш, потоки, многоядерность
- RAM (временная, быстрая память)
- ROM, Flash, SSD, HDD (постоянное хранение)
- Кэш-память процессора (ещё быстрее, но малая)
- Иерархию памяти (memory hierarchy)
- Как устройства подключаются (USB, HDMI, PCIe и т. д.)
- Что такое драйвер — программа, которая “переводит” сигналы устройства в понятные ОС команды.
Архитектура компьютера (часто это отдельная тема в курсе CS)
- Архитектура фон Неймана (CPU + память + ввод/вывод)
- Различия между x86, ARM, RISC-V
- Что такое инструкции, тактовая частота, конвейеризация (pipelining)
Аппаратная оптимизация (для программистов)
- Почему одни операции быстрее других
- Почему последовательный доступ к памяти эффективнее случайного
- Как кэш влияет на производительность
- Что такое “bottleneck” (узкое место в железе)
Turing machine
- Это абстрактная математическая модель вычислителя: у неё бесконечная лента (память), головка, которая читает/записывает символы и сдвигается влево/вправо, и конечный набор состояний с таблицей правил (функцией перехода). ТМ формализует понятие «алгоритм» и служит базой для изучения вычислимости и разрешимости задач.
- Понимание модели: лента, головка, состояния, функция перехода.
- Формальное представление задачи: язык — множество строк, которые ТМ должна принимать.
- Как строить простые ТМ: уметь описать таблицу переходов или словесно алгоритм (например, ТМ, принимающая anbna^n b^nanbn).
- Концепции остановки/приёма/отклонения/зацикливания.
- Универсальная машина — идея и зачем нужна.
- Halting Problem: доказательство нерешаемости (свёртка/контрпример через самоприменение).
- Редукции: уметь свести одну проблему к другой, чтобы показать (не)разрешимость.
- Классы вычислимости: decidable (recursive), RE (recursively enumerable), co-RE.
- Связь со сложностью: базовое понимание временной и пространственной сложности на ТМ (объявление классов P, NP, PSPACE через ресурсы для ТМ).
- Варианты ТМ и эквивалентность моделей (многоленточная ↔ одноленточная, НТМ ↔ ДТМ в смысле перечислимости, но время/эффективность различаются).
Algorithms
Базовые алгоритмы
- Сортировка: Bubble Sort, Merge Sort, Quick Sort, Heap Sort.
- Поиск: бинарный поиск, линейный поиск.
- Жадные алгоритмы: выбор локально оптимального решения (например, задача о рюкзаке).
- Разбивка задачи на подзадачи (Merge Sort, Quick Sort).
- Динамическое программирование: оптимизация повторяющихся вычислений (Fibonacci, задача о рюкзаке).
- Backtracking: перебор с откатом (решение судоку, восьми ферзей).
Алгоритмы на графах
- DFS и BFS: обход графа в глубину и ширину.
- Алгоритмы кратчайшего пути: Dijkstra, Bellman-Ford, Floyd-Warshall.
- Алгоритмы поиска минимального остовного дерева: Kruskal, Prim.
- Топологическая сортировка, поиск компонент связности.
Анализ алгоритмов и алгоритмическая сложность
- Оценка времени выполнения (Time Complexity): определить, сколько операций выполняет алгоритм в зависимости от размера входных данных.
- Оценка использования памяти (Space Complexity): Сколько дополнительной памяти требует алгоритм.
- Асимптотическая оценка: O(n), O(n log n), O(n²) и т.д.
- Асимптотический анализ: Big O (О-большое) — верхняя граница сложности; Ω (Омега) — нижняя граница; Θ (Тета) — точная оценка.
- Анализ циклов и рекурсии: Как вложенные циклы влияют на сложность; Как рекурсивные вызовы накапливают затраты.
- Амортизированный анализ: Средняя стоимость операции в серии вызовов
- Сложные классы задач: P, NP, NP-complete, NP-hard — классификация задач по вычислимости.
Структуры данных как основа алгоритмов
- Массивы, списки, стеки, очереди.
- Деревья, графы, хеш-таблицы.
- Связь между структурами данных и выбором алгоритма.
🔗 Рекомендуемые источники
- Вводное руководство по анализу алгоритмов (Proglib)
- GeeksforGeeks: Analysis of Algorithms — подробный англоязычный справочник
- Что такое анализ алгоритмов (Runestone) — русскоязычное объяснение с примерами
Computability theory
это раздел теоретической информатики и математической логики, изучающий, какие задачи можно решить с помощью алгоритмов, а какие — принципиально нет.
Модели вычислений
- Машина Тьюринга — абстрактная модель компьютера, способная выполнять любые вычислимые операции.
- Лямбда-исчисление, рекурсивные функции, Post-машины — альтернативные формализации вычислений.
- Все эти модели эквивалентны по вычислительной мощности (тезис Чёрча-Тьюринга).
Решаемые и неразрешимые задачи
- Решаемая (decidable) — существует алгоритм, который всегда даёт ответ.
- Неразрешимая (undecidable) — никакой алгоритм не может гарантировать ответ для всех входных данных.
Классы сложности
- Рекурсивные множества — можно точно определить принадлежность элемента.
- Рекурсивно перечислимые множества — можно перечислить, но не всегда проверить принадлежность.
- Тьюринг-редуцируемость — сравнение сложности задач через возможность свести одну к другой.
Тьюринговские степени (Turing degrees)
📚 Рекомендуемые источники
- Wikipedia: Computability Theory — подробный обзор
- NumberAnalytics: Foundations of Computability — исторический и концептуальный анализ
- DIKU: Computability Theory — академический курс с примерами
Logic
1. Булева логика и логические операции
- Основные операции: AND, OR, NOT, XOR, NAND.
- Используются в схемах, программировании, цифровых устройствах.
- Пример:
if (A && B)— логическое И.
2. Логика высказываний (Propositional Logic)
- Работа с утверждениями, которые могут быть истинными или ложными.
- Формулы строятся из переменных и логических связок.
- Применяется в верификации программ и автоматическом доказательстве теорем.
3. Предикатная логика (First-order Logic)
- Расширяет логику высказываний: вводит кванторы (
∀,∃) и отношения. - Позволяет описывать более сложные свойства объектов.
- Используется в базах данных, ИИ, формальных спецификациях.
- Добавляет понятия возможности, необходимости, времени.
- Применяется в моделировании поведения систем, например, в верификации протоколов.
- Функциональное программирование (λ-исчисление) — логическая модель вычислений.
- Логическое программирование (Prolog) — программы как логические утверждения.
- Типы и логика — связь между логикой и системами типов (Curry–Howard correspondence).
6. Автоматическое доказательство теорем
- Алгоритмы, проверяющие корректность логических утверждений.
- Используются в системах формальной верификации (например, Coq, Isabelle).
📚 Рекомендуемые источники
- Wikipedia: Logic in Computer Science — обзор ключевых направлений
- КиберЛенинка: Логика и информатика — русскоязычный анализ развития логики в CS
- Springer: Logic in Computer Science — академический учебник по логике и автоматическим доказательствам
Data structures
Это раздел, который изучает способы организации и хранения данных, чтобы к ним можно было эффективно обращаться и изменять.
📘 Что нужно знать:
- Как устроена каждая структура;
- Каковы их преимущества и недостатки;
- Какова их асимптотическая сложность (Big O);
- Где они применяются (поиск, сортировка, маршрутизация и т.д.).
Formal methods
Это раздел, где используются математические модели для доказательства корректности алгоритмов и систем (особенно — критически важных, например, авиационных, медицинских, банковских).
📘 Что нужно знать:
- Понимать, что это строгие математические модели поведения систем;
- Используются логика, автоматы, теория множеств;
- Применяются для верификации (доказательства правильности программ) и моделирования состояний (Model Checking).
Применение:
• Авиация, медицина, безопасность — где ошибки недопустимы.
• Протоколы связи, распределённые системы.
• Инструменты: TLA+, Coq, SPIN, Z3.
Graph theory
это раздел математики и информатики, изучающий структуры из узлов (вершин) и связей между ними (рёбер). Он лежит в основе сетей, маршрутов, зависимостей и многих алгоритмов.
Граф — это структура, состоящая из:
🔹 Виды графов
- Неориентированный (Undirected) — связь в обе стороны.
- Ориентированный (Directed / Digraph) — рёбра имеют направление.
- Взвешенный (Weighted) — каждому ребру присвоен вес (например, расстояние, стоимость).
- Ациклический (Acyclic) — граф без циклов. Важный частный случай — DAG (Directed Acyclic Graph), используется, например, в системах сборки и блокчейнах.
- Дерево (Tree) — частный случай графа без циклов, с иерархической структурой.
🔸 Основные понятия
- Degree (степень) - Количество рёбер, связанных с вершиной
- Path (путь) - Последовательность рёбер, соединяющих вершины
- Cycle (цикл) - Путь, который возвращается в исходную вершину
- Connected graph - Любые две вершины соединены каким-либо путём
- Subgraph - Подмножество вершин и рёбер исходного графа
- Adjacency list / matrix - Способы хранения графа в памяти
- Связность — можно ли добраться от одной вершины до другой
- Компоненты связности — изолированные подграфы
🔹 Основные алгоритмы на графах
- BFS (Breadth-First Search) - Поиск в ширину, минимальное количество шагов. Полезен для поиска кратчайшего пути в невзвешенных графах
- DFS (Depth-First Search) - Поиск в глубину, обход всех вершин. Используется для поиска, проверки связности, топологической сортировки
- Dijkstra - Нахождение кратчайшего пути в графе с положительными весами
- Алгоритм Беллмана-Форда — работает с отрицательными весами
- A* - Эвристический поиск (например, в играх, маршрутах)
- Алгоритм Флойда-Уоршелла — находит кратчайшие пути между всеми парами вершин
- Алгоритмы остовного дерева: Kruskal / Prim - минимизируют суммарный вес связей
- Topological Sort - Упорядочивание вершин в DAG
- Tarjan / Kosaraju - Нахождение strongly connected components
- PageRank - Алгоритм Google для оценки важности страниц
🔹 Применение Graph Theory
- Сети: интернет, социальные сети, маршрутизация.
- Игры: навигация, ИИ, поиск путей.
- Базы данных: графовые БД (Neo4j, ArangoDB).
- Компиляторы: зависимость модулей и оптимизация.
- Машинное обучение: графовые нейросети (GNN).
🔹 Что нужно знать
- Термины: вершины, рёбра, степени, циклы.
- Типы графов и их свойства.
- Как представлять графы в коде (матрица, список).
- Базовые алгоритмы поиска, кратчайших путей и связности.
- Где графы применяются в реальных задачах.
📚 Рекомендуемые ресурсы
- Baeldung: Introduction to Graph Theory — понятное введение с примерами и визуализациями
- GeeksforGeeks: Graph Theory Tutorial — подробный справочник по структурам, алгоритмам и задачам
- Обзор PDF: Graph Theory in Computer Science — академический обзор применения графов в CS, от баз до мультипроцессорных систем
Automata theory
Теория автоматов — это раздел теории вычислений, изучающий абстрактные машины (автоматы) и задачи, которые они могут решать. Это фундамент для понимания языков, компиляторов и вычислимости.
🧠 Что такое автомат
- Автомат — это математическая модель вычислительного устройства, которое принимает входную строку и переходит между состояниями по заданным правилам.
- Пример: конечный автомат, который проверяет, соответствует ли строка шаблону (например, содержит чётное число нулей).
🔍 Основные типы автоматов
1. Конечный автомат (Finite Automaton, FA)
2. Недетерминированный конечный автомат (NFA)
- Может переходить в несколько состояний одновременно.
- Эквивалентен DFA по мощности, но часто проще в построении.
3. Автомат с магазином (Pushdown Automaton, PDA)
- Имеет стек — может хранить дополнительную информацию.
- Распознаёт контекстно-свободные языки.
- Используется в синтаксическом анализе (парсинге) языков программирования.
4. Машина Тьюринга (Turing Machine)
- Мощнейшая модель автомата.
- Имеет бесконечную ленту и может выполнять любые вычислимые функции.
- Основа для определения вычислимости и алгоритмической сложности.
📚 Как это связано с Computer Science
- Компиляторы: используют автоматы для лексического и синтаксического анализа.
- Теория языков: классификация языков по сложности (регулярные, контекстно-свободные, и т.д.).
- Верификация программ: проверка корректности поведения через модели автоматов.
- Искусственный интеллект: моделирование поведения агентов через автоматы состояний.
📘 Рекомендуемые ресурсы
- GeeksforGeeks: Automata Tutorial — подробный справочник по типам автоматов и их применению
- Wikipedia: Automata Theory — обзор теории, истории и применения автоматов
- Stanford: Basics of Automata Theory — введение в теорию автоматов с историческим контекстом и примерами
Computational geometry
это раздел информатики, изучающий алгоритмы для решения задач, сформулированных в терминах геометрии. Он лежит в основе графики, робототехники, ГИС и физического моделирования.
📐 Что изучает Computational Geometry
Цель — разработка эффективных алгоритмов для работы с геометрическими объектами: точками, линиями, многоугольниками, поверхностями и телами.
🧠 Основные задачи и алгоритмы (Copilot)
- Convex Hull — построение наименьшего выпуклого многоугольника, охватывающего все точки.
- Line Intersection — определение, пересекаются ли отрезки.
- Polygon Triangulation — разбиение многоугольника на треугольники.
- Voronoi Diagram — разбиение пространства по ближайшим точкам.
- Delaunay Triangulation — триангуляция, максимизирующая минимальные углы.
- Point Location — определение, в каком регионе находится точка.
- Range Searching — поиск объектов в заданной области.
- Closest Pair of Points — нахождение двух ближайших точек.
🧠 Основные задачи и алгоритмы (ChatGPT)
- Оболочки и огибающие: Convex Hull (оболочка множества точек) — алгоритмы Graham scan, Jarvis march
- Поиск пересечений: Проверка, пересекаются ли отрезки, линии или многоугольники
- Разбиение пространства: Triangulation (триангуляция), Voronoi diagrams (диаграммы Вороного), Delaunay triangulation
- Ближайшие соседи: Nearest Neighbor Search, KD-trees
- Обработка коллизий: Проверка столкновений в 2D/3D (bounding boxes, convex shapes)
- Расстояния и площади: Алгоритмы вычисления расстояний между точками, линиями и поверхностями
- Point in Polygon: Проверка, находится ли точка внутри фигуры
- Sweep Line Algorithms: Универсальный подход для обработки геометрических событий по порядку (например, пересечения линий)
🔸 Структуры данных
- KD-Tree — для поиска ближайших точек в многомерном пространстве.
- Quad-Tree / Octree — деление 2D/3D-пространства на ячейки.
- Bounding Volume Hierarchy (BVH) — ускорение коллизий и рендеринга.
- Spatial Hashing — быстрая индексация объектов в пространстве.
🧩 Применение
- Компьютерная графика — рендеринг, коллизии, моделирование.
- Робототехника — планирование пути, избегание препятствий.
- Геоинформационные системы (GIS) — анализ карт, построение маршрутов.
- CAD/CAE — моделирование объектов и взаимодействий.
- Физические симуляции — расчёт столкновений, деформаций.
🔹 Что нужно знать
- Основные геометрические примитивы и их свойства.
- Как представлять фигуры в коде (координаты, векторы, полигоны).
- Базовые алгоритмы пересечений, оболочек, расстояний.
- Пространственные структуры данных (KD-tree, Quad-tree).
- Понимание численной точности и ошибок вычислений с float.
📚 Рекомендуемые ресурсы
- Wikipedia: Computational Geometry — обзор теории, задач и применения
- GeeksforGeeks: Algorithms for Geometry — практические алгоритмы и примеры
- Computational Geometry: An Introduction (PDF) — классический учебник от Preparata и Shamos
Parallel programming
Это область, изучающая, как выполнять несколько задач одновременно, чтобы ускорить вычисления и эффективнее использовать ресурсы компьютера.
⚙️ Основная идея
Вместо того чтобы выполнять одну «главную задачу» (Main Job) последовательно, программа делит её на несколько подзадач (Job1, Job2, Job3, Job4), которые могут выполняться параллельно — то есть одновременно, на разных процессорах, машинах, потоках или ядрах.
Каждая задача, в свою очередь, может быть разбита на ещё более мелкие задачи (Smaller Jobs).
Когда все подзадачи завершены, их результаты объединяются обратно в один общий результат.
🔹 Основные понятия
- Поток (Thread) — отдельная последовательность инструкций, выполняющаяся внутри программы.
- Процесс (Process) — независимая программа с собственными ресурсами.
- Синхронизация (Synchronization) — механизм, который предотвращает ошибки, когда потоки обращаются к общим данным одновременно.
- Mutex, Semaphore, Lock — инструменты для контроля доступа к ресурсам.
- Race Condition — ошибка, возникающая, когда порядок выполнения потоков влияет на результат.
- Deadlock — ситуация, когда потоки ждут друг друга бесконечно.
🔸 Типы параллелизма
- Data Parallelism — обработка разных частей данных одновременно.
📘 Пример: параллельная обработка изображений. - Task Parallelism — выполнение разных задач одновременно.
📘 Пример: один поток считает, другой сохраняет данные на диск. - Pipeline Parallelism — данные проходят через несколько этапов, каждый выполняется параллельно.
📘 Пример: обработка видео: чтение → декодирование → фильтрация → вывод.
📚 Рекомендуемые ресурсы
- Parallel Programming in .NET — официальная документация
- Introduction to Parallel Computing (Coursera) — академический курс
- Patterns for Parallel Programming (Microsoft) — архитектурные шаблоны
Quantum computation
Квантовые вычисления — это модель, основанная на принципах квантовой механики, где информация хранится и обрабатывается не классическими битами (0 или 1), а квантовыми битами (кубитами), которые могут быть одновременно в нескольких состояниях.
🔹 Ключевые квантовые принципы
- Суперпозиция (Superposition)
Кубит может быть одновременно в состоянии0и1— это даёт возможность обрабатывать множество вариантов параллельно. - Запутанность (Entanglement)
Кубиты могут быть связаны так, что изменение одного мгновенно влияет на другой — используется для квантовых алгоритмов и криптографии. - Измерение (Measurement)
Когда кубит измеряется, он «разрушается» в одно из возможных состояний (0или1) с определённой вероятностью. - Интерференция (Interference)
Амплитуды вероятностей могут усиливать или ослаблять друг друга, позволяя «отфильтровывать» неверные ответы.
🔸 Основные понятия и инструменты
- Qubit — основной элемент квантовой информации.
- Quantum Gate — операция, изменяющая состояние кубита (аналог логических вентилей, но работает с матрицами). Аналог логических операций, но обратимы и унитарны.
- Hadamard (H) — создаёт суперпозицию.
- Pauli-X — аналог NOT.
- CNOT — условная операция, основа квантовой запутанности.
- Quantum Circuit — комбинация квантовых вентилей, выполняющих алгоритм.
- Bloch Sphere — визуализация состояния одного кубита.
- Quantum Algorithms — алгоритмы, использующие квантовые эффекты для ускорения задач (например, алгоритм Шора и Гровера).
🚀 Применение
- Квантовая факторизация (алгоритм Шора) — угроза классической криптографии.
- Поиск в неструктурированных данных (алгоритм Гровера).
- Симуляция квантовых систем — химия, материалы, биология.
- Квантовое машинное обучение — пока экспериментально.
📚 Ресурсы для изучения
- Quantum Country — интерактивный курс, который использует технику повторения с интервалами, чтобы ты действительно запомнил основы квантовой механики и вычислений. Отлично подходит для начинающих, особенно если ты хочешь не просто прочитать, а понять.
- IBM Quantum Experience — платформа, где ты можешь запускать квантовые алгоритмы на реальных квантовых компьютерах IBM. Есть визуальные редакторы, симуляторы и обучающие материалы. Всё бесплатно и доступно через браузер.
- Qiskit — Python-библиотека от IBM для квантового программирования. Позволяет создавать, визуализировать и запускать квантовые схемы. Подходит для тех, кто хочет писать код и экспериментировать с алгоритмами.
- QuTiP — библиотека для симуляции квантовых систем, особенно полезна для физиков и тех, кто хочет моделировать динамику квантовых состояний. Поддерживает работу с уравнениями Линблада, плотностными матрицами и квантовыми операторами.
- Quantum Computing for the Very Curious — тот же сайт, но конкретно эта часть — это глубокое введение в теорию, включая суперпозицию, запутанность и алгоритмы. Написано доступно, но не упрощённо.
- Microsoft Quantum Docs — документация по Q# и Azure Quantum. Если хочешь попробовать квантовое программирование в экосистеме Microsoft, это стартовая точка.