По сути, алгоритм — это набор правил или определенных процедур, которые обычно разрабатываются и используются для решения конкретной проблемы или широкого круга проблем.
В широком смысле алгоритмы определяют процесс(ы), наборы правил или методологии, которые должны соблюдаться при вычислениях, обработке данных, добыче данных, распознавании образов, автоматизированном рассуждении или других операциях по решению проблем. С ростом автоматизации услуг все больше решений принимаются алгоритмами. Вот некоторые общие примеры: оценка рисков, упреждающий контроль и технология распознавания образов. [1]
Ниже приведен список известных алгоритмов с краткими описаниями каждого из них.
Автоматизированное планирование
Комбинаторные алгоритмы
Общие комбинаторные алгоритмы
Графические алгоритмы
Графическое изображение
Теория сетей
Маршрутизация для графиков
Поиск по графику
- A* : особый случай поиска по первому наилучшему совпадению, использующий эвристику для повышения скорости
- B* : алгоритм поиска по графу «лучший первый», который находит путь с наименьшей стоимостью от заданного начального узла до любого целевого узла (из одной или нескольких возможных целей)
- Возврат : отказ от частичных решений, если они не удовлетворяют полному решению.
- Поиск по лучу : это эвристический алгоритм поиска, который оптимизирует поиск по первому наилучшему совпадению, что снижает его требования к памяти.
- Поиск стека лучей : объединяет возврат с поиском лучей
- Поиск по принципу «лучшее-первое» : просматривает граф в порядке вероятной важности, используя приоритетную очередь.
- Двунаправленный поиск : поиск кратчайшего пути от начальной вершины до целевой вершины в ориентированном графе.
- Поиск в ширину : обходит граф уровень за уровнем.
- Поиск методом перебора : исчерпывающий и надежный метод поиска, но вычислительно неэффективный во многих приложениях.
- D* : алгоритм инкрементального эвристического поиска
- Поиск в глубину : обходит граф ветвь за ветвью.
- Алгоритм Дейкстры : особый случай A*, для которого не используется эвристическая функция.
- Универсальный решатель проблем : основополагающий алгоритм доказательства теорем, предназначенный для работы в качестве универсальной машины для решения проблем.
- Итеративное углубление поиска в глубину (IDDFS): стратегия поиска в пространстве состояний
- Поиск точки перехода : оптимизация для A*, которая может сократить время вычислений на порядок с использованием дополнительных эвристик.
- Лексикографический поиск в ширину (также известный как Lex-BFS): линейный по времени алгоритм для упорядочивания вершин графа.
- Поиск с равномерной стоимостью : поиск по дереву , который находит маршрут с наименьшей стоимостью, где стоимость варьируется.
- SSS* : поиск в пространстве состояний, проходящий по дереву игры в режиме «лучший-первый», аналогично алгоритму поиска A*
Подграфы
Последовательные алгоритмы
Приблизительное соответствие последовательностей
- Алгоритм Bitap : нечеткий алгоритм, который определяет, являются ли строки приблизительно равными.
- Фонетические алгоритмы
- Метрики строк : вычисляют показатель сходства или различия (расстояние) между двумя парами текстовых строк.
- Поиск триграмм : поиск текста, когда точный синтаксис или написание целевого объекта не известны.
Алгоритмы отбора
Поиск последовательности
Слияние последовательностей
- Простой алгоритм слияния
- алгоритм слияния k-way
- Объединение (слияние, при этом элементы на выходе не повторяются)
Перестановки последовательностей
Последовательность комбинаций
Выравнивание последовательности
Сортировка последовательности
- Сорта обмена
- Юмористический или неэффективный
- Гибридный
- Флэшсорт
- Вводная сортировка : начните с быстрой сортировки и переключитесь на пирамидальную сортировку, когда глубина рекурсии превысит определенный уровень.
- Timsort : адаптивный алгоритм, полученный из сортировки слиянием и сортировки вставкой. Используется в Python 2.3 и выше, а также Java SE 7.
- Сортировка вставкой
- Сортировка слиянием
- Сортировки без сравнения
- Сортировка по выбору
- Пирамидальная сортировка : преобразует список в кучу, удаляет из кучи наибольший элемент и добавляет его в конец списка.
- Сортировка выбором : выбрать наименьший из оставшихся элементов, добавить его в конец отсортированного списка.
- Smoothgamersort
- Другой
- Неизвестный класс
Подпоследовательности
Подстроки
Вычислительная математика
Абстрактная алгебра
Компьютерная алгебра
Геометрия
Теоретико-числовые алгоритмы
Числовые алгоритмы
Решение дифференциальных уравнений
Элементарные и специальные функции
Геометрический
Интерполяция и экстраполяция
Линейная алгебра
Монте-Карло
Численное интегрирование
Поиск корня
Алгоритмы оптимизации
Гибридные алгоритмы
Вычислительная наука
Астрономия
Биоинформатика
Геонауки
- Формулы Винсента : быстрый алгоритм для расчета расстояния между двумя точками широты/долготы на эллипсоиде
- Geohash : общедоступный алгоритм, который кодирует десятичную пару широты/долготы в виде хэш-строки.
Лингвистика
- Алгоритм Леска : разрешение неоднозначности смысла слова
- Алгоритм стемминга : метод приведения слов к их основе, основанию или корневой форме.
- Алгоритм Сухотина : статистический алгоритм классификации для классификации символов в тексте как гласных или согласных
Лекарство
Физика
Статистика
Информатика
Архитектура компьютера
- Алгоритм Томасуло : позволяет последовательным инструкциям, которые обычно останавливаются из-за определенных зависимостей, выполняться непоследовательно.
Компьютерная графика
Криптография
- Асимметричное (с открытым ключом) шифрование :
- Цифровые подписи (асимметричная аутентификация):
- Криптографические хэш-функции (см. также раздел о кодах аутентификации сообщений):
- БЛЕЙК
- MD5 – Обратите внимание, что теперь есть метод генерации коллизий для MD5.
- RIPEMD-160
- SHA-1 – Обратите внимание, что теперь есть метод генерации коллизий для SHA-1.
- ША-2 (ША-224, ША-256, ША-384, ША-512)
- SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256)
- Tiger (TTH), обычно используется в хэшах Tiger tree
- ВОДОПРОВОД
- Криптографически безопасные генераторы псевдослучайных чисел
- Обмен ключами
- Функции вывода ключей , часто используемые для хеширования паролей и растяжения ключей.
- Коды аутентификации сообщений (симметричные алгоритмы аутентификации, которые принимают ключ в качестве параметра):
- Разделение секрета , Разделение секрета, Разделение ключа, Алгоритмы M из N
- Симметричное (с секретным ключом) шифрование :
- Постквантовая криптография
- Алгоритмы доказательства работы
Цифровая логика
Машинное обучение и статистическая классификация
Теория языка программирования
Разбор
Квантовые алгоритмы
Теория вычислений и автоматов
Теория информации и обработка сигналов
Теория кодирования
Обнаружение и исправление ошибок
Алгоритмы сжатия без потерь
Алгоритмы сжатия с потерями
Цифровая обработка сигнала
Обработка изображений
Разработка программного обеспечения
Алгоритмы базы данных
Алгоритмы распределенных систем
Алгоритмы выделения и освобождения памяти
Нетворкинг
- Алгоритм Карна : решает проблему получения точных оценок времени передачи сообщений в обоих направлениях при использовании TCP.
- Алгоритм Лулео : метод эффективного хранения и поиска таблиц маршрутизации в Интернете.
- Перегрузка сети
Алгоритмы операционных систем
Синхронизация процессов
Планирование
Планирование ввода-вывода
Планирование диска
Смотрите также
Ссылки
- ^ "алгоритм". LII / Институт правовой информации . Получено 2023-10-26 .
- ^ Гегенфуртнер, Карл Р. (1992-12-01). «PRAXIS: алгоритм Брента для минимизации функций». Методы исследования поведения, приборы и компьютеры . 24 (4): 560–564. doi : 10.3758/BF03203605 . ISSN 1532-5970.
- ^ "richardshin.com | Алгоритм обнаружения цикла Флойда". 2013-09-30 . Получено 2023-10-26 .
- ^ "Двоичный поиск Эйтцингера - Algorithmica" . Получено 2023-04-09 .
- ^ "Кодирование Шеннона-Фано-Элиаса" (PDF) . my.ece.msstate.edu . Архивировано из оригинала (PDF) 2021-02-28 . Получено 2023-10-11 .
- ^ "Архивная копия" (PDF) . www.vision.ee.ethz.ch . Архивировано из оригинала (PDF) 21 февраля 2007 г. . Получено 13 января 2022 г. .
{{cite web}}
: CS1 maint: archived copy as title (link) - ^ "Архивная копия" (PDF) . Архивировано из оригинала (PDF) 2013-10-06 . Получено 2013-10-05 .
{{cite web}}
: CS1 maint: archived copy as title (link)