- Главная
- Информатика
- Подборка алгоритмов, которые правят миром
Содержание
- 2. Однажды на Reddit засветился интересный пост, написанный Джорджем Дворским под названием «10 алгоритмов, которые правят миром»
- 3. Что такое алгоритм? Неофициально алгоритмом является любая корректно определённая вычислительная процедура, на вход которой подается некоторая
- 4. Алгоритмы сортировки (быстрая, пирамидальная, слиянием) Какой алгоритм сортировки элементов лучший? Всё зависит от ваших нужд, и
- 5. Преобразование Фурье и Быстрое преобразование Фурье Интернет, Wi-Fi, смартфон, телефон, компьютер, маршрутизатор, спутники — почти всё,
- 6. Алгоритм Дейкстры Как ни странно, интернет не смог бы работать эффективно без существования этого алгоритма. Он
- 7. Алгоритм RSA Интернет не был бы так глубоко интегрирован в нашу жизнь, как в наше время,
- 8. Алгоритм безопасного хэширования Это не совсем алгоритм, а скорее семейство криптографических хэш-функций (SHA-1, SHA-2, и т.д.),
- 9. Алгоритм факторизации целых чисел Сложность, связанная с разложением числа на простые множители, широко используется в машинной
- 10. Анализ связей В информационную эру взаимоотношения между различными субъектами имеют большое значение. От поисковых систем и
- 11. Пропорционально-интегрально-дифференцирующий алгоритм Вы когда-нибудь пользовались самолётом, автомобилем, спутниковой службой или сотовой сетью? Вы когда-нибудь видели робота
- 12. Алгоритмы сжатия данных Трудно решить, какой алгоритм сжатия является наиболее важным, поскольку в зависимости от задачи
- 13. Алгоритм генерации случайных чисел Сегодня у нас нет «настоящего» генератора случайных чисел, но у нас есть
- 15. Скачать презентацию
Слайд 2Однажды на Reddit засветился интересный пост, написанный Джорджем Дворским под названием «10
Однажды на Reddit засветился интересный пост, написанный Джорджем Дворским под названием «10
Если вы изучали алгоритмы, первое, что может прийти вам на ум после прочтения того поста: «Автор вообще знает, что такое алгоритм?» — или, может быть: «Новостной канал Facebook — алгоритм?» — потому что если новостной канал Facebook является алгоритмом, то в конечном итоге мы можем почти всё классифицировать как алгоритм. Чтобы внести ясность, в этой статье будет дано определение алгоритму, и будет составлен список из 10 (или больше) алгоритмов, которые на самом деле правят нашим миром.
Слайд 3Что такое алгоритм?
Неофициально алгоритмом является любая корректно определённая вычислительная процедура, на вход
Что такое алгоритм?
Неофициально алгоритмом является любая корректно определённая вычислительная процедура, на вход
Томас Х. Кормен, Чарльз И. Лейзерсон (2009), Алгоритмы: построение и анализ, 3-е издание
Проще говоря, алгоритм представляет собой последовательность шагов, которая позволяет решить определённую задачу (да, алгоритмы используются не только машинами, но и людьми). Алгоритм должен обладать тремя важными характеристиками, чтобы иметь право так называться:
Он должен работать за конечное количество времени. Если ваш алгоритм не может разобраться с проблемой, для которой он был создан, за конечное количество времени, то он бесполезен.
Он должен иметь чётко определённые инструкции. Каждый шаг алгоритма должен быть точно определён. Инструкции должны быть однозначны для каждого случая.
Он должен быть пригодным к использованию. Алгоритм должен решать проблему, для решения которой он был написан. Должна быть возможность продемонстрировать его работу при наличии только карандаша и бумаги.
Также важно отметить, что алгоритмы используются не только в информатике, но и в математике. По факту, самые ранние математические алгоритмы — разложение на простые множители и извлечение квадратного корня — использовались вавилонянами уже в 1600 г. до н. э. Таким образом, мы имеем проблему, связанную с упомянутой ранее записью, которая рассматривает алгоритмы как компьютерные сущности. Однако, если применить формальный смысл слова, то одним из претендентов в десятку лучших алгоритмов может стать любая арифметическая операция (сложение, вычитание, произведение и т. д.).
Поэтому в этой статье мы будем говорить о компьютерных алгоритмах. Тогда остаётся вопрос: какие 10 (или больше) алгоритмов правят нашим миром?
Слайд 4Алгоритмы сортировки (быстрая, пирамидальная, слиянием)
Какой алгоритм сортировки элементов лучший? Всё зависит от
Алгоритмы сортировки (быстрая, пирамидальная, слиянием)
Какой алгоритм сортировки элементов лучший? Всё зависит от
Сортировка слиянием — один из наиболее важных алгоритмов на сегодняшний день. Он базируется на сравнении элементов и использует подход «разделяй и властвуй» для более эффективного решения проблемы, которая когда-то решалась за время O (n^2). Алгоритм был изобретён математиком Джоном фон Нейманом в 1945 году.
Подробнее об оценке сложности алгоритмов читайте в нашем материале
Быстрая сортировка — другой подход к сортировке, чей алгоритм может базироваться как на in-place разделении, так и на «разделяй и властвуй». Проблема этой сортировки заключается в том, что она не является стабильной, но эффективна для сортировки массивов в оперативной памяти.
Пирамидальная сортировка — in-place алгоритм, использующий приоритетную очередь, за счёт которой уменьшается время поиска данных. Неустойчив.
Эти алгоритмы намного лучше по сравнению с другими подходами (например, сортировкой пузырьком), использовавшимися ранее. По сути, благодаря им у нас есть глубинный анализ данных, искусственный интеллект, анализ связей и большинство вычислительных инструментов в мире, включая интернет.
Слайд 5Преобразование Фурье и Быстрое преобразование Фурье
Интернет, Wi-Fi, смартфон, телефон, компьютер, маршрутизатор, спутники
Преобразование Фурье и Быстрое преобразование Фурье
Интернет, Wi-Fi, смартфон, телефон, компьютер, маршрутизатор, спутники
Слайд 6Алгоритм Дейкстры
Как ни странно, интернет не смог бы работать эффективно без существования
Алгоритм Дейкстры
Как ни странно, интернет не смог бы работать эффективно без существования
Сегодня, даже когда для поиска кратчайшего пути у нас есть решения получше, алгоритм Дейкстры используется в системах, требующих стабильности.
Слайд 7Алгоритм RSA
Интернет не был бы так глубоко интегрирован в нашу жизнь, как
Алгоритм RSA
Интернет не был бы так глубоко интегрирован в нашу жизнь, как
Из криптографии пришёл алгоритм, который остаётся одним из самых важных в мире, — алгоритм RSA. Разработанный основателями компании RSA, этот алгоритм сделал криптографию доступной для всех в мире и предопределил её будущее. Алгоритм RSA создан для простой задачи с неочевидным решением: как делиться открытыми ключами между независимыми платформами и конечными пользователями так, чтобы была возможность использовать шифрование (стоит отметить, что на самом деле эта проблема до сих пор решена не полностью).
Слайд 8Алгоритм безопасного хэширования
Это не совсем алгоритм, а скорее семейство криптографических хэш-функций (SHA-1,
Алгоритм безопасного хэширования
Это не совсем алгоритм, а скорее семейство криптографических хэш-функций (SHA-1,
Слайд 9Алгоритм факторизации целых чисел
Сложность, связанная с разложением числа на простые множители, широко
Алгоритм факторизации целых чисел
Сложность, связанная с разложением числа на простые множители, широко
Многие криптографические протоколы — например, RSA — основаны на сложности факторизации больших составных целых чисел или на сходных проблемах. Алгоритм, который эффективно сможет разбивать на простые множители произвольное целое число, сделает криптографию с открытым ключом на основе RSA небезопасной.
Слайд 10Анализ связей
В информационную эру взаимоотношения между различными субъектами имеют большое значение. От
Анализ связей
В информационную эру взаимоотношения между различными субъектами имеют большое значение. От
Алгоритм анализа связей за время своего существования оброс большим количеством мифов и заблуждений среди широкой публики. Проблема заключается в существовании различных способов анализа ссылок с различными характеристиками, что делает каждый алгоритм немного другим (и позволяет патентовать алгоритмы), хотя при этом их основания похожи.
Идея анализа связей проста: вы можете представить график в виде матрицы, что сводит задачу к проблеме собственной значимости каждого узла. Такой подход к структуре графа даёт нам возможность оценить относительную важность каждого объекта, включённого в систему. Алгоритм был разработан в 1976 году Габриэлем Пински и Фрэнсисом Нарином.
Где используется этот алгоритм? При ранжировании страниц во время поиска в Google, при генерации ленты новостей в Facebook (поэтому новостной канал Facebook — не алгоритм, а его результат), при составлении списка возможных друзей на Google+ и Facebook, при работе с контактами в LinkedIn и т. д. Каждый из вышеперечисленных сервисов работает с разными параметрами и объектами, но математика за каждым алгоритмом остаётся неизменной.
Кстати, видимо, Google является не первой компанией, начавшей работу с подобными типами алгоритмов. В 1996 году (за два года до основания Google) небольшая поисковая система под названием «RankDex», основанная Робином Ли, уже использовала эту идею для ранжирования страниц. Также, Массимо Марчиори, основатель «HyperSearch», использовал алгоритм ранжирования страниц, основанный на отношениях между отдельными страницами (эти два основателя упоминаются в патентах Google).
Слайд 11Пропорционально-интегрально-дифференцирующий алгоритм
Вы когда-нибудь пользовались самолётом, автомобилем, спутниковой службой или сотовой сетью? Вы
Пропорционально-интегрально-дифференцирующий алгоритм
Вы когда-нибудь пользовались самолётом, автомобилем, спутниковой службой или сотовой сетью? Вы
В основном этот алгоритм использует замкнутый механизм обратной связи для контура управления, чтобы минимизировать ошибку между желаемым выходным сигналом и реальным выходным сигналом. Он используется везде, где нужна система для обработки сигнала или управления механическими, гидравлическими и тепловыми механизмами, использующими автоматизацию.
Можно сказать, что без этого алгоритма наша технологическая цивилизация не существовала бы.
Слайд 12Алгоритмы сжатия данных
Трудно решить, какой алгоритм сжатия является наиболее важным, поскольку в
Алгоритмы сжатия данных
Трудно решить, какой алгоритм сжатия является наиболее важным, поскольку в
Где может использоваться алгоритм сжатия помимо очевидного заархивированного документа? Например, эта веб-страница использует сжатие данных во время загрузки на ваш компьютер. Также эти алгоритмы используются в видеоиграх, видео, музыке, облачных вычислениях, базах данных и т. д. Можно сказать, что почти все используют алгоритмы сжатия данных, потому что они помогают сделать системы более дешёвыми и эффективными.
Слайд 13Алгоритм генерации случайных чисел
Сегодня у нас нет «настоящего» генератора случайных чисел, но
Алгоритм генерации случайных чисел
Сегодня у нас нет «настоящего» генератора случайных чисел, но