Понятие алгоритма. От рецепта пирога до искусственного интеллекта

📘 10 класс · 🎯 Основы алгоритмизации

1. Что такое алгоритм

Вы пользуетесь алгоритмами каждый день, даже если сами этого не замечаете.

Алгоритм — это точный, конечный набор инструкций или правил, который описывает последовательность действий для решения определённой задачи.

  • Точный: инструкции должны быть однозначными. Нельзя написать «посолить по вкусу», нужно написать «добавить 5 грамм соли». Робот (или компьютер) не понимает вкус, он понимает только конкретные команды.
  • Конечный: у любого алгоритма должен быть конец. Он не может длиться вечно. После выполнения всех шагов мы обязательно получаем результат.
  • Набор инструкций: действия идут строго друг за другом. Сначала включаем плиту, потом ставим сковородку, а не наоборот.
  • Решение задачи: любой алгоритм создаётся ради цели. Целью может быть сварить суп, найти кратчайший путь до школы или отсортировать список учеников по алфавиту.

2. Свойства алгоритма

В школьной информатике выделяют пять главных свойств правильного алгоритма:

  1. Дискретность. Алгоритм разбит на отдельные шаги. Вы не можете перепрыгнуть со второго шага сразу на пятый. Выполнение идёт последовательно: шаг 1 → шаг 2 → шаг 3.
  2. Детерминированность (определённость). При одинаковых исходных данных алгоритм всегда выдаёт один и тот же результат. В нём нет места случайности или интуиции исполнителя. Если вы дадите двум ученикам одну и ту же инструкцию «прибавь к числу 5 число 3», оба получат 8.
  3. Понятность. Каждая команда должна быть выполнимой для того, кто этот алгоритм исполняет. Бессмысленно просить первоклассника извлечь квадратный корень из числа без калькулятора, если он ещё не проходил эту тему.
  4. Результативность (конечность). Алгоритм обязан завершаться за конечное число шагов и приводить к правильному ответу. Бесконечные циклы («делай это вечно») алгоритмом считаться не могут.
  5. Массовость. Хороший алгоритм решает не одну конкретную частную задачу, а целый класс похожих задач. Алгоритм сложения двух чисел работает для любых пар чисел, а не только для 2 + 2.

3. Кто такой исполнитель

У каждого алгоритма есть автор и есть исполнитель — тот, кто выполняет команды. Исполнители бывают разными:

  • человек (вы читаете рецепт и готовите);
  • компьютер (выполняет программу);
  • промышленный робот-манипулятор на заводе;
  • автоматическая стиральная машина;
  • даже живая черепаха с карандашом на спине (в системе программирования Logo, где дети учат программированию через рисование).
🤖
Принцип формального исполненияИсполнитель — «тупой, но очень исполнительный раб». Он делает ровно то, что написано, ничего не додумывая от себя. Если в кулинарной книге опечатка и там написано «сварить сапог вместо свёклы», добросовестный исполнитель так и сделает. Именно поэтому программисты говорят: ошибки случаются не потому, что компьютер глупый, а потому, что человек дал ему неправильную команду.

4. Как записывают алгоритмы

На уроках математики и информатики вы встретитесь с тремя основными способами записи:

  • Словесный. Обычный текст, нумерованный список команд. Самый простой способ описать бытовые дела. Пример — рецепт бутерброда: 1. Возьми хлеб. 2. Намажь масло. 3. Положи сыр.
  • Графический (блок-схема). Каждый шаг — геометрическая фигура, соединённая стрелками. Прямоугольник — действие, ромб — условие (проверка вопроса «Да/Нет?»), овал — начало или конец. Позволяет визуально увидеть логику процесса.
  • На языке программирования (Python, Pascal, C++). Текст превращается в код, который понимает процессор компьютера. Пример: print("Привет, мир!").

5. Типы алгоритмов (алгоритмические конструкции)

Любой сложный алгоритм строится всего из трёх базовых «кирпичиков»:

  1. Следование (линейный алгоритм). Самая простая цепочка. Действия выполняются одно за другим, как вагоны поезда. Например, инструкция по сборке письменного стола из IKEA.
  2. Ветвление (условный алгоритм). Появляется выбор. «Если выполняется условие А, делай действие Х. Иначе делай действие Y». Классика: «Идёт дождь? Да — возьми зонт. Нет — иди без зонта».
  3. Цикл (повторение). Позволяет повторять группу действий много раз, пока верно какое-то условие. Это спасает нас от написания тысяч одинаковых строк кода. Например: «Пока в корзине есть яблоки, доставай одно и нарезай». Или «Сделай 10 приседаний».
✓
Теорема о структурированииЭти три конструкции универсальны. Математик Андрей Марков и другие учёные доказали: абсолютно любую задачу можно решить, используя только эти три блока.

6. Немного истории

Само слово «алгоритм» пришло к нам из Средневековья. Оно происходит от имени великого узбекского математика IX века Мухаммеда ибн Мусы аль-Хорезми, автора трактата «Книга о сложении и вычитании». Его имя европейцы исказили до звучания «Алгоризми», а правила счёта индийскими цифрами стали называть «алгоритмом». Изначально под этим словом понимали просто способы вычислений столбиком.

А вот современное научное определение алгоритма было дано гораздо позже, в 1930-х годах, математиками Аланом Тьюрингом (машина Тьюринга), Алонзо Чёрчем и Андреем Марковым. Они пытались ответить на вопрос: «А что вообще в принципе можно вычислить?»

7. Где мы встречаем алгоритмы в жизни

  • Повседневность: режим дня школьника (подъём → зарядка → завтрак…), правила перехода дороги по пешеходному переходу, инструкция по оказанию первой помощи.
  • Школа: алгоритм деления столбиком, решение квадратного уравнения через дискриминант (D = b² – 4ac), порядок морфологического разбора слова.
  • Компьютеры и смартфоны: когда лента новостей сама подгружается вниз — работает алгоритм рекомендаций; когда приложение строит маршрут в объезд пробок — работают сложные графовые алгоритмы поиска пути; когда телефон узнаёт ваше лицо — трудится нейросеть, состоящая из миллионов мелких вычислительных алгоритмов.
  • Государство и бизнес: расписание движения поездов метро, работа светофоров на перекрёстке, логистика доставки продуктов курьером.

8. Зачем вам знать про алгоритмы

Изучение алгоритмов развивает алгоритмическое мышление — суперспособность, которая позволяет:

  • Решать сложные проблемы. Не паниковать перед большой задачей, а уметь раскладывать её на маленькие, простые и понятные шаги.
  • Мыслить логически. Находить причинно-следственные связи и предсказывать результат своих действий.
  • Формулировать мысли чётко. Избавляться от двусмысленности, чтобы вас правильно понимали другие люди.
  • Эффективно искать информацию. Понимать, как работают поисковые системы и почему они выдают одни сайты выше других.

Домашнее задание

  1. Придумайте и запишите словесный алгоритм одного утреннего действия: чистки зубов, заваривания чая или завязывания шнурков.
  2. Помните про свойства: команды должны быть точными, понятными исполнителю и приводить к гарантированному результату.