Прежде чем мы углубимся в изучение этой темы, возможно, стоит ненадолго отвлечься и поговорить о том, что же такое алгоритм. Хотя этот термин у всех на слуху, смысл самого слова довольно туманный. Формально определение таково [16]:
Алгоритм (сущ.): порядок действий, которые необходимо совершить для решения той или иной задачи или достижения заданной цели, особенно с помощью компьютера.
Всего-то. Алгоритм — это просто набор инструкций, которые помогают шаг за шагом дойти от исходных данных до решения задачи. В широком смысле рецепт пирога — тоже алгоритм. Под это определение подпадают и советы, которые вы даете заблудившемуся приезжему. Инструкции из IKEA, видео с YouTube , где вам показывают, что и как сделать, даже всевозможные практические руководства — теоретически алгоритмом можно считать любой перечень инструкций, в котором содержится полная информация о том, как достичь конкретной цели.
Однако область применения этого термина несколько иная. Обычно алгоритмом называют нечто более специальное. Алгоритм действительно представляет собой набор пошаговых инструкций, но при этом почти всегда речь идет о математическом объекте. Используя уравнения, арифметические и алгебраические действия, матанализ, логику и теорию вероятностей, алгоритм превращает ряд математических операций в компьютерную программу. Ему предоставляют данные из жизни, ставят задачу и запускают его, чтобы дальше он сам продирался через формулы к ответу. Именно алгоритмы делают информатику настоящей наукой, и благодаря им машины сотворили за последние десятилетия массу самых удивительных чудес.
Существует несметное множество всевозможных алгоритмов. Каждый из них имеет свое предназначение, свои отличительные особенности, свою изюминку и свои недостатки, и до сих пор неясно, как их лучше классифицировать. Но в целом удобно выделить четыре основные категории задач, которые выполняют алгоритмы [17]:
1. Расстановка приоритетов — составление упорядоченного списка
Исходя из ранжирования результатов поиска, Google подсказывает вам, какую страницу открыть в данный момент. Netflix предлагает вам очередной фильм. Навигатор выбирает для вас кратчайший путь. Все они упорядочивают колоссальное множество вероятных опций, производя вычислительный процесс. Deep Blue, в сущности, тоже занимался приоритизацией, то есть анализировал все возможные ходы фигур на доске и находил те, что гарантировали самые высокие шансы на победу.
2. Классификация — выбор категории
Когда мой возраст приблизился к тридцати годам, Facebook завалил меня рекламой колец с бриллиантами. И как только я наконец вышла замуж, отовсюду в интернете посыпались предложения тестов на беременность. Такими маленькими неудобствами я обязана алгоритмам классификации. Любимые алгоритмы рекламщиков, руководствуясь вашим личным профилем, исподтишка записывают вас в группу лиц с определенными интересами. (Пусть даже они угадывают верно, но если во время деловой встречи на экране вашего компьютера неожиданно всплывает реклама тестов на овуляцию, это действует на нервы.)
Именно такие алгоритмы автоматически отсортировывают и удаляют посторонние ролики на YouTube , подписывают ваши отпускные фотографии и, сканируя рукопись, идентифицируют закорючки на странице как буквы.
3. Ассоциирование — выявление связей
Ассоциирование — это поиск и описание взаимосвязи между объектами. Например, сайты знакомств, вроде OkCupid , ищут связи между пользователями и подбирают пары, используя алгоритмы поиска ассоциаций. Примерно так же устроена рекомендательная система Amazon — она находит нечто общее между вашими интересами и интересами предыдущих покупателей. Вот почему пользователь сайта Reddit с ником Kerbobotat , купив на Amazon бейсбольную биту, получил интересное предложение: “Возможно, вам понравится эта балаклава” [18].
4. Фильтрация — выделение важной информации
Алгоритмы нередко помогают изъять часть информации, чтобы обратить внимание на главное, поймать сигнал среди шумов. Иногда они делают это в буквальном смысле слова — так, в голосовых помощниках, например Siri, Alexa и Cortana , чтобы расшифровать вашу речь, алгоритмы распознавания, предварительно должны выделить из шумового фона ваш голос. Иногда это не шум как таковой, а метафора: Facebook и Twitter заполняют вашу ленту, уже зная, что вас обычно интересует, и подбирая соответствующую информацию.
Читать дальше
Конец ознакомительного отрывка
Купить книгу